From 6a4079b0fbe65c03372862f4a4089d5093a8fa71 Mon Sep 17 00:00:00 2001
From: Miroslav Shaltev <miroslav.shaltev@shaltev.de>
Date: Wed, 7 Dec 2016 23:02:45 +0100
Subject: [PATCH] Update to Nomad 3.7.3

---
 doc/user_guide.pdf                            |  Bin 1389306 -> 1787689 bytes
 .../advanced/categorical/batch/runExample.log |   18 +-
 examples/advanced/categorical/bi_obj/makefile |   72 +-
 .../categorical/bi_obj/runExample.log         |   75 +-
 .../advanced/categorical/single_obj/makefile  |   72 +-
 .../categorical/single_obj/runExample.log     | 2280 ++++--
 examples/advanced/multi_start/best_x.txt      |    2 +-
 examples/advanced/multi_start/makefile        |   36 +-
 examples/advanced/multi_start/runExample.log  |   18 +-
 examples/advanced/plot/makefile               |   41 +-
 examples/advanced/restart/makefile            |   64 +-
 examples/advanced/restart/restart.cpp         |  295 +-
 examples/advanced/user_search/makefile        |   65 +-
 examples/basic/batch/bi_obj/runExample.log    |  275 +-
 .../basic/batch/single_obj/runExample.log     |   30 +-
 .../batch/single_obj_parallel/bb_parallel.cpp |  185 +-
 .../basic/batch/single_obj_parallel/param.txt |    1 +
 .../batch/single_obj_parallel/runExample.log  |   30 +-
 examples/basic/library/bi_obj/makefile        |   70 +-
 examples/basic/library/bi_obj/runExample.log  |   27 +-
 .../basic/library/single_obj/basic_lib.cpp    |    8 +-
 examples/basic/library/single_obj/makefile    |   70 +-
 .../basic/library/single_obj/runExample.log   |   18 +-
 .../library/single_obj_parallel/basic_lib.cpp |  358 +-
 .../library/single_obj_parallel/makefile      |   49 +-
 .../single_obj_parallel/runExample.log        |   17 +-
 examples/interfaces/DLL/bi_obj/makefile       |   44 +-
 examples/interfaces/DLL/single_obj/makefile   |   41 +-
 examples/interfaces/FORTRAN/example1/makefile |   51 +-
 .../FORTRAN/example1/runExample.log           |   19 +-
 examples/interfaces/FORTRAN/example2/makefile |   43 +-
 .../Matlab_MEX/{ => Functions}/nomad.m        |    8 +-
 .../Matlab_MEX/{ => Functions}/nomadset.m     |    0
 .../interfaces/Matlab_MEX/GERAD_NOMAD_build.m |  184 +-
 .../interfaces/Matlab_MEX/Source/nomadmex.cpp |  659 +-
 .../example_categorical/run_nomad.m           |    2 +-
 .../Matlab_MEX/example_extra_param/bb.m       |    8 +
 .../example_extra_param/run_nomad.m           |    7 +
 .../example_group_variables/param.txt         |    2 +
 .../Matlab_MEX/example_group_variables/test.m |   19 +
 .../example_int_variables/param.txt           |    3 +
 .../Matlab_MEX/example_int_variables/run.m    |   10 +
 .../Matlab_MEX/example_int_variables/run2.m   |   23 +
 .../interfaces/Matlab_MEX/test_nomad_gerad.m  |   17 +-
 install/install.sh                            |   79 +-
 install/readme.MPI_for_MINGW.rtf              |   24 -
 readme.txt                                    |   77 +-
 src/Barrier.cpp                               |  150 +-
 src/Barrier.hpp                               |  525 +-
 src/Cache.cpp                                 |  164 +-
 src/Cache.hpp                                 |  715 +-
 src/Cache_File_Point.cpp                      |  461 +-
 src/Cache_File_Point.hpp                      |  315 +-
 src/Cache_Point.cpp                           |   43 +-
 src/Cache_Point.hpp                           |  129 +-
 src/Cache_Search.cpp                          |  248 +-
 src/Cache_Search.hpp                          |  125 +-
 src/Clock.cpp                                 |   37 +-
 src/Clock.hpp                                 |  161 +-
 src/Direction.cpp                             |  151 +-
 src/Direction.hpp                             |  385 +-
 src/Directions.cpp                            |  116 +-
 src/Directions.hpp                            |   40 +-
 src/Display.cpp                               |   56 +-
 src/Display.hpp                               |  931 +--
 src/Double.cpp                                |  112 +-
 src/Double.hpp                                |  902 +--
 src/Eval_Point.cpp                            |   59 +-
 src/Eval_Point.hpp                            |   44 +-
 src/Evaluator.cpp                             | 1506 ++--
 src/Evaluator.hpp                             |  455 +-
 src/Evaluator_Control.cpp                     | 6349 ++++++++--------
 src/Evaluator_Control.hpp                     |  154 +-
 src/Exception.cpp                             |   49 +-
 src/Exception.hpp                             |  111 +-
 src/Extended_Poll.cpp                         |  110 +-
 src/Extended_Poll.hpp                         |  396 +-
 src/Filter_Point.hpp                          |   25 +-
 src/LH_Search.cpp                             |   29 +-
 src/LH_Search.hpp                             |  197 +-
 src/L_Curve.cpp                               |  111 +-
 src/L_Curve.hpp                               |  111 +-
 src/Mads.cpp                                  | 6704 +++++++++--------
 src/Mads.hpp                                  |  116 +-
 src/Makefile.am                               |   11 +-
 src/Model_Sorted_Point.cpp                    |   94 +-
 src/Model_Sorted_Point.hpp                    |  161 +-
 src/Model_Stats.cpp                           |  343 +-
 src/Model_Stats.hpp                           |  643 +-
 src/Multi_Obj_Evaluator.cpp                   |  249 +-
 src/Multi_Obj_Evaluator.hpp                   |  215 +-
 src/Multi_Obj_Quad_Model_Evaluator.hpp        |   67 +-
 src/OrthogonalMesh.cpp                        |  172 +-
 src/OrthogonalMesh.hpp                        |  633 +-
 src/Parameter_Entries.cpp                     |   88 +-
 src/Parameter_Entries.hpp                     |  150 +-
 src/Parameter_Entry.cpp                       |  314 +-
 src/Parameter_Entry.hpp                       |   29 +-
 src/Parameters.cpp                            | 1824 +++--
 src/Parameters.hpp                            |  212 +-
 src/Pareto_Front.cpp                          |  676 +-
 src/Pareto_Front.hpp                          |  246 +-
 src/Pareto_Point.cpp                          |  107 +-
 src/Pareto_Point.hpp                          |  235 +-
 src/Phase_One_Evaluator.cpp                   |   77 +-
 src/Phase_One_Evaluator.hpp                   |   32 +-
 src/Phase_One_Search.cpp                      |   73 +-
 src/Phase_One_Search.hpp                      |  115 +-
 src/Point.cpp                                 |  711 +-
 src/Point.hpp                                 |  833 +-
 src/Priority_Eval_Point.cpp                   |  405 +-
 src/Priority_Eval_Point.hpp                   |  383 +-
 src/Quad_Model.cpp                            |  352 +-
 src/Quad_Model.hpp                            |  831 +-
 src/Quad_Model_Evaluator.cpp                  |  338 +-
 src/Quad_Model_Evaluator.hpp                  |   25 +-
 src/Quad_Model_Search.cpp                     |  142 +-
 src/Quad_Model_Search.hpp                     |  232 +-
 src/RNG.cpp                                   |   74 +-
 src/RNG.hpp                                   |  114 +-
 src/Random_Pickup.cpp                         |   80 +-
 src/Random_Pickup.hpp                         |   25 +-
 src/SMesh.cpp                                 |  410 +-
 src/SMesh.hpp                                 |  394 +-
 src/Search.hpp                                |  178 +-
 src/Set_Element.hpp                           |  249 +-
 src/Signature.cpp                             |  489 +-
 src/Signature.hpp                             |  215 +-
 src/Signature_Element.hpp                     |   25 +-
 src/Single_Obj_Quad_Model_Evaluator.hpp       |   68 +-
 src/Slave.cpp                                 |   85 +-
 src/Slave.hpp                                 |  427 +-
 src/Speculative_Search.cpp                    |   44 +-
 src/Speculative_Search.hpp                    |  127 +-
 src/Stats.cpp                                 |  505 +-
 src/Stats.hpp                                 |  992 +--
 src/TGP_Model.cpp                             | 1551 ----
 src/TGP_Model.hpp                             |  397 -
 src/TGP_Model_Evaluator.cpp                   |   65 -
 src/TGP_Model_Evaluator.hpp                   |   98 -
 src/TGP_Model_Search.cpp                      | 1683 -----
 src/TGP_Model_Search.hpp                      |  332 -
 src/TGP_Output_Model.cpp                      |  486 --
 src/TGP_Output_Model.hpp                      |  241 -
 src/Uncopyable.hpp                            |   25 +-
 src/VNS_Search.cpp                            |  120 +-
 src/VNS_Search.hpp                            |  137 +-
 src/Variable_Group.cpp                        |   51 +-
 src/Variable_Group.hpp                        |   50 +-
 src/XMesh.cpp                                 |  571 +-
 src/XMesh.hpp                                 |  437 +-
 src/defines.hpp                               |   88 +-
 src/nomad.cpp                                 |   54 +-
 src/nomad.hpp                                 |   27 +-
 src/utils.cpp                                 | 1831 ++---
 src/utils.hpp                                 |  467 +-
 tools/COOP-MADS/makefile                      |   46 +-
 tools/COOP-MADS/problems/G2_10/runExample.log |   31 +-
 .../problems/RHEOLOGY/runExample.log          |  231 +-
 tools/COOP-MADS/readme.txt                    |    2 +
 tools/PSD-MADS/makefile                       |   45 +-
 tools/PSD-MADS/problems/G2_10/runExample.log  |   68 +-
 tools/PSD-MADS/readme.txt                     |    2 +
 tools/PSD-MADS_library_mode/makefile          |   42 +-
 tools/SENSITIVITY/cache_inspect/makefile      |   49 +-
 tools/SENSITIVITY/detailed_analysis/makefile  |   52 +-
 utils/DisplayCacheFile/Readme.txt             |   20 +
 utils/DisplayCacheFile/build.m                |   87 +
 utils/DisplayCacheFile/cache1.bin             |  Bin 0 -> 17715 bytes
 utils/DisplayCacheFile/displayCache.cpp       |   66 +
 utils/DisplayCacheFile/displayCacheM.cpp      |   89 +
 utils/DisplayCacheFile/makefile               |   60 +
 utils/MergeCacheFiles/build.m                 |   81 +-
 utils/MergeCacheFiles/makefile                |   46 +-
 utils/Run_TestSuite/readme.txt                |    2 +
 utils/Run_TestSuite/runNomadAll_parallel.pl   |   54 +-
 176 files changed, 26355 insertions(+), 26736 deletions(-)
 rename examples/interfaces/Matlab_MEX/{ => Functions}/nomad.m (83%)
 rename examples/interfaces/Matlab_MEX/{ => Functions}/nomadset.m (100%)
 create mode 100644 examples/interfaces/Matlab_MEX/example_extra_param/bb.m
 create mode 100644 examples/interfaces/Matlab_MEX/example_extra_param/run_nomad.m
 create mode 100644 examples/interfaces/Matlab_MEX/example_group_variables/param.txt
 create mode 100644 examples/interfaces/Matlab_MEX/example_group_variables/test.m
 create mode 100644 examples/interfaces/Matlab_MEX/example_int_variables/param.txt
 create mode 100644 examples/interfaces/Matlab_MEX/example_int_variables/run.m
 create mode 100644 examples/interfaces/Matlab_MEX/example_int_variables/run2.m
 delete mode 100644 install/readme.MPI_for_MINGW.rtf
 delete mode 100644 src/TGP_Model.cpp
 delete mode 100644 src/TGP_Model.hpp
 delete mode 100644 src/TGP_Model_Evaluator.cpp
 delete mode 100644 src/TGP_Model_Evaluator.hpp
 delete mode 100644 src/TGP_Model_Search.cpp
 delete mode 100644 src/TGP_Model_Search.hpp
 delete mode 100644 src/TGP_Output_Model.cpp
 delete mode 100644 src/TGP_Output_Model.hpp
 create mode 100644 utils/DisplayCacheFile/Readme.txt
 create mode 100644 utils/DisplayCacheFile/build.m
 create mode 100644 utils/DisplayCacheFile/cache1.bin
 create mode 100644 utils/DisplayCacheFile/displayCache.cpp
 create mode 100644 utils/DisplayCacheFile/displayCacheM.cpp
 create mode 100644 utils/DisplayCacheFile/makefile

diff --git a/doc/user_guide.pdf b/doc/user_guide.pdf
index 9d7d24922c4389db5d4da282552f411c8a276da8..89d8868221345c8ab22ef416259f945dd8a164ba 100644
GIT binary patch
delta 895296
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%0Dl^zS2{{
z*#5PA{ryj=0z1ww)R{HURy)J^`@8AB`>vK2$MfEIDrG*{?|L$A)yedWb(!T-pM;n0
ze^cksD<SktOxce0#f>S7Ifo2P=1pAQa5g7~uWa+HHQJlLpHwsZ*7I#|;o1c}H@9Cs
zX73-s+N`)nLPOWSPnPASbo-XJDJ=fQ?-D#NZ`hzG&$hpQi|uW(jeM>lU0#h5%Gp`g
zt$JcXj<09$`kC&VsC((mnY^eQW(Ud&s&202+0LpF;S_Lp`o+&a3l9V>uB;PR5&f?a
zw&>`l=9c_N$vJmseC6l&>C>8)v(Q{7Xz3Ky&7U8Atkvi>TJKn6v0wY>&Y2$>{#5qx
z#1|g9Fri)Lr%}qcz4hhGS0#A+pWUQAFRH#f`<nB{+aIO64*xm5{sYqk7m5Dj-guX-
ziu=@9_~y@>wd>8{Y1RLG`5Qj4I4)RcCgAzvn9#KXeS@uwRnn)*tT-sP`-f=%h0CpP
zx)T|kUVTnvSaC}8N&J~Sk&n}KxK^+KD6>6!RnxPI{HGzBwmX^3H%sfRs}JP<Z!l%A
ze(>Sd{lA5RC#;Z)Q9C2@Xy4wyU*pa1yX|JMGC#D-*kEbhvTbGe&L2s9q58{izih5(
z@|Ts*`TDmmtjvqwXJ39O?dRoxrdH8!-=8mkTJZfs+3Zj6)(5-VK6_q$<H7&Sr9$^|
zJ%krA7qF;1YCbwXA#@qX!f$_=_G*?T+wRYLljXRo_`tmX6`W$PW*#cvt8kce`nxHU
z?#=mI-+97T>REp1pKU_Bue{?{>J~jIa&7wm^{Hj8|Lu!xq-RYRiR4t6zDJ&e3$poo
ztz>rb?HwO?*SD%&o_(oU&}V`I<F5IWvL~JPE%uZyuQEQ_>pgM9(Ke-0m8Zw|zt<Cc
z;Jhrw`mOlH2#4<4{V(*_iT`_a_vGvD$(y$?j4GI~T6aiXJiJ>YWucFl(TAB_hmN}L
z`|-&2;LG>o`*j%3iHLvjXa2j>j(2By^)8;|r=|6#c1yQso9_Md>*L|o`ybu+yB9O(
zPvN15@&B5>zo<O3NFy?3_GJD2zq@6=)kXf$@wxKo+MGK&EnO1fKlT@W{Q2a)`o9@z
zb_-`7w(kF_6lOTFY$Kai3&)<>i(ZyxdUp4|yXKI#V2=!^b+vS-;WQV6sTR+8em;Mm
zpZDSXo!d)e@6M^8|9)HLt(T|Erl;=8-T!N1|LhM>S_=BtsH7=9<V&3v=Hec;&2;Zt
z9@A;p%G^({@wpxLoJHqNz14$^wr8mm3dEYGOtVRu=<#A1|M%%07DByWOpA}4Z20MU
z;c{E~rpu{1wc0lF94q}B=PbMU_L@Lgcx7Ph<9T0-?uwYVd04z);jT|$x+9kA`J9a}
zapJpORg=qHr%iimJ6C7b>|fGxj|*N(-@PMU933U3zNYjj+r+~A-XCioh5nj$?Pyx|
ziM9D(+`{LwZY#-}{Or~S_O{4!G3V`m*0<hW<6F6S!ZeQ+M;jI`vHxn}{w&2me2a0C
z)yI;pCU1TOyIl%h`FZo6jI-Q7c<O%zU0j>4JK0#XIeA&-&*0cn-`IKcx9{40Cg_gF
zY3~omo)u+nxt8$P*-iRW$5E}K>4sLqY7bI$Iu{*?kky#n>7jSvvZVN&J}xmM#ut?W
z6M0*Wm<}#xZ4asl->vn!YuBvZA}PWL?hC)(C%>AfRs86^znT)Ed$TjP9t{m{K48XD
zAF*6_Z$#(ou4y~}y=q@{>8E#ucIsDdX&1f;b`z2xEZNoZCRFO`!AILPclm`USaj{~
zNb58Ix=vf`?m5k}$%`bLD%%?tMw=h&%zJ)Cs<F1)&gRdT$Nj~N4qCkVzUzAV%zH{V
z-+J?GUf4cSg{7;jPtWD?k@UrztC;I1NZ)Q^PI*(mqqLvps&!OOx$Im1NykFdc%!4&
zgr>jud@jK`X~I#PGMBO^2R6_7@@AdaE~VdWk9r;Uyx0EpE5K9iNcFi%&smFleNHd9
z9&7F16QncY<GjslzL;wL+wpRBgQn_T`^#Bo-VEXo<%%YJGTbt$xuA+SuT0m=Myz?|
zLnh_kK+zW_TkF|-t|}dfGT#s|lOcysu=0UL;fWf_i3gOtt&<qcRd^hE95vKEYF!z2
zU$)k0m=khS=C)0fi1xRmzjpfM2dt8M<QJZ=A06@f+YEyW5ktwZ506?HOmeim7!W4B
zgn!YF7e|@dkDZx#^oQVs`==X^7_x*OHniz{Y)~M>oYBF!L+efb!Q8AvJoh5R-X6=_
z_NAp`*6tZU6k1eux>#fXN0!gMI@P6TA-{xT@{3~<x$$Rxx|G9@cN}34J?6f8vBO3V
zje@HeMLZ?+TN)Z($sc{F?{db$f8Bv3P9fI)@73N1U%AL)ddO8_W{XAIMANFmt^IE!
zUQRRMTc)OxB9hnoUCva=seZjq*b=VEHw>3>J<QEny3kO9Bl9cQ^0jfT60b!cJ}G24
zZ+gX&ZMxcl8WU#QqK)sL%)fLj<*H-*?=>n5>aHH&UiDReZmGcSmXLeuDb0Cm${X6a
zy{0tIkji6Kj}p(BSpAl1M{VZi-dgWy@p+khy>{pLuAg1V&@L<f%$)7{-qvsRdS>Tl
zZrQT)n-qtfmzijlTGa7-+OzGx&AcW4EUxI!m)EQL^PipOQ=7c+SJ^$bqi0qa8Qsgi
zJHx;0+|CA8N5!uG?1`&XoiAUUA=>O%V5!-e_O^QcWk&wLeCBgF*&CXFf3kddAn?gN
z<xK}XMDK9S<9T~maLNTfRi|?-5*!aY6j|!;E&gDU{J?X<`uQ^P3O&yMWE0&CE*w;D
zf4T7i(?!osF2BsSZQ%ID&R7~I)34+`qheW6+l!<_n|_*JJgUCmGp2;I{lZ=GkDS6A
zeK#vF4u4#oEPUz@yPEw%J&wj`(~UnoBD&kB2kILf<6UYl9KbJSl(WMo;mG9M2aXt+
z+n#UPS<laPH0D!Ito;V_0}6|u-?%M&tCn%%(FV4&PP@ztxo-u}{+ccBnRCNqqw(A;
z%%-AO%67lLl=D`~===MUC`p-~GR6?kg#pH^?rXP-K3=82EbiOVqjIU)v3bvT*LA+z
zH{If2O46OD=j9*zZFsjiG;nU{g|p8>;`Oh8vGEXTuZ#Xx&v==~{EX%Sdn?t51HV7L
z&3E0pdv>b86}_rr>)FmCh8M+;{$JBoX)>qN#a8lcyNNPq-5;Ox_n%GRGPq(myC%ot
z^P@0{<|iR{^y^+c?R`}D`Ea-#*91$uo*OgwUDltc@w<V&hkx-Rb<Y3su2X}HEu;H5
z^6tFmn13KbWudz8<a_lCFNXg<cUfBH%Hg|PR?QP((4AZK^lQ3pNv668@2qTTv40=m
zrF=X(hiRUg=tkDt|DJvLpLFc|KleV73X^SC2M$FouPr#xw0zFo)s9*cKbgXK`yAhG
z{90yx`?=;cmV+usoOZPRGV5cyEVCkkBlOVrr)!O#t~KH0VEVnI;IOf4`uuub+qZ87
z_-@UNxh=N(lAM{bR>dyIh=&_4{5i}ozk)ka+j{+h?`%tw(`y!%U%et-t!?WOXA#WF
z$G@6oN$f(mxsNV+Ha)oPxm5eqh9#`JGZ*o6I`CI)Jj#3RZmGVU^yX75wtu<3HSbv|
z7oXtwUoQ*KFKkf@Wi6UB+f}Dm<k5}Yp7p1d)K91=ZrS4NbZF*8k3HYRS$x*+UwJ`g
zXD836MU3t%WBZj^9vv+T@0juKSo+kdyXP!Bv~e!i?RgCU10)%hIAn{ri1trWQ#Rkr
z@}Zzr_FC7+58e+rR%9J)klGbID=oR{M%2x$vOSq@B@2bV%@eR{UzBCtdz0g!TAfDr
zOpX&@>qB>GTQ}{x8DPc3^L<sd=;o9c;{VQ``)4B^#_SyUe$r_T&pq5Z$yvKJ^l#<f
z-0qTGCC6gsoIKmKb?T(lBbEI7&TpS=m+rY@-);Fc_0Rx&9_GX>Q~nuy?0e>=Ee<>K
zD8MeNbHTe=v1J~z0lR-5F3?!L@%E9L?^pSqs&4x+rYY5j{!87~+xAGW^ZTKU7wTu)
z^YS#E3Ld3gx%}{j?3-IF3cP1IIzP=@c6#x|Nahmv`C$w>JW}(IwXZM#arHpc0juXG
zoxDc{#OB#Z7^Hr=(Dm)I_aB9c9Pg*92H#&gdoAbF4H{9WE$*zG<k_@OFK>%<<jv=|
zA62<Kz7N>Pqj3J%@1ONT%Y~b&#j~&He^-&18=Wxy61$YSiE$(&zl`5}M~>8+31O?Z
z=x*}%DA#fJl=YZzXmIO)Y6rtQG5s`Meiji2%kLhVIX|<`^QfjfcuqFkQCxq`X_xj_
z)gKpXWVL5X*yx%%yBhw^T(eX*xPas7v7l4E*$;9#G*2)5<MigTe$2M|zDFka8q?Q*
zcp%C3T&}KnrskR#!cAA7K3pW;F1Pr`&tG4k&c6Rl-MnbctJ|fCZUKuYW`>r#)GYpg
z!*Si|n~#M9_(Zo`+0CygVLCO@=<A6muCoH~8?!H9es=QD<bvA!e<nW;XF95We}BpY
zyTDTozrt!N0}ef0CN1)4(N)<aA5UzrUmVC{YoyK1w4!WjO-dMBZsE7LKXT?9Tb?<Y
z@viIoZcAlXlMG|mP0u%6K7ZhwHiMn-#;LRPx4m1<y3dDOza#llZOM_lTlT0OZWAhX
zR)~IbV78%qO=j8D+r~=;{#}$^Ijt?)`(jMmQUAC{jzQZW{15l5zqaDz&2M&(%Nmpz
zwEu9)tM$J78Gj`{V-IA7jgiGf0d+nLGx(AhBO`<93*9)i>Z9)FOYan{zaD>ZyISpn
zABKk|#SSud@@{7=+VN#l`<EUYjc?yxean(fkv#Er{rmi|)h^mMKY86^*|0a}-2|C)
zf1Y)3Ir5}wazxA-R{z4l#gj#1yuQtg725Os0muGHlOG@Pb1IBkrQH;N!Q;^6RHdC(
ziHpzsaUTmVF=P>7@saVUzZhVmRb?b4Sl_atEXav}r-w?$hVDDx9!y@+QQ511?8%gv
zHCNplH&07d+MqQ<V6%Ex#2g7;w&^@ldYrsp8tm7^ZJggQPvoLP!5PlpER!E0z4Cf`
z?M;;i3d<W}AFHMtZF~?MHajv_EhmagDkmplW{gPAlsB8yW_c)1U(LC2L;Ye211|k3
z8)5~8m**OEF1~7WP2fv{`jM+r5}_jVgNjm^L^rlIq<hTG+9bC^af@)*<BZkLl|0J~
zwH7x{Rh^iu)6cdzF-frW%r^ak14q-s&M14T8-|(ODs4(;)nb{vNlf7S3$Fv^fvx8j
zvNIN|HnKKaaWi@_?c<&~N1K^n?RkCF1p~`)$HPxznzdPlf)6a3u|af#MwhMT4joZr
z?JW^mx0@Lm7X>p%I+ULdK5@;U^qEoMZO?`>6BlNK4&Q4xx8*pT^m%b`MU0_h0ml)B
zxyNKyTC`Ryw9%R6^I}Hm;#nz|T^NNn3T8>I68!A2X@>0K$sbu5H53+F-c-LJ7_i`2
zy-aed?+@K=vJtJbZisMPpOy0I(b1G&|N8Gso7YxWTgUq?d;iW}_x5*l^X>m<`oy0V
zzkc?S(E*dg$6wxGwtji~^o_MMed_bpO?xNw>vIUti$}sb6NA4vNGHhEcqvrBjN4Oi
zxjgUJ^`F0Y&YrhBy<DQgc>mwc{(tWL{cxDY{@C%I^}9uKba%|Z`{l5Go#E>*7az<w
zR1PVw{(n1PUS73tp{m~2s%2I^7TohD<o5qas@t6txvzm&tz*4xS)*>zt7kh5rZ7j|
zoi4_4w_DOVrax2hQ|p<8P4gIDF`wHlZn{7Gw)h8w+TAna_hu_Znb%g=JzVyF_IdB`
zt$U|#yLYZGSM74W@rGM>^xpfpnB6HUGT$E`V_LpeJ!f}a&bs`x_0Q(Vu0DDxs{Q5D
zw>ga)4H~B%^bLIaAv9!?%|$ucFB!$&(ODm-zBY(TlxKXbD8*1AygrpJx@mg!X~`5H
zb<PQg`WQCLsT`QfdN(oj^TcDPuT450CGqr;v6A4SmhdAEkDe&Uq}K<1>}dY&bEdoh
zw%WAUjB3}E<Dz{<^Y5hy6efLLW#w^DI_pl5L5@jwOnqX_%GdfGWxLGwb?E;(dPJbl
zay}c^O-9y_3IQBfWdqhoY@U<!Rp)MSn7`Lu<8ps1UYCPMc?D8i<68p7Oq<I@g!XK?
zne|2WL$k!LU6E%0p8l;Aew9-%?6TZ2DI+aKWzE6#)23O{dN+QY_BV7&Hkx!~vgN0s
zJ**K*1|m9d6XLhlxKCV?vuH!j$|~>aLaFlw0%t_szIp!SY_+zJ5hqy^BOZ06I|NPI
z`K!re`b@#Km&-%=*GO3~vN!T>IMA_ukET0Q!prKc<tzNBT{sXjAziiigye*r_WBph
zpA%0R>U*X}l-S<zJoGf>)Na2|5%0H0Eq(qs>|yza@3(K1KJRRIoh$b-xbv>_k(DX(
zPO>T&jvIBZU2(Zzw?KMQIWzBx1uRo1KZz>~7QB|cn6EsrE%i)B)1*7$E&NmF-8*%f
z<^0kQF*6shU-{0QD`Zoui+$r#?WEVUruJB|)Zfcy(4HSACiQAtYmw}{|KBpgE!Qr!
zIkLQI{q(0f4ev8TuF8gpT8f1(Jss*bef1Q*?V7Q9!KYSaIQKbB+oGTnvc$Jja0x@s
zs+-3J_(MN-o>35p)bvYoy#0tlNyR8$=(B&N{FnPC*WZh4x=0EB?U}XU%KAGZS6CGJ
z9;W3u`&_7RlkJ+2sxP*kdlgIWYSCNsZ`5+{WH1tAxOPV5NM4uojGLm}Gk@N4V{ctA
z_i^8c(kPdzHD4^RIiJYeGkx*ny-yz6ZE?T-Gaxj7`P}8HE_-L>@+r5dCzbghInEVS
z&b&iL_P|o^2TIBFG+lmh_MJ%53EP@}>!$K`_b}m!Z?644URJ+kxkT1{L6L=P7oA*X
zU|qzQ^t1N$fhU6Af2(#(-1atv&+^U$_H)`Zc9cGE?%=#<&cUyIu4z)1!jkF_GBcFF
zT>5VqaK>6Au5$MBz&%FGd>b`*%h_#jO|@2-vUuB0#VwlRA?FvL`uWj`p}BZsJD-O6
zmBKY_S+_1a@Umwn9PWRSRi9oKZnQ}Lq=4DYRFNsS)b5{PR7m7F;a#J0?qBw|-<u+T
z*vu2|<aiy%?q;px;3pNh>GsbWt}dy+4_Q9WH{X9xU&?<s`w~;R2hLST{HLzs7cAcD
zEGOk5v$((DdUHo{ioVGSzBj-0j<zqjZy$1F%LLvn@|*>{){^aa+ho}b-X_)Wj@|c_
zf$!M5_v>f5R<FL^XBll`%&qWzbL!=|k88u`#DBLk_;a&=v-bDP*541#^k`Q9{{8pO
zq@VWfvfFn5*i&OyS@utShcus*!Uu`Ydd`RbKPv4Oim3YQEnk2BT-@1rv$B2e{<_jX
zd4-Ug=Zxb9jx*v^b}OpQNZ1&1?6#w%PH_FDx);j@A6po`;iy&Pz32B<;EmRdO^X^n
z3+Fu1<-THIQ~BoNu_F$3MLcN&M&E?jJ9{@~sq!s~6<xG=-sRlLi|zC6{@#9)`FZcZ
z^>;Jom$ap)8{HP0_GqHx9laIo*2nBN8hldORB!j8GbKW><&xnu=a$MfJw-RBPLzAy
z8uYwXsJ{ICCEMe^_dO?UoBqwr{VLPEsXMR!%RCr<?eDW=k0bZSI%>T+d&qXe9OrMW
zAE&?VQMpuSc5KZz?y}H_rE6wv*j(9I5wx}HeD>M<Up6Ip8>Wf9we<NUll6L{z@<$M
zj%TY^&)hV*Gh@~L7poq8EN-bwyyIQ!zc28@UGK89?$J@@^R-sptzA|2edR3ottKAA
zAJ6<-y2@$dm3#Ju+TtxU+|S8fm%7Wb;XixWLftLX9mF_A7!9UBRO1wxUSP$fRX;cK
zcG2w<g0;`X7i{~)5Z0-DhL>4mHv4WR>)l(ol_f8oq*dL`%B0XK!6L~pWzFATCFfaH
zPAp7$+uV9E!J>BNyUWXu2X5e6^x*H4w|}4flJ#ejnrPycS+Ji+MBV9v!^RGk9`^69
zA1p;$Cco4P&8*n|dbRIY_iN#|)2tqE<kJ3I?{jEZl#eCvZJ+<OMw4gj+AQ9nvD|o>
zi<a}r<@@jdx7oRO{-1m&$5xF6%`Q^HnwJ&s``G=LV`Z)RZP~%$Klwr6`a3L26I;}N
z?6&%0@-tURcD7?}+7Y9+cnR&gD8F>2poe<1H?fG^ol<+VERAnj$c<^wRO8dnuF`ok
zU3E=S_m}#|-bY+-f6X}Y)mpP}=_M7VE~5Z1?=#m^|6N@poqb&Bf>zn-bv4nNLZ?%<
zT%7LV_M!imnTSl=72W%99BtRWW|EoTa&6tJ${TgAx7lxpNy^QSUU8^sr)^n_=?+c#
zz%+y8LYJ11gFQt`u30Txt8X|J$vvAX%j5L*%{I+%mGNQ%^^PV&o<9n2hwuD*WBulP
zy?1`CS@-tJwddl;SUW5K{GB(kMbosxZT??jE`f7t%T0RbmqlJ*SpKFb_SE6pa8vE~
zoyA^D9_9V-FE@Uy<)|rGa6~!0w&L^m*|Xz~Wvd?a3LJX>ENy4*=c09QXXwAqX+8Gf
zxHsEIj$<VS2a@=s3s3B<&keSp85m}h;@g*2aL%Dr_UVs>(fQv?6OS3>vW5Eh%rN9T
zGiT1s1Q&zEC3o#ozS=cUKB!`D88@XechWx&(M`)XG*_{9FW#{B*Vkh{i3b!ocD(u8
z*cf7%nE6LX!a>M$9#4Y7EoCtVG0uk<H%GfTF6v;a)}1p!B(!P&d-ul|&((AK_isN|
zc`!jd;8xzXX$L=*Y(MQVwV`|`N6Hz_sn<?_pTMJb?a7NLhD(CVKM45DulaaTSZFgN
z*Ovc+@7DZx6$!JFy0qcen^#4_W_vrQTye0p`R(|};tFemkgdzEzGwWA7k_T)P-S>H
zVTtJy(I@*m9)HODc;D##TCUqmC%>3-$-DmSg~Uybay&eCe#`gh8n3lsUM+XfLB{dN
z?<wrHKRRE{=$MhQjjy7|L%3nL;^l2o#mc_Nw~Jk?SZa7kk>&U&gYp2mXa286k9#-;
zuitTQW}ExYTaQ<k9;s-%+_FSq$^#{#rQ5FEHQjma!;edeT{8-%*1b<WHet%65W_or
zH+{X_z)-IhE*5TZG$~ko4%@OhJ;{RmUj~0Z8pZXqentK9Uybbfc?qANJIH&udnqMw
zEv`5iFTuJ;N%VlsUX8-d>wjncYl=A)EMR`+|I(>uk26JH@unTCyvp2^&%{}9WO+fb
z$D|pnKKLfvO}}sC6STR}PjCi{$njix>EeGP8h%o@uS{^O-*7TTYTxRx>dB76%n5H#
zDc!Wc@85L3s#hV4<@kr<BsCibvqM>ufr~<ZsZaRE^S+Q<YUT9@e@{Q*U%{2aviS{v
z%%LD}lL#%oeMfIDdh==9rXx!YibIpd_C0Zld0qHOG$_7G&?mUD;#*Y9g9k#TZ33E?
zbb6=d-h6Aan(^9I$*=VbBVLQnG(G<B)B>$JUWcw|l$ofhKhW^4FPnC{(&qt#;-i4R
zdC&S}Dnk1gR&+3WE1pZ0YR})p!*A7p@L2!<Ur)vLxw|@(oEJ&zZVz3&)5?E_S{2t#
z>3u1s+fChgr|`#roAv79imYAx&Twt6Dmc(O**i(2`O{W+_MOuN#5NkL)XzM;qwtT+
zmhPQv+jP<#+ID~93f-pB72jPnlX1!n)}@b=D}JQC+UUg8tIeMLk+t`zkk920zSrNH
zpGf~&b@*WKol8El<sKPR#Pux$Os4X=fB5$H&o}$+aZXJCtYltTy_Ruq(_#H0@$+z6
zLgx?HjfF?jR$nx24Sra`w3J={!KUVVah_X;$}_BYt-5T(EEaM$W8pU0@XYRyhYfWO
zzb?A}WZIcStJ<}UFMqo@)%vin$!~|`MZ(&zbpB`gT(qh^+|Z@y6}bN`mrS-AkGEgQ
z4O_=QH$8J2Cg>auko&*)+Pn+idsjLwl&mV%Q2OGMuF(|a)7e?NAwjZ#(dE3Gi(53e
zEw9ggX#8;k!!w>gTQvW)3BHKEv&jGb`+WVkYRU(GG|rCTV_N0?VDsv<Y)j4`#)&*1
z*z8_pb6$UX==KG@O3Qq&8|B4u8s--lrnhsviO#5vjacN>e^q4hxjhN#X}4YZD%2Vb
zfBn>*_R^+V?Bch=HXZ&QZMyfJ!>-<3RAxKZJZi!I`i2b2Lr?W@&G~8n&hAdqj+pY?
zy540IzvewxH^1N|A5*(9+b3ueSIXjoQ>Ug)F~1@Ata9Z{+meQeNgGPvZ2NlevT@#d
zy_sEW&ev$U-dHwCqN#Gl$2s1!ul-qZ?6J;+UB@*!zlr|2qyA#j?d;u-<$F);(%Qdn
zb?ZyXTg$We2(CD7S-+%zyPao-)76Wj{b7!aCDYXRh4emcmrmF8iz;~%!>DNGczn^T
zvaNd$I;80PbY;~XYOD*WZfz2Nk@43=WKL7IuWv^CtcTsg8Pi&%_<ngG*<miH@OhEq
ztWE!1LT*NU{ZrRIuc_MjwcF>n(>u%p{1^7!aM8K+;c(fBx(WH60W<5vBV+$2HcCk)
z_}$<PN!2q^^s1g6;J&c4^V$s^8&2OD7Z+AenL44nbZzbLjCHp<RtxC3-ZAF=C-Q^U
zE9jMi>@l^1s|ES(*DHSP(oy{5Q>Hy#gNyU<kLIOy4$Zr?FKf?;mUEXc;C=9;YIV8(
zo(w)0xmC>jZ?LaDRku&$?$_rh>sLBxpW?q^_c@IFV1tf&Q4LFR`ibIpz8|aNbYyy5
z*k@IWh57ydd9d_+Tcnp~jmCywT*4evtnE(zD5#m#Ir+tb^?W-7_!X0Wdb+>zYIX^`
zc=-LUeWyOYSt9aIZOW}VhZ?PI99-(RK1!(l_2%Zn8Sf%zvwq08O!@zK*Qx7nRngz-
ze{XY)Ui>A&+|)qX)c%v^QIUx!xy_e+deQVnIO~ONJy*lw<9k^9Sbj0=G0dK@fg{x^
z&LEmq;TBtHVUftcU#|}so@J_knKH-m4R7Jn&^;mQjT1HMWQ<ol*u7G@dF{kx?d~wE
zjpcVa{2$F>mpQzzO*#60#*H`T)1GX9*1a=eF?&7RDyLr8`)9U1-tXYM?#!9w=&w)D
z9{oRM;ROXRgZHibWbW(VJ)C4(`7n>+MjVrqUw!{~?)oI=>&@|1^E5RWja6zLndWqt
z2z{A)n6sB5Kv;n71mnyS9)b7IR6`&3+s}H=-`y%XW!B=yFY<qM9F{-EZGPgg&#t6b
za!c3Di`99y!}RckV~g)QJzV?0s&3J_+3UA`v(a$qcG+~D<>*VvKk~aIg?O;6y9A%x
z$ZTY62$`wfD{->u&bCi>@dpoE2ZYMaVBnl^<!s;aNUv>kJUsVmS(_exm|)_w<IH2F
z$olztCOdjHPqtsN_Fy(S;P!s@^E;OFK0ki-_U)^$)%Ha@jwk6qJNNeBM7z(2Z*aCA
zS9)l@z54lP?dER#{Q5$Mb4qdtrnCJDE`3=1{bADE)hBYb|M1q|U3YQIkBYw!&szV<
z*}60KZ~oDT+UFlKSFM{dW#eSA)#vN0&dHstE3|obeB$SXJTX53&tuAe^vd(X_OII`
zd3NJr%kHHj9>(myc0TIs5}7DwF#lw?>2s%D*WU(ScL>(F>s)^Du2HVBMUi%lx~1M`
zv&+1(EBSs%@Ax3d_$jA7=URQ|&;K3=n07vW7pL6(T<FW3tqe>_-lu1;TidndY|td{
zSx+jRPj{Yq^);^k<DUgrswX{P=xnum(?and=K2Tv+P@r<kGxxU!gB%B_6u(XKXjeA
zYtAt-uZVGW)a~A-Y%}~Pmj3A3{Zm;s?P={-^LuVu0vitZ+N!k9GM_Zf!8bIc$)sNW
z^Af+!^Z07lpS~8<;N&_(aMePk{j0AXTh<`Tw~H$&Y3aFJ$p`hWUE;rcd$C%w)J!hk
z;C-JauDoE-Iy*)_D(dB<D^asP?!LR>n`31AlGAVZF1d60k>JM=+1##_qW#zQdU1#g
z#9#0XzL;O_bBocNB_eBA<imFhV;<>mUFA4Osi5BYiCa&U<Kv1Y$}z8OJCr!~IEpar
ze?PVN{@jzUK2v&Uuk?MGt=bsKdu&yT!B(yL?q|dU-`{h)KYjY_-zx8WmTn2%o6@uK
zyi@$w_=O4L1?!phW-M>oY4S!`z9;Gc@Am7v_iuZ4aJk&$OPd`VkIYo}O^y-YGqI$r
z`=D7*|2EHQ+4a?1l#S1Nx=vTK``Y;QYqjC>nZNCh>=u}#o3bxG`Js4!d;0vdkxQQz
z2kqH&X7jSUVeM~Mo;u*Ut)gJn*Olvn?wUkaem^={?$1Y6!Hx^bMqIzy^%^%u?6j9C
zW_;Jwc+&amZ6>DP_Ya*W*C=k2V2=I%BW;$Uob-a(Gv${|5Bq!YWPQY3#rX^#MQQqs
zx}vWh9Go}t{$VENxvZhKa?X!u)t$5s;7FIR`yBIs@6)Mf(@gie-)wx{lKA4@3)kfB
zb()=b|4W$W*6;eap|bZ>#;Y%16WZTYSn1wc#5Gg=_g<wnJ1(AU@s&>~aG(3e_gCZA
zle%`Rls2nbb6$JH8qK5ptn$#3dNDq~U+-@wmEUSUu`P0S_7*N1jrm*c{Wn<5m@&V{
z`Fr{)8O2mS{bL{cPYO-XP20q>Mrbvs<#NNcj}FQK6`Q}Tk~g*&`nz`CjY%KUcxP_X
zXZ^f$#%!Y)-AzJkAE^pX-tbSAbFs|snJu&RTu-~*eDpB*(^JEAuazt7-Lv!(6c@a!
zw|XTMF851=$?LB}_Zpwwhkm)<yd-O4VPhQ<n<=OuE0JB~JG0`hy$wIh?)@erO5bly
z@J`D)q`kJ2i)+`j;{lD`{uQUwl!IR|^mMU&NxJntFJYzAamQ6<H><wA`R|+WucEZt
z(dOc9rJLrrcU9kWU2rON;hbL`J$Jq@yYiyh<xTz0V7tK6hHlORxm!<{Ufkn!n@=Mm
zV8OPC<&D`w4$qW)bL|dn{pu=Q)uX>?!P<Q%n8f}DIsSe7Q{O7>$P)WIOb5@rwD@fI
z;L!G0Tn*h9)UM9I=#%P^rWKm6F@f7rgvCkvkoNC2o^A^~vlx7jDM>%vcH)@uuX8cE
zZ=Pme{lZn>TK}7&^tt4z&0K%hgiTVIvr+WbTlIrRJ-eq*ueDheZQOrJ_0s;OAt&yx
zUHH{9`_YA$J|Z7oT3LAyu4v=5o!+LPZTk6D`5p<)XPpPF<8EGCVIG?i=@GYY)2Bm6
zJ5Q}+S+e@I>q5uVBAXmKXR`jU+x(N4OJT+OJM#BpV(;dd%irI#xBk|i=q0C{RaPt#
zS2>ux%q=kIU-j;vKk`23{eCH>T3Gt^4RZuje`cFvY|@H-jYouCx6JcomiEruQ5|>k
zaOL9Y>|cx>rk~DV3f_8x`Pq$y$EvTKEn;M{T`(hybMD{lRsLrC-tCsU^Lvfb#rWvh
zcfW5W*y^7D?O`KgDB&Dc>wZzL{-@#t+l{jqTAG?o`O^CRhn)QV-;W>n@|w=lQL){$
zbX%ovl9(q4kAOl`-KPdYOY5g)%NQ;`y;*mo?9TRQFDt_0bU7mrI)A)u_t|N}^LZ`D
z(m6gQznA#DQS0d0HLJ~1LY<q17B84I>62sVvRf{-sb3sC#oqTjHOv)kikw*`v`@PJ
zx22_jkC!2%WMNwVeevTP9o21T*UecZdDoyysBD|#;Vw1pHGK)OPh~^X(s~TpcmteV
zuQfhax^3k?MWc-|i07}ANolkD%+=kjdm5JcR9y^WiF@Fe=pcQ_G&NTEnnGy=lacqQ
z-*48f-l{8CkP>?T=FO}5_Uq=Hf97{!QDmuO{YEFRhx^_#=vP{s9J@51-TKvm!~2*8
zW~`LDV)^CnwPYS0+iwT9Xf3SQ^(-iuCgIO2lB}C*DEn&Fi;dAPH~wC~u~Sjx&9O%{
zCpbE1-O$Wgup}=dMBp2H+O$szIpNcdpDZ?>*Kd&%J2UG0`CH541Gac%_dY!kd4AvZ
zopKA*cI&v-yNVjG+ZX+OlIFwnrT2Kgs)Q*qazA`^X2I#MW37!7goF7C6quJXY&pm~
zH&yJGshjD+%gLg0#{yogSbmsCW%{?Df8>qoT@18;PG~WXZC$c@Udr6EW&5_6acVlx
zGxZP&VAAxI-eGXpRK!_i+n1A0^Aj$7X3YHYcb-K5Qp3#F3)1xyl|;Xk8TRN4R7?-I
zHjZkUthP2oZo$EqN^$`Qjz<^YR5;1GF+notY{(&=*E#2fnNt7FbnsXZq8PT*?4jiw
z_rCI2$7Wv^$>{64x${mvVdOs6c~$YG^j?X2R^i10?FUmOzBGHA^oM)vdmNo2bLMe=
z!1c1}SGGzP@lU<+XQO~lz1OMf+NTaoHs0eqdrLP*Bb&g%Eh3!-_ja`JTDbHEE7K`H
zvxyoUcOT_EN=ZL_L3HAr*Jnf`I2<*%m!_XT>5+J`q%`)fqt3!>CIK}?Y%NWj(^k3$
zmZUYbzG!b0%;|am^6#4`clxK8Uox8)D#rMOPikR@Vu_Bc^Iy}AI}0y~n7SKC^?%(v
z>2Iy!=L2&aj^0n3r@7$&-8<|4F$U<)-GZg{WDee+&SYpg{Q)b7PQ7>eZ8NcZufq!r
zxw8~G^o3l?->H->Q_s8PQk*vN*_Q)KIf+ga^*kfL{rR=CVuF&)uZ!PGl!f@??i?@Q
zU#&Rjj*7+3h(9|b*PM@>DA1!aP32~cdXwTgPbCdE*3^^BeD*DoDclm{sd%~m>fXHd
zSHtwfb;MWh3;%uFtK49b%H+)YX}bIK>Z11C)v1dYuwYbA5%DORl4^AGop}7dM@w3^
z&KK&Lp)+am?VbJ=6BUDQykGU?^P}mkd{KPo-={n?a#yMkQ_&4zW8+g&7PRy)nzm3$
zf1YsTWSPY=mmD=!)>?h27ToJTiCb;?qPI57nK)N(7QgoD$*+xDG6OtBrZg#?bEv<~
zG^I^ce9HF4?>Y5TZoQqQs(Wei%KSrT{snwxE4wja&H2qaS`(g#c+NN!ckSuT+2`w`
zYx3L#PQKW%+V;xf%v1BOzB1Sq8#Hm-*}0mflFNK#<9^*;z|b$UA#T!7g<taa^$|C7
zPj-p29-5)5eJJ4A(-rsg-`mCPi)DV`koSrwes%pPzpK%)>!R;|UG?_4&H{-9^<%{$
zvF9=mb1bS^b*5s0ZLY)5mj`xE_RtelTs-0G9ZPM#R~`ozZ`S*49XqG4`cjjPv%~|D
zBh!{$y?w8Bm+7wNEl;K_pIxcW&G%5+zVx|GrH`86@#GcxcNx$6uKspfRMa(UrSsmq
zky~zF<j^%YGOhPu-M_<iqS^J$9l}g+6!aDIj=HoJ-4H+eKjW8d0grOR|MfEr@4njg
zUASP2bNu^;{PaA>UZq^0yXAF{cIAHi=X>_K6JMTCbK3i>n*=mFqW4zsxcYX|sgmj)
zmx@n$HU2ocf37QMMxzY-xzw^F-I8h^96!}HUR2Am2v+L-=MZ$OPno>2rQk?~pSq~R
zWEs&3BF?N0J_<JL7+Af(PFnKa%#%s-Yz3#fHrJ(8fv?F+x7}Y?)1!0h-COM`ldMB!
zL-M6g8<r_e=xR-vadXwJ{WsP><hIt3xqRa!hh*8KTj?j`zUq0moEEB|=Ktd1?g@bf
zw+`!AGT1dtO}n9J5Ejudu)AK)^RQu})Eu+d3JJVN{1{9^OJDp7`)c)|{P`5?UyK>A
z=A{X-OIR&!6aBrUuhRD4>{YWw*sZsQ&V5(+!GYH!V*ceBtCzS06=lmS^;F%hJL+Qd
zODj+Q&+CL!H=iE=UMyzJwZ!J#FUFEXiZ(pr6Eh9o>ufvU_~gLx%PLb=XdKb@s~4%c
zQR38Q|KWmV_+iOY_FBbHKRh^nr+L24*SYJY&g*SEchhpa?wb9X-<Fx}mv6cye@pwo
zYG)2czIG=O<s;LS60GN~vQE`1P5t<yt+rr;?}u+{DZiF?yMAK57FlH@cd<7wv~!!5
z$Rdk^mf|T-7jK*(T5(R9wW%)q#uHg4uJ!lpXRkJ9cxTmR^rk`P6pP>aXGSbDnmQ-m
zie7tauiM|hHI|1D%oM)+BVqf?KcA1?$?Q(ZUbVb-2G2(SHR+AIsc%jN+daSY`|7?a
zyKZkgX572lcjxrS;>z0^I@ev_o)<jrnv~F1>E!(I^|tmlLPB%16SL;K@4o!|^K4Z)
zCB~a-9di5XH*9;bg8RnG32z+}pEFCyMPL5@IAKk*;?B%nm#?m!-?Z!XykMC_7am`j
zZqII6VY&KuY_NR=r#O4UoM#R5(wTqrh0b((=G6VK%19#d<N5mhd)qdzoXMzkqJ_s|
z`Acj62*c;5+xOm_{r~JGhl$FkK27I89a#71lfM75s8cT=^ZbyipVF9CoM95v+H~e_
zxqc=8EN8Bl-^BlXfA&{rV_=ifOxF;t=UF<+5)O|g{ePu2&&+-7wet1tw-Qm78IS(T
zJ(Yjzy!Kn#>+7<HVto>>3T~WbDG_Inwixxj@c8`Su=M3(t7z87tt|<{*^WAn|60xm
z?9keqweBDHQmG$_513wbZK_Y|3(J+8d9u#Dc=_#f-^IngJr+HddhEc#`f{;3`ng_p
zw`#0@S8n4z-{86YV9VXvs$U`-L+>295T)>*?f==X1A8_3Q;PC#F)q=nNM;j!&~o8<
zG)Mcf1%=f%3U8jrUa>s>QFUj-55Jsd{rMYtPX(E=?a1Z3kj(zw`Szc)QWkTp>Q(;S
zIOKC{_VKNfbA)9a6~(#EC5JnNGrl=4xp`iLcge2&wga~(wyl`ICu#ONBORVQdG>c_
zSKqceyVD`4WoN}&?gjqhmv^tQJ{6hS&lz@W=X;^E>*UL;E>xSzT}bCv>F6+i#NVpA
z>qlhE3<ic56HjF}W*zeqNea!1KHJ{WH*t3TgeQxYOloe(IURm=re2Y8;p9h_zqKVR
z3d=03Kd0~r`pG@L#~xpJXRpeY1yz&6zf1{V_l$dfcuGRl?OyxY4odDfU)ndThc>^S
zF0fuBs>eQXi`w*+;xayri*Kl1od118xANShQYQ61e%`f>m;06P7`<_1^lzA5Ynf_y
zhV|b!=K5#T+ZTT7m&i2`{HM9oaO<j7?EiU9+MX>dD`=B_X!KzEF+1Z7Db-6aYd&bW
z?hE|5_ioFy!*k!7zP(dX-S9o0??TtC4Iez6FWOG2FE`v3vUlnJpYwG3gd=`!ytIn@
z+16iC+Y6=2w_P#&YCK*1x#_>ZN0Y1!f3AM=e~xT7cuT2ZaY<1s(z$fzmf#C2m`zQM
zrY}@t)~t`p&cAIY^7mc*LQ!U|#aDUn_cJojYQMeA<I%d(jSO!SG`7v*nEdow*{pZ>
z`-N0*b84ISeDUND4u38a7bh3wcCfUe$$anP!1oVKLmAx`OgwflL#%)+<duUEOV@=2
z6JERam@oe&_i~@94VW=g{q*j9@!GD#yX#z9xvqCV(l~s(J~YW+ukCre`qAXQ2UmPw
z+kQ4!<G}0>5e(0*W}K;>|KIW8l|SF~92~ZCy*oASbAu*dgy{LygU9d1+lC~r>%TqY
z#)0EZ>`vShlJb2PoqBEc?5{)!i<416&ztT>rlww=Q=A7^Rz-ERpZR928>eU>;9LKZ
zi>>GSdJXGYoA34=V`HutzV$%Vp=C?0)ef02$~_uSAI|^Vkt`W^bajc*xl7s}bt?9+
z{lA*H=xM4s8hu+LVA>_7m?biW@!A^Y%$a7LE7xo}e)#kE<>~E<AGX)2sDy1ja9uyn
z<n*iFW2z}^n-caYJ56am@Jn&w#|tXHKk7=X_WZcf&k=rRl5nDl%CuCG=k=?%%v^5n
zF<pI9!<LMxcDha>8atL9nEA#dcS(bA&Q&{WTdDbTX59&N$timNUB6@Trb~VI`ObIy
zNzAbRae(K#+uFa1yL8UFEb#s97g2Q9!Fy9`W_q8;q+CIxnomb<<{iqqc;>Y9l+)fE
z2|im-E;Lij5}DI*X_s<oD~syt%0E9o)qnbW^P#k{+tMdTI&QC6YR)p9^{Rulmh~Lt
z1uc<6FLi#VZC>Q@uZX2)mxYbK@c*TMAL^XVuNS#~mZkRM&OaRNtp)BZl1!IX{q#kh
zAGn&bE!w|%`o&M#d-hfS+>;U;){=B)ex1e+yL`3RyjN4ZIR*TzlDt&}l)i1gYaRdN
zaG^xK;aZ19eKsP;MSA)-^-QXnbxvyG@BP<X<1CW>ZckYWa<EXdgRG_MvNKf<VSX>)
z99go>lSB1t8e7Mv%G#iFEN6dJ9WI(#$l6gJvU|po29MO4e)@gq?dI~l^M7>l<vWu&
zo)-((rm?Snx+IV3Y|Gw@yILff`&`^xcCwY7|IAlcpA=>GY~zFIYx>y|Z~MbqdUtO*
zw<#~g^+rbL;kS=3E{RmnpR~^J%7v%0JFSmdWJK-U{qUmo<PTA~(^<dnTK%A$_3XCe
z@{_%}y%RjPty0%@x}qV#dNg|GdNV~Wk&xNUuTIn$9%<Bw`aP{?)|s5=c{;xrY>fZg
zxFhDt`ftv1{;gT{Jd?u2&V2Crd?ZLxX1{Eow0ZTF$pt%nSXi5G&(cjk+be5UAd(O|
zb8Yy^CuxZ@_ne<p5xOx-HGBE;Q?FJ2&(jnCX>+o>ap$(s=hb_B9v3Z0JDGphsA6(K
zX@XRXg6vBLi5aZ5OAqUu3p@MU`k#K;#$ZN?@)SkQ;|*7?6{wzVJ6->OuU?5$Pm*k<
ztCwnlmi%MUzxQ7|xl0M;ZC!m$&84*|BX7rNGmTp<D*`omq{>4CI>pjDbE-FfQEonc
zY0KY@$$?#wweO9t$WQe45}D{?u6ocXEI_={J1hEb_WY|Sj!Ji&KDy?!=rq|vL8&Fj
z{ASjt%_!(QwEDKm>}lV$_HRqAuc-|V|L-~HsCV^0+sJj7TyLJ)#?+90R;j|cz%@al
zXPRv10agJwDOZheUrtMJHd%dc6-(W=*;mfi>^-=vrjw<!)V)TMaiR9{uUYTCl%wAC
zT$%OU|Jb{4(;}x&yRGXkFTW<dYxh^XW8Y@J$l2|iygg%9>X&N=rV1J#kk$3&xY$sC
z^YQoFevh8U&U&Bzg8RH`hXBW=iR>yfn6HZ-4$s^dbv)AS+~dlNQ%_dxjYtVq_se_q
z$Li+UrmF5=j%7J>7yV^yKWg^JG1R0hJ0tGM@5#kq4tg<7ihbG4p>V7`tx4_H{#641
zHpHY&Vp5m2bYCN4@OQ;ptN-73UD(N{8=ZS~D`$ORy`+AU$H^MI-swU~rSVRwUE2H`
z3a`x0=URXH_3hM;XXihfz-YReJy}KOPsj84&9A;CrS)&LJ@dH!_mMSA_9>itrMB61
z{)&Rgm<hY?YMoubxybX=2K`P;ceh!u`Z<n&<9_A5gJtHu$EAz!Zcok3Q}lWJHFnp&
zjp<8SHT<;BC+kMXi}p@0<ovjQ-=c-GCw%X}_SO5#zwVE$AC|721-NU+Y-nOUed2j8
z&HBBO-o>}g1opiS|8QmDF~Odr(nZA{>YmGIdd~K%Ew+*KT9mwX(+jUDi+z^;eH$x~
z@}=RWgxYfPMx_Nu>+UDXM_hao>@;~kyZu~#zxzd#8C0i5d7N7>e6~|yLWWysqK)Nz
zRq>SyO+4;lx4%qJow<J9=1e=8!ljpMX5YQ1`^mJfK3O4G>+6S4f9^gw`}4tj#s_>R
zjrmNDf||KTdu3x{E~T^;zZde_VS4g;*3(?29+iYU@5N5aH{WO9a&40&^Gq*krWjkT
z$unP7D}Q!q6Y8AQWnj?Xxqy>7so?BJ7SD&3N_~yCTvy&INCcj$OK0CQDW_}&kM_}h
ziEEWacvmfPn^?a!QQdW;M4!q6)%Tl^UcF{tzhu&{<?;2^|6hHr_;bv+PUG3>A`2!>
z#lHvr!(V@t*u$~*UV-r1%7(d-Olzb|E;L0v+#=W#^>Cwq_tRZA4L^6?@R`8p@tG^U
z`O~vkX3k4wG;G>T!p<{jcqo~EX_*qN)Ou(8ro>Yw6P6uKi;T0JU4Na;b#gPit*#8S
z$Jt2hD;d7d=UoM3HcOmed*P7tMz1KhmTwXF&)MgO=~;2UI&`hV!b$fM|LR3LrxY*0
zoWA=ZM|+iP;oIZ4_w3PJ)j88yc7s+S^B2ii-*0^G>Q&a(?!H>_#`eTdKi4$XX92MS
z5=>Jwk0f}AzOY%phwF5b<*NRAmFH%A&xgOR-1w#V^H%xIM|Tx8O%~idEubNVMdoeJ
z-UDy!X6tV{siZ#jW#8gc&Vi9et|sq=98^UmZbnRJkkVH&YvAH;(Y$wddyhht#1*l_
zw(I+EmrPuH{oe9>^*dMjvCLyD*9f~e_gLL0KIPLjRU#p)HwXVsc$&U%+pZX!hK72k
zwViAixmlTH{Ujf2ez<V#?JD<tnHB3;7*(r0>z$HkJlp!JTFsf8;c1fo_tu{eowuDb
z2zrv2yUXr`VEKI`^&iXKe{{GBe^Ass$Z*RrIKX$t)fIef#mUVlo*BH8J=-QO>h$-Q
zzxA~YU*<J2!mF-qRx$A^5eU>iXmG0O-E)Sbdgqqv$3Omkf4E?yb<6joHDZU$w=7}|
z$?6PUCVXGkr9#!BNOi&ds&Iw}{5SuHyg!yLmtfvAW8K!eV78*wota&K=W*YwaAjU`
zO6Xp2=6OTYjmx&w#~pmVf7|m18Kum7f`snwJhc9?*>#cPjW!*(&&}gIvuNA%EqxOD
ze;qt)&%|G;U$S9u=F?@jv;S4xW&Tnjn$q*NMJ|71!c_PA+Br)~qITweeX!A#=f}gG
ze81)Pzf?aJynCY3vHR^47iaDh2eqPK_OWU;9ITdfE}e5`nbX>>_LVyyXH*;RmuYl%
zd)IY-&Cbm>Nq;lGGBs2@WWFZuu;*^jZH5$nW}8kXiM4SI0<86(x>Z*9)<vql(%Nc!
z_xStDHKxXFn^XLksx0q`h@L(vdegbnt4}^zwc_20r+1gF@yglvd};f`jA})_a_<FY
zM=l53i%quwoN2lL{Ody;-OKh&olz0NXgDLhCG4-j;T~1r6?I(t1ro~=k37+nnESKf
z>W84zudm!DU3K(ddcn`fWKDg8MC*?k?>Z%PKg!z7l`K2JGkNi`-}6uKWT&f1g&*j-
z(DK@EX|cHAR-rk<hkg8?3ARa`n)RtL-07{T=+msp@;kG(Ub0WCo1wGmW&Gr%-K+P0
zJoflj^xA73ZGr*^H4<-qb77g@a&lK++|#FNTWuW9Pi=nRcWb46`cvP!hO54zZ|iN$
zcdk44y=2z&%{ABj98DS;n11bjc5iZiU=QQPkQ#kO*Y_1`j3VOxvR-kY-WBM);oADr
zyz_rQR<q@XY?$%W=X#mhgQJm)l^T}Xn!5kZ;ajP2>FZ`z@B2Ug-~ID?RcCMVv-Y#M
zOjlT>`xal?JLjpqrugZfpDrJ~HT%rhBjKAbZZUdS_qcM6+MdIYtS5^(|G81sX??zS
z$I(64v;OgSPd8eDr39b;F@sZV`)dczd92gdSaFJNpYO)$%EDw}x&4_J=O-pcgY7qc
zIVUqsKj_CSvb`aIa~TJdr77q-I+5+ilQ>gZm@Q09CJLzYTbdxP)3-2&A4J(NvQxC~
zef-1YcWrjODc)Ecws>lS;Ox*%Tue&2O%)OgoC8jnNU?4FJ?Z|u_aVFU&-j%4U$$M~
zSh}(H)#~?m?p}>>=IZr65mUIPF^kW)XhKNA5`|aSWsVe_)m`ypYikheaiLX-bFU=$
zOm5q0IaO>{&<RUnKMD0$i=s|U`B1N8I!8k6ao)6^t5MEj^*#qbT`E|fP?@Tu9}$;5
zcZ-suc~Rqp%UsVw&TK3+a!5a<{2@W<bEuey1XDKGl7CJN-lmo;$2c#T-dUPul_|Qq
zr(x&P1Dua_rTzZsX7SE3erIy1GdWLa#;it8zMguEg9734^O(Dpb5u8|&D(OVAW5QL
zh&SfQ(;u99=7%?HC72yZt>3v!!bl<KsQ(pp=C+?j!5N3|bBB26opa-KI>&Fo$(Ux$
zeW*g+J78{tO>pVm#)1xkP);>XkH$l~feZ)Qg!yKzzCUrnoXjN8g^3>*3Wdz(zq&y5
z{nH0mUT#lu<XymX$(xPmw57<Q*AgLdDnA9<>lZz87V=tYwsFnEEinblTOR3WT&VR;
zI8?-4!IZ;sCcN!jZ_o;^Y{OFv#bzvLWaK&6E@8&b;g+E5Ia5Nj<XX)MUy(ySchnBP
zSP{-z>h?^mIdo2pb3*f6oeimvxh<sMD9zz5+cbw)-Fq&td%zstijJMKv-AyaY<j3#
z?Db6U$+dd^$;TG_l;mMtU3hFmfpo2NLdvsq6TS2%Z{B?J!=HZs%LX<(cFc(NZA+gY
z7u$QizP9}1{F5IF%6_I*{Zu;WdinIj^M~~h`|E$IFqE9<7a!j$enwSokCk{gXUm3X
zFKP--2L>J6!~XD%4$t{RA3neNsl(HMs9b*Ir@L>Irp?&TZ(sk<;^6)3%qOoZ{h1*3
z;J{g*#fKhv2DKR8<9HnZ{$Aa#Ic}X#D>MYymA1HOx*N$o6tPe1`>;FLz~YoukNZQ{
zW})B;skZz7KKj2no#a-rYL4<@K|Q;@_5VLzJ89WFnftoOhpl_nve|?`%;`PZpDrG*
z{OI_bz*T3b+qQKI^JLdG)(h{6-rtbYRQXlVrE`jycn4F#sh_Nm%uoMe@|T(yb1u$)
zcGG?Xo60X1Jm;71k8hnmTdT6@UzwF;9n*rBN3Xh9T-CVI`QPGq$<L}^g*+c0uZ>@x
ze{Zh+oWF8zp`u4xvRFRNpA(;?JMC1>y%kUUD^@)hJpQQiNWXr6%H$;lTrB?ei(gbK
z9+tB8RQTqaeY<y)+(nI(N;-m$68)|fii|ofSr%?SN#zF~Zd1<Q7OdHoV|c1}r_DKC
z&4X&M<BE44sAl}~+UJsR^v3m@wieyJ_9Y?ua$a^-NVKr9hPYrr@Dbq&70O*~S|Z%1
z%S5*;&yuPZa6FaR%vS26{OD<D->mW(^|NX-v#O>utT1PF(7sswq;B%+V?CP^)}K7{
z&*}HfXKp@w?)pu%_54}k7X5S9#cMSyE>7FIaa-TE(ww*l_wtUI-}L6vaK5(5%qd`&
zyNhG#$$17xCkJ+F#K!CS7Hm22@ZimxKUy9hjBw;R-?rcW@6rGD-`}rZ&2P_h`1$$y
zk8i(xTK{wQk6$%E?!WnT^(SlCzN!!R`QNv{=Ql56-<$S?^``9BSs9KKAGYp2(y}VD
z%k9c!bE%)N%fm1K`1~e+`uX(E{m1T`E!=S6z}^=3Wq}$pa}K^u4E=EU)Ymc%e*OPO
ze@k!O`YBi|AJJuQ?4f<nv+_;gCq4G-k=v&=mF)esa!dWZoAonpf99EV&++P+Qy=%8
zQI30hZT6h699Mm|zCIWA{>hrxC0neIob5fy+sak7;7#J}4E=9r7Ey~o1*qNny5Z`l
zg+5!XB`*GoF<CDtYqLu9$nqR(HSv(|^S($a->j3q^s4mImxN2FWY4768gXiTixqV)
z%K19mAn~V_@HTnjWAR3bnf3LbBj<bfTzD=macR+py!mrD&7Kt+EiN_tt97j}$Rc8=
z+rpCvMPAAFWF{M3YR`XOA^gBv?EWk<@9VP}ve_>ewd<YAd$A}_D<^!32G^CRtGky!
zDl*|W-uW!?So!A-p|LNm8~cu$Gd*{I>HhZkrT(q*(e~#oKgu5XY4|;P`t@=tzMAj(
zb#FcuO`pDd&z+}Fr|)28(yo`?>={z>@9g)O=swXYE3QTCjW+3BdSRQ;TmKX7$5)Gn
zTBz+=E!O>Jwm-MR+2EDA>`FC03UdXoeA?5tc$vqoGJ&EaZ@p7{_pN__WCn8t!$Cp6
z!hQ#_7KPTI@4g6eyqo>z(iu&Ole|4^3K+sS$Ie=*ZV)=9DJy%{!Y6m{^Euu6Sa15+
z+BUg=55pv>RcmEuEi7VEcp>H$ZK&kowLRBtZNr6+p~@e^+)`qhGMO&lTqtSF$d^0u
z;x^qvh0TkN@89})O+)<xPoGcrtiWdfH<!+E9$IDas518EDi7BgcT-oFF<lLCD~U>G
zx!B76KH#k895&MpYf^0#LrPx8J-#W!5$#&vzlm#2(>LcS@9(?q$h;!TXC|;k`@m^V
zBe})fu5I->y!Kaq$9KtdRud)(J_xta`jPqe-(%};*Z*fLIhXwScdSn<(2uc&u_4?-
z<j<8~ygDj}!!w`m_W62keyKmV%F`LAv@RB0o3Sl_qufoGJ<m2ctX<gOkS1^>z_!@Q
zG2m0}v)%QTCGn3UK5P^huw$GM#jrrPal+Dw;G2nx>L<!WmV7sr^<Z`0)jd&o%2}55
zukYthbNJ&vX{|xP?zs$X(O>kBPBWO2EV}pjpZm8Zoz8qXe`}fp%bz!E?)gvn&uO@L
zZRq=dQym`vULz>pb0AWB{Ux5%9|5-~mVf4~Q9B%Yd)9lk9T)1qnLRpjagFe#hpYD;
z+`=%4mnC%HdD{j*569EH!}dO(miJe*{^$wLJ?7d`_qM*W6<;!6={`e8PiHEt%f(O2
ztlxIoaOwYXKC##QsJVLn?+p*P`F{L*U)S91=-=NCk#&U$FI=Z7iz;__znTA8SFgrF
ze6y6EnDyxu-4*|w?;f;1y~^==*|e$rcO$RudwgsE9*awSt3Ljiy=|4-{ne#UH(q~r
zRQg>k+sfmAmURpCyuNX~>ax=tdAq*9r7Nuybk2VKpMT|F<#fZ{oFdbM-mr>H=M!M^
zW3-%J_=!<u`qFgH7t?jqIa3+UK?ABH)7djQqxg=9WX+z=;B=>WT~S}j`sw+ZoE`Ny
z>-d<89(2jgV|EWo&|?Za?RY@oE3>=iffAdAAsX+~&dd~_X)ijLbNYes=bv+Y_DVdf
zoUP<1JY92YhtQgiTd7=?#iH+wQa4Roxj-#gVpXdc%Y}#+skdy8crKjWI@@oLQt9;=
z@!P$-eHm+H|BFX*=`G`(X}9i+)&Ijhj!dgl>$4UgJNnsb-gFC3Nz=PxvvW88o>6u2
z$djZK!F{z0WqwL|`t6lJZ&g@sDZuDp+y7rJ=FHuMMPC=q`DrY>@A0zYxgs}oCGJNX
za9$GN`+RIE<9)V;p{y^%S)VJaEpoqUC*~5eD&q(T%cBo*UN=RXBChRQ^;+x0#3Nb_
z3~pg=4;5SLgJ!fXT_f~h-}%{EZ8IM=F9=fISkcV&pW$ih>9<m1dsA=D;3|;V<oLic
zF`_X+>c=&$!lx6}b~Vi07u39f`<=7ezvwT^Gj?l5O-NkH^iaNWkG>^`phxMJCow#H
zS`*YyPBY>;XIa2`c!TR!kqI+Ov?~g~mj3$q@bt~MS8ukTzsy(vSB~|*)_tp*b#v2Y
zBDU!S=Igt^xR;m5nD&&V{My#lze|dy?s)y?%)IZfwxz$@Yq9#MU`|wJ`!)aPL7sch
zsd@_EUHI8K@Vly)rVfLx>mr|~0}=e(Yz75=-!i9g_?&9~npRa^`uF3jKjtA-D$QXt
zuSpy!@Yru9ni9C_%Km%l?ez))o*R!PEbJ8%F22xq$ty4{sAZvm#;)+A#g@kfOOrE8
zpICF=n9yIaN!x$7RMKO)O%_|9|2;HSP)6p#WOwT+dBW8%W}9BPzrApo_=idVZgDv4
zxIS&U6;vYqu;7ZV`V0Zb@{Tz5AB<PRY>)G$M>Kt_o^wFu=)(AEKIPLlzdZc2{_EW}
zhnbE$ZjW5Rn45J~HRRv6b=d-~|F<V7x@`UYO!k>X!>w~Nym@|KCRKel(Z3V>>&l@J
zmKi@b9sJ^3(Wz--|ForMcIrzbty2$vsYd0V{#5zM*;%pja^Nx!rfvg`^v9pF<}l57
zEPOW4xA%P00Yfw9zKuJJd+zTt**cH?vhBL*A96T(>p#7|QOX}Z=SD>Nt%rx34ZqiN
zDDDVQ|2cvCjD_?gm!v}#PFHIz{uX`v`S9JZZKr#VKiocRW8eF4dE3L6ujV_>+YoQL
z&QGDvXwlOI!OKeN%Obb=ZQLZD8ouc6VKZ~pDKp<*(cfdU^*y)wuCC9ELVx-DJz|w9
z(N1sjooT-Hx$IZ2`W>%V9BupYJ^ax6<^S`uS$9nScW}k;OYH(JpC>Ol-?Q_Nq7>UP
zCZDtKHSL%F-@2N^nr~<5m(rBg!mBx!^90CyC`Uefe>cNl|6u+4=@Lz~sWYwq{>n@;
zdlzndU(ELG5rGsf#_K1)hy=19ey1(r#Bx`$O4NtrTdn1ZXTGe{j+F1reSfQ?{q*hE
z`}3?yYGmqG_r3nXULwqFuwqNZ@(tPQ3A_0^Z?1cIXm9GYS@LpcI|^q=W|c_2zg_n7
zvegf-7tAS9oO|bG_Fv#{yDM(h^5CCi=&3x_9ImtXr_5w|Yv{7@bNZ4$XKgv|ue<->
zH#NErRAdQ@TUbD@5m2x}Tq9s?Yy>_^bo-t>&N@cMiQBCUI9ZwN4Q{Pnlg?r{GwE+e
zMWwA&T+jOV@6Ce$IWV7@a-H|aMbRAx!p~g)cu};a<;(kb`RDbXK2_4aB&l=Yk=u?A
z1;$JI#>r}zR1E9Rw8SV}F<ATY(Z^L{-8OON-G9`B%eI8-8T8(M`l!jsOYc`t<mc|c
zf%aT%zZdA(`57pF_Bb$y<5+z=$0XK?GJlWWJeuyKb<RzE+MoXp6^mo6KI}eql(9~G
zI$vGbk_is;`I07`cu}XhetG5Be-0UJ`f4wa%yABx>2p$Df5N2Ti9#$Xp{eIrS6=>*
z9=HAcruC(5M_H3QR28(USG{fGSu0|-IgxwDH+EAE#U*hyDa+m_hn@>u_Lkj%v%YXM
zUre0+oVoWS4lQAxcvk7c#MQfWb!MJ?&k#N_{&+6e9^oY~Wj5bC@!o&qGL@6@C#Qwf
z*`#OgjY|9UEc8!uW{E=n&yXdL1T;F&NQ+fOs!ZE$df-p&;T3oPG&SE0OuCSso^bKd
zy%}t}38^#W!zI6EKKc2LC8b=q;8knl=0wXs^_4bzcFV-s{i~=i{%o;_IWcFYm25^=
zq|7eO-BldyKfF||>i+3)FP`h!ZQIdwd)JB>)9b&y4oF?w_fb}09;@%eF2RS4Tq}jH
ziIt!J8FOz{uK1prOEe@_Zf4{${CIuR<e4?r^OqE_)C!fE#wB*LLizBqmA<<3jxsKs
zGUH3+7WT;c>cvt|SZX&sw&6Z*adzH~H|x|URqXLSu`5fef8F|Z0ltgRW?5Yj**vQx
zcv|GHNN2r(scj`8AM%aYFf%NzJ@|gd{X0Gd`!_l#Uhr%`G{47=E$EZaq-w>uyj4M)
zd~VxBrWJdn-P`0p>2LHM-u5+f^UBTjJQj&u`kB^|?s?~X``>yE!FdO^`}}!q(j+L;
zJ@<*CjFbPN+03@{UAJ~cs1!<U3KWt}*{ve8VB4e@3!b^gJ@@#b&=qC%IQ8ZZ=?IJa
z)f|R8oKg9ol<p@?I9}x`(wemV+~Y0g46P~)S2alP5qh$BL%_E!-wgtP8qYUx^GMeY
zp5w^l$oFHz)+C9Rg4H1{_1%hX-8WgD`M)WBq-&+^Q><Xtvij<qqY{eKax){WTzEvD
zzf}s@uk+?)KR4SprZ+XpB|psFbhz$FUti$xLfK}M&;jNje2Z)SMQ5^dJj}Zimg&%N
zeOlAa#0_a*Uv60Y>zXf*;gw8||Jx$xwMUB1y0S7l^^zaYF>T&$ilQm5p?dXPtV$P*
zI<NOH{BQa;=r8NS*iHMg@0(uYPBN8^@2xdBcHR8dLg89J=l);+ep{b0KWqI_qF+~d
zeM*Im{1mRQGu7w$HvevtQsIc*@M6d1DKbgEvsm)xEI4noKlH)fzb~#S9Xy<HR;s35
z_sOZ<4XM`8cC;j0d|hSPw6#d@-Jhd{7wZ47@3fonO{L4uTtsL-1Jf?)Z?TgPo_H>s
zUoctxJloET68l(|ZvUSf$0T#6D~j1?bJL-?&`nDi^;S>Oom}*B*DB-Yu!FhBJg-OQ
zPnf_grOCTDy6&(J(=F*s3lw5zPkziLuEVzZZpda!mWxwNt@q78FDECz?$|V?dx<B~
zcwe5duAinUb3l93s}GfiXAP$_ZGWPENU+miFyUvX){VyHQ76>(Ggap=Iac*8Yo|{7
z1^GRPl^#w##guF(-xi)yVc`2L!&i76=Z{A==4>_oZyR$XIdUd#Wi>g$dm}Tg|EJ6a
zS5DXYrpZs)DvmNe^`4#7leqG;t$j%P<5|Cs9WRi6-Vjl*<=M>ObSNX&(}l~PuU>9e
z-;;ycikA-wY+PrycCKGR(9ZZ7r)=LAZTP;YE{1nQ_lq67xS3x&-!I=JwL#;<qi47G
zR_^&>^oz5fwRc@x^65zh68j2$FMM3vxs>}tnd$|{+qL%<-d(?0G*P@LkfYfnkJq_6
z?)3SUmCQTNshLju=Ujj0e2|T}h#5Dh*;N1kZO?y3tKAO$%9`J`$*h#)bHnc>jmnAg
z&t@o?ecXJe#+>{9L7lCquBWfm=su&=y*H3|*MWem_V1p^Fz25=e5BVv!GU8@+K-5=
ziPHPGAHMzjqP|$JOj=W<^e)cZeQY}!!hT(7lx_?V`q<~>!tCW@XZZee{VCoA1?!1x
z#Hv#Y7Qd2v<PbaIi}=k&IkmF)&VP2z6LJ3*Dq|R*_TzK+s=F4Gm%py~|Lx8qUiLQu
zw=Sf22qv98_^sWvgZc1<7aF+^BCjVN@ZC5sQ8q02*x$Q{KRi19L#pODfBN+gd++e*
z%dbCv_@bno)}}vEFB}%1$*MHZnjIEXe?V*Pp2JC;g%8>VKCBh<f5pym<ARu`^?n@=
zW*!y~>;CEdZ7*2gq&A-7pMQDJ&E8kMla6>_JG?;VizffQ+_1*(joPAn`tQC|_{RQs
z1>>wA5BmC69}6xp`naukvuwSjOR~r7Bwx0}^Uvk!gxK@k^7zX4C2W&5L*B`IjAA9v
zeJ<A9zC10f?O6W9=gZ^;pBSIHRwni=Qu};0<jsDy#Mh=DKB=yseQe8tt#+L}`}H@-
zJN<oEBJeP6ozGmC0`@}5V{wm^^jWriRJd0i*1l2vTju%QF=tA(*PV;WpLqS=2DZvX
zp7NMDr^q*~eczfjEpDv1`^vfW?Gryf;{$69?>4NJDz0Z(W3r6dd%DoiY&}*fvz=2c
z7T&JqTK>MZ@{8o#N=_#mw?qB=w`~3?%<ddM<$C+R)=$-kr8M|!KPdC31q)SO`B#1Q
zu4Vu3-k8rCo7N<jYqvj~t-1bj{?a|n39gm05xb_Q++C~E8{Oz%8`%~eGp$!Ib*rgZ
zkpbJ$*jk?G9lOoz*EH@{VR&B<<0W9&u)uHAQx!HdH>u+F`SRz_Z!h?6P@`O0`X~2H
zDZ_1{@OIHXsdLIIyLlg(r_TAhx@O}n=G^6*B99nKpV~inetTiP?xaVK!k#M^aK>fw
zd*qxuWY{**(|p<e=yN{SGnR%){nEKPb))$U_e2Nr3XWv{*e%DW-(o-ipV`*ws@3#^
zQCz}I28P>DR&&l{te>}h;ac`2<`7T*dtcS(r-d)R_jifC43GV}U$U3}8OibfKD@H=
z?AHS?ZmwArnfK_0<t@pIn9Ii3KSq50)BfS-!?s7$xF0hpvgtiJQC`ulD8Ibqcl(|d
z7y1|kKU@u6_iNUH={w5LXEMLDk2~Oh#J_&>L*8>W<|~dJn(%y8;BBwI*Y!&`oi@6D
zkfnUCTg-C_OUCVoO3zJrZru9%``_7(DZi#07W@^t{MzxNaqQ8eSuag(vuCcWIyd8-
zuh0KB!)ue~27Z69xVzQx{K<7@+p`m@Q|G5{Yvz=y=)LjIfuk{WChxZ0B9;al@^k7X
z;=eEZdowlPXof^Y9Dmcir&?{XBI|fW>es&v^Deyl*8GeNZ*?ulRlON&obTurXZ*hK
za?&@urVSef)FXaxbpHFz|L5a6*|+gLEZYsvSRTB3%!)%ky&`paYMb?g`K-MX=Ni)N
zHXbTyS2%O|MzOiXIiYF(Z2w<L--tcGci!Dq|7%4~F08M0b-y{~!;y!qZZEF}2rmoc
z)jE@3KjVYRGh@|f%=tCzud+4^?4QJa{dBLJ=@I8Mi*=t`HJ51EE6vTnaWs12w7DgY
zAvby)PB;6^H25yS8^>SeId{>uM^ZoL>#aF&`#pu*gZrB5oa=)23F>T#(F?-$a!T)*
z-S#bsxjA+3w5hymG4suW%*rNo`=43Rqa?qj#_OhugIv90{wcZsynKJn-SevVZVLTB
zZE7sP+C{DC*2)-7gS5^~KWCnL_P;#Ux?@-7<~ZZjVip-&=bIvi|KA5}W3766D(tv!
zVA=KMdC_loJPPS|jIX;^=yLg6UX`bLXl2pE%VsCpOLsLoACY@}c<~$ai?d&q+Na#h
zkhJSkJ*#y~p5J6@z4bzwi~}r(d&N%bz0uNCHe>3QE_kvbXQIunclXcznqMuD<@UX;
zH^G<TRzR==12cp2#@79H)!7j`(To$=CNec-2-~e|=+i5|C0Tvs`&qMT@sFl&k8fPl
zow5CnO?tY=Z_nfFC01;0GBaeqGRGuW^V8&$oyQC0b&rH!6Z@H5s8v5je!u*oqk28l
zi|3x)`ew1~7OQm;(k3TGqF*eT&(<1J9u?GK&=|RxWuf-9mq!d2FJM{s(O-+@+xZsZ
zP{ql0@Bh7;>?rqj&+DfPciBhFnK7h%3Sdn6RIp<DY3CaMCyM)2J_*Eso5-{3^Ykwk
zY<lITA${{M+dfX@e<;cHVY5xm<NEqd+aj8GZS(xy_@$cpwJuNXxvH&i-L8d~MWxx!
z_|S2?<LeY<^ABq`$UO_bUwC@W{N7`i8F`N0O)!#;ku(Y5?~Y^Enz7k5f!Sdhqv(N8
zoE(w{l1;*9ryjR_+?TS)BJSPO=if}@)=jVWOevhRzUZE|<BAs+>vehZ&Sh`4b&CtH
zFN=C+IwQex@sv*Q7#CS>P2uT3PAsiE^}7A`%Y-uH-7>a3>v<&)&ieN?CXCU-=u+pA
z1rN)Xihh@z9Qr*eIsL}@i`&{?eB_Pw^Wpwbl(gzYPxQZ6ai`C)2;a!ucJ2Vr&wW#+
zC+d9@_}Fpk%)_T|)|K1Nylc;+_-GbK6o1>i1zLUelg-oCRGizfvg)49HKR+--&?wG
ztM7dKdE+VRwg>w+_bz;)bM~Hqlv~8UxA$btmR)Ub{q`g!?Dpk=Y|WS2i?t`q`4sHG
zDC>D#{lwFGy{T==ZSxGKep!6}@9%qW-@f@&#I{6y_Ql70)_1y`{>?OH@}BLFET7gM
z{A~3{_=jJl8bdr+J%eA){3p*JYt8xZ{%?wo>ZI41*1rVT@f~F?lX7<s?B6t9tI8`}
z{-ooMs7#ZmhuHXnyJu~>7(R0uS8b|m@YRb`O;mjh-kDz#S@SQ`A$LiMOrzFrYr{AE
zc6GaC?)s<w)o;5~==;4&apk|n+v=Z`kC&z#E?lO3^`lyp-Tstn){XUowKuh-+g+DS
zvnZ^!U;I;XTJ$Z24@IRJ*PeYAP-@z;WlnbvAIn9R!WZhD&J#_1{5o~l{HWo1{IlDz
zI9Z^l)$b&0@C%X4U8{Co-z0E=g-`0POW_KS*4<%h;_h3zPc7>|_W0u8FNrg9qSM3o
zYR`zV`|7`}DC^KgZs()L@64`o)i?MkXf?cjy?RmKj}4yNSC|x}Y*IUUx?{0TuO8pC
zhksNreT?$_A)~&n_2AjgwPtCXZT()KvOB$nO*n3|Q*^sUhp=|3F5kxnzZm!I2wldt
zzTC^I48D|v70&TZmu4`sTFuaR(NfdR^W~q_jWflLsi!aNIz1(J<-08|+8bw?hfl7T
z-#VdqQD<*Xg!XL%p4Ag3J)XPs$m8crG-jC?O0Q;9+ho9`HpeZnrL%R};T)eno~qkt
zwT^cOKDlNff6Zk9uL3K_b2b5OhM;Al3^LpbbBt5%MBIPMdC8nOXJse(PwRbL$h}od
zL`8qznJscdclYh%_3oc5ejeUXwdJC7q=xpFfO=<LFWFG{@Jka79M7ovadon5e2A64
zY{=YwCD}^xF0aeIytH$PS6UW@Pw9G^!gsjqxsTVXbZf`kY<uP$*Rpx6w_?|IBm09b
z&&|2N=sj2#Hm$pd+i>aXiA#Fk>@j*VOW@0%5W^X#7rfqeb!xllow~y=@oaB5+T1Ml
z$TGYX^~~W~z0u}x^PfefNheSJ9OCN3yY<Y~xzjSa)MReGI3|-UW9YPYjeAVb9i8OL
z|CuQYX|~I&l2*m}3v6B%t!o&%{l3BCswAiFOODh`?OYZh;@IKtZykGlqGaMn$<wkw
zciXJvNO6oaF~8S&Jbe54-5L6mkHq?4lNPzIo0NJnl`%KIZFl|MAoJ=cTecf~vwVB?
z-+>oDoV7p>;8)|woU%CSN~2!!8kh7JjIWkN_M8lTUuN(pV?mwm@v2v==gmHQW2Z~b
zfzv8M4d(peo-<>Mlnay(7X@Xh_=#-ZaGW!nG1f0abZ(_>;LYrr8xsx{ONX)rGCZC;
zq4)5F^FKTf3H8<7_vEa<{XSkkJ==D9)uvT(n_F|I|M0o;_0_w|+N1k<+AiOWeSf<A
z?!PyT|0H*>`FmflvEx^G(G>BTX|Mb5|NZ{;!Lw&SToM=GoXK$|?fs#%NxR!R&ab@i
z`cXJ<KzPjg%`@gdtjV9t6z)+L7<cUW<aa;3tva^9RAF5FuIlK%SeHi=jRLpSpWUFn
zDpc|rr&6U-9cOaoyZ)zHs^^z(|Mc`=66gQ(i{|c=DiB_7uAZ#<S;L2GmCMXCilO^7
zHp%m^+q~*vM&i1d?GFE9zQ1aaiJu$#E#lIi4G%84ZPmQ;@xYYq$J3O)YCOu^c_Zb9
z^!a6rC%Xol-pzix{+GRZV9L?@RnAxc*9q^dFWa?leg=!3XWNSnktdd%KmR2?@~iH?
zRiXEH{rccy$Wk2mTX)$e4cn?dvxz5cbSEW?*Btr%ROu4y9&>><%?oU*Mw%;Xle~(;
zzekEO&scEQXt_vO?ITWmZf~<wOh-1QzfpVq@9N>)e5)UG?s<!B7v){Fg56o4OZ527
zRV&yRY}i<TB6J~>!PU+uvnTBJ+35E9uvX90Fy}k-0=<s9R&4(&vbWdp{LOXSu6lew
z<#)Oy{lfmb#YIA15}$06l9T-wvKx3VK9h25_Bl2F^39p=|0Uo5&=TOwP_<|^$C=qB
z+IhxRtMl5G6)Yx*%WO^lc;<KB-a8H{_m)4O=D&P;Z{+jLlt=X{uUY4q7yc7k${PLA
zJII}Hlfc*5wk`X6mp#u3pPhH-UdZ>TW!5ta_PR+I2?;#e5!U6VQ8uyN(=2K6$D9J=
z-7mkZHJ^@lW(@UZsoJ+%;2iIpFou*f;fzbpq(6E%??vy|4b0R0oeum=)v=%a^wdP5
zBR%IAs(cO>c{knjZm1D+PJKB0XYb89Jq73TwpO;Cn)u4j`;M5}irX1aohl|wiHdq)
z_GY@^=gXdN5-;taANw^gUw!kx4eBR+Z?&DR@s)^b5-*tJTOiF4)FjT3;cTwRv0rqW
z_oOLt{~u4VN&A24Ws&|_&%!rb4?FJ>J$Wm@=7QMa=}*Fp{uuCwuipD-*4vGm^*LWR
zgwN4V2%jzX(oWXw^PYz3OV{t{esVBrr?}_(R!4KO8<SryyO6!iG@x{O>cbDm^rIBl
zZ53ZDux?N1qt69Jn{qZR%ikLn^8EdkNgE!lb!nIvAs5*=HS<O6e2wf%d;OXP%Z*O2
zd8=6WD{e#Y#xt2`xYvtXo=e*P(c879vrAu;>*OxQ-+$y+Y%EBh4(b>%8yH$l-zd)^
zy1k{7a}HxY$0BQ)>D(fM-AD4)o6CLsz4zmbv_EwPSLNf&^*jG>w7>KEtp4O9Z_k!`
zs!f+IcrN;f|L@gBN9UebaCmvH^xw<Bsp<_Jku}~S${#+vu=-w|`fQo{JV*AAzU2?Z
zSI^b|cdSRhM211o>e}{IKNwtCmj5eRnz-BV6T9)_oM~yrpZ)3sL-q>@J91m8HJRo_
z+%bI4*M6V<@Wr!t<8O7Ol_Vc~aKh$6YFx$J1?(9QLmx@pi>a03&0F_<;$)dwS6^7n
zw&W<|;63p1@Ul6F1Ita;oOs76mHy$IR>qawKU1FQGCs~&$G3)=_oClpg=?%Cjoa0&
z-UKpj=HgG56;^T1O8dX=cm2EX|0-_$-E6<_?S0<7s^13xoH*}DtoNRf=4#}BjW2zn
z;G-=?D@yGDoL7wI{J$$h>PSyfy_EmyWe1D%<akux&bFz$A}VS!`FP6TCo=>U6&EEY
zyICi(cnF2@HoRKC*qQx-+X8`Qw+{HO`Lsre_0Zw_5f36~9iQAP)@1zu9*gMbdIL}E
z)hF#wZt;*8mhk$<{8naN7~|S?zFOZNzo}SuzHnJa!}@t`#+<A=o#&d21D4I3eemYh
zvjRr1Zts4#`(Iqg-kzPpNxaW0H-^1Tv9CLK;Krln2gUz<Ok8OAX-Q1ra}T+u+pF%M
zc;@lK!{~QfY5u(>H+f!NPkH7wd-74Q=O;8%>JQd`7PGf&*7UZ|JM(IFYi_av*9M)$
z>h}(I?n2=Q>aQ}jEM8j1;F$VI_%pAv#*;m<JZ^y;lWjVf1r^S${aV%h@NMY#^@Z#I
zKU}w8o>M>hy_?hAy{=B}f{*I`yYpAMDhB0UTb4iV+-0Tux1V;i6g6;e%}nFr5p_BH
z-%uoY(U$rT>3_6CS{XmSoGx}_ZsIi6H?JnESTghkr=@*9o$5a6!hH3}O?~38Sl2g5
z{`6N+pMGaKSJT#f8Lkt;n|EBvI<ThiUHsH<OU_^0{Ap_98Ob$IbHDB@sCoL}5cle*
zU2PmCN<E>kj83jm{P&NcfK7fKlY{gA57(O>EWT;yKL6HH&ZG6+(^iT(s0XaL^EpH6
z_ua`w5yrQ3S3YsyQxl=G-(rzU^HIl;srJ?z7cqy_^l;`G{^Y#8?oByUuND(CZ{?#;
zaVt`pZL6jqk!|AqAuZ^(w)yq<#}8lR<-e(wj4yw)_Ooq7>zu~Im-(gpX75?karIE;
zSDls_eI~(EYp01V%irHUxBj3`XvoU$pIT?%-R5du{L|`=P=-N7{hUYBy!fX~_#AR#
zgUth_Ex-3~|NHveuOF>z?#_!$uRURW{@{);XRPAGYtQUh*)O^ItD(smvj`*q%|7A!
zSrhc8&ir({PrLWlugLUEowpW5&4}HS8GW*b?{?U}*!eFGPO7YPI$5*l%K3>4GwKtH
zqRyUSbq@Uf>+|yLG(K*=L!C2!zdie)%0zGT!>bP-Cu|W{(w}^gb7C9M*4SCL5|+&A
z-4od!r~Xln&6_siukx$(*-MWex>cefvLb$WE?3a3=PU0TU;AymdCTK_^}1i|_>>z=
zS}m{sn)k{{G-}$!$`#AG6;@7Uz56u$XUSZZ$ol5auQgkBA8VCN;8<<7+*wB2ae~y3
zGLK|^^=Qc${Y$A)Tk@aHIjrvOVt&S{kXxZY?G?ikD}}^^nGG#oF_$){Xq{u_I?dbg
zusyIo$IS0;^)<0>{iOG8Npt@m%qg|HFVw-iZT8nHQ}#0lCiS>Howg$DmNMUMu?ng5
zXNu7)TQ%x+?6h@O#!bBzbK1K!X4PM-GTGb}Ct0@~aSr~yJH1)pbgJnW1_!_Ju-5)v
z+ct$x+oJF!VjW)t17}^*p{7tSTa{z}>kKSfC!}fL^uNBh?zPb4)}Ff;Rv6lK^ca88
zT^N}ByO_Jj*UbBi&|;ZC68dJI(WYf=pF{RV3V#n>zIKLH{j8OTO&i&!y^*+oWfJ!@
z!9EH0Z(F&Qe5R(|IHf1pnl$ahiTA3mb7pPs3kW?pK~eJSb?;iWB&*!%l_$cj_BeRQ
z>MiU&t(t#t^0B)j9X=u~ojTL9*C<@i4l`M?vFTiOaORDy0~?Z-*%*FpU8|hczN2fq
z+!kAxAZC-7SCg%7f7)EX_1L3_(KZ)TeS?-<zA;U6+Y!%eC(g9IJ?C<0mi{Jjm3w-R
zUhWs(8p(eD;C}gMyUtq8T$){Kwq*I{>i@?si0&z@c281S{OZk*x3@pW?l<4@dcX9_
zt;ZfbyS4P1-%rsqjI2k(gqW8u7HICfGSP~=d`e2(tneG>Cm-t34D;Klka2BOeT(g_
zyHlCj5<RniGT!c1)(YLj_Dk^d`h2^x>bB=b=N?r~njWOKj8QcHY1R>mUH__*Ok>3s
z+P~T18z}d}@sE&?><dPt({qoq*D`9Y%Hw_U?R&mwT2z~riPo#e^|gV4{Yx$i?eVKq
zx!fE1@8IQRso8CRPtO0O6gkUm$HhfYG&a;P)tBab7+{>taB_v!%)h^GueQxvwkN1q
zGumeM)TWiQd7p0C;x~gsFgY<;ed>-?FCuggN*SlBFDaYu{MdHY6@!V>f1IidQPwlg
zKeJ@PLnF=-ee<l{G26E+EZ?{4rsTY^X|YjHwj~EkEWY|mL6^Vc{h6iKcjnxE@mP1w
zn|Jq8RxhoeWH(Q-^fO!UF8K+nZ!hRfoN#{C(v6o`)c?)T@>5&tkZ`~&guPm0wd#{;
zpS;*V6wTt>Wb*v{x}rA?x=w;?JsOYrc}Z}_RCcZ7nObnHTv+=h%cIqv-6oqpu4@r0
zz3FSs&3lzg(dd=PQ?08K&8Kf!+S+6&&)TEixcy$i#kWGwF4Tu?zS3LyYelX5*Qe1*
zukQqzT|61H(b)Eu_JivkYa-rst=SWFz-M!7>YQ8tWkQD%+ZzL{ckKIX()9mS;=S0~
zS6`3+ezW3HqQl8V=Ti+=lXj*qco8qnR=sBRDtnnc*`=paEH<dcy?iXAll!Et&AQ0D
z`1~^40_N=<7k1q@epW8Npnj*%e7?pa#r^xu+$(RdIAmF2oV#k{p|v8>cf9iSa$m(g
zUVS08c-_mjKehJkir2oesxG<eg;wka$MBF6QOkhSlQY)~uMk}R%%#ZN#eqS8lFs&*
zGp658w|2DP5;%JM$E>%UViU4GHKc!M#JOLM4~Q@=4Ps>Onza7i8h-9MU623O|6qAq
z=Apg5qLs&g;W-zV$xj{58gzt&d4x`>ecKZ$w6SY7?+m?dG92!UB(od7U90=BK>vp0
zlbOp-S>5WZ>e%WT;8vI65XtWv>fUlFWu}8}MrozPw&tvGzw)EY8dfJr|E`NFn5+4^
z$tELWts1vS^RdN>|AJ*qoaTGpSSH0HArKIsy?0k*>_4ZA|Lf;j&%Fq4q%j&yKX{N`
zWcr5>oI2Y-PT_3eWHL6IKGBd#czfGC&dHoiCI%3m-U`kq984xApv5!7+toL6E@fdf
z1#d6e{$ML77Ymb?<@Pr_IUN~U&dD|9gUz0PdMl^s_H#!#i@2CAP0c3?sPS7GnQ`g+
zq~@iUWGEOJ8BZ7d$)Q<)G%7M*W~X4?{P=^%RrqB#t%^utJjP_VK;;Bm#2VHo0)G^4
zPi~#isy0D2;q&{?qUlkWVrE@ivDW6s;dkrO>PzLPi1KQt=sB|3i$!rqN_caHeTWv_
zFSer4;A~^|;Zkm=y0aClA8l_@GBLgyFzeA@sVO|)H8YOdWi3q7Uu|h}u>SWgC*%Fc
z?n%CHR#UGJ_;~ORml$8$r8BDzGaidE`lsrk%le<;+N#8he{}Bz9>1;i!Ri28lJc9&
z8UaD|M;bRV22XZ4V`W^^cI2XI!E#OmhS^(w$R0hkA@Y>u9A}xd1l#nQs~QHD#t99Q
z+s~>L6qc=J2|IdiSz|O4-<yN`)=H|>Pn)$rPe8VDH%nZLqT`yP3Fo4`L|h_kSubAG
zo37%hGjqMdGZm}DTutZJ+OJ($khd=@pov?(afis~{1m>WMc+aXt@?FNpkm{{-W*3^
zYbLLV(#l6+%Z!S5X07Yf)SfbPuG|L3bNjt4SL~P|{BUJjx@fe<4Z|0KtBv(<oW9DZ
zbgcfAjLL=;PuaveoP1^VwgznedNx7bN3VRrsz=u*6g9qO$YkBU^}wYyO9D)-ZGW#S
zsS*e&opvxX*X;+>^$THdIN#(Q<?+s#a@Rme?3Q_>VNub)1<%<Q{$AA*c4y6`fQ$rr
zZ3(y4JMRZqc>4ZmS$!>Z!=`)h%sF$UOK&o)@VxHZSpSTBkJ|1Ag<_pMxl8P|-zof4
z^O2Ez@O{_OYc|!N)6D)0=<&Q?{-Jor|G)D8d8RIEP+VbZbfl*C`|I`d)9n9jm_N;W
z?JT$QM}b?G1fJee>wR+LlC`zxr(NIv@a${@duDBxwcod&OW@#H7A`Kp#ru11;z6qk
zj#WH{zgWM`{$H~BPyMIDLTSB2f0py7C)Vxz@z(54{i{Fw|3^MJ_*B39<{w+T-8=UE
zefH_=_4Lp4#qUomH;)&)Uv=Qs_J6y6RF(eB`x(8XKq{hYh1>iOGfzwJx!pYJvhA~5
zay!nQOuELr=)O}G&*C=;E$5CWY?&$`pBy5WFDtzzTX&MHOIxs~{1@KePwT7KHq8nt
z|602$?De{^t#frYzF&Mbs@y=S!-oCwpSNGX3Ps0$S@J@{R()Mv_@~=V7ha}+?k}I8
z|NCoy`1Swu&feF}-=~-NYx$++Kj%NIpSOSiiNA*q)-u{p(cD!x;YyO5nd*+c?&)fs
zC%InSD_dH}^VweS{B*{o-*?UTRBqk#&$)ier|RpEO&qqkoxe0C+4+^*lb)l&#@;zK
zEN#B*&6|&PZRnR$6x*Rx+_fS7l%~>J+up@Xj$7Q>x2o^^3Eo@EAFKG+dUV@Nnr7<C
zJo)^$`-cx!D<7+t^*B8FRjHfgypWXN(^(s?mCafGa^<<JpH8j3b?fA<TPJ6&sXsmC
zoZ3#e>GSK0x;6X)z8`!Uupz5);?+M>N{>pVT4_%|@*%JPv8h&;T;o;qkn63wMcM8R
zA6njpJ-8>ZYlh3W4U2WFEJK1i4;?>rzQuv1?p{Ds=W4dlB^@q1_U}m3kUwa+G_6IT
zzI!{j;qElA&U?lW{-?QrnY8_||7zvSxA_bY%@tnl?kE|4qh7YG>dFm`H|$1No@T}d
z&RM9qqVk5q@5wKjSfki(^@;5LZ)q5E!wP}c-2A#M|7-O1{kea4Pjblrajn}%CnMs+
zh6#y*ZLNIWRywyfY?#ifY2qR+IbmUO{=I}o51}~DkRz3@Zf?)_UuWANb64-t?cMy`
zOy{Os9M-F!(v=oHRX{(xJ;~17!N~8^Dvt*ZT)tXXvRhQ+R3%E5998P9i&wc_Ds=Q&
zv#8s`N323up4hJB@+z_mT6kf}sf{nDt)7&$YPDBq!ep(l32UNGKRJH%`e$jcNHv#W
zLB)kLt4-Fr<sWok@H0<J>50KAekrG{hgs`aC@y;OSzh(YmU<rlG&jA%!<uvAW9^@D
z{$=bw*uM9OZC_f}UjrjW8S^PR1#ylcj-fqgo*oS_vz?TZc`HW$Y<s1FM2oqm6z6ow
zWoO=gE$mqMTxs|5i7eYczkVnoqCBC!Ux5862g{<!K9R&yCk2h>$<Jp`Q|kT|A%0Y`
zsVnfzm--7lv&C~$FZ9$q7>B&l=1N&BseiuK&n}~FuUducQGrF4S(pCR%0HW^B&%Jp
z;rV0bg`u}f9<G_aLY`|)l9i9hLQ~~y-AZj!!g<qIIM&>lcY2k=gIBJT`=|Abu^5Ei
zeI@xT@c4?EM>pSYID6{;dBuz!FO~}wZPBc_;xXr*$QE1Q#(5SFZ<cE;j;>#$`)YaB
zn&vA_OIqic_RSFXaeBJ6sygH7wl9WR)9N=ZTk$5Vt76JBhaGqKe?7d)Gu=`nWrd>o
zkA@5VzB{KMUenW2pkg-p?GD*q`&&1a<kDK(&t&j#oUusdYT=QVptT&m)^{sw+BPQ&
z-nh~4eO>%!@bM3Q^3(TSSY7GA`ut1QZS_VaPfSd1rcCa;%et4*W{ZZ^tu0<DJnGt8
zk1g*_e>92v=?+DW#W&m~`Cf~f{9aMPk=Vwc@~uAhZ&CT?j$M}dRf*LM(x>a(xZi)=
z^Xli-|8o=$i)Pg>I#{>;&jyR#KX+Kf&$~Y(_T3KA=g*Hk=Y6&KW2JnlXPnWsiB~ip
z9f+%3Sf6cMv_O;3uXxgy<FjwQym#dAo37VO{6eDhx6Hiw-0aDsBO2!q+SPdTo#}gT
z$6v?7Jilbp*}6K`^NO#UQ}i~ZWVG&BAhY_s%-wJMQzYi|%LxlN8c*S{JFQ>s-P*hM
zy5T-Cm8BC6<&@Sn@7!qa`FqhXw>|0VyVrlKu`;&#80av${(Y!Z#~Z0l7e4d+-1wx$
z-EA`SBI`fj`GQpr9@>3pTFtK8ryguG>Y0;zqRohBv-hl`Z#o$pSZ{FropZpCW#jgp
zst1>PulC;(IzM0Ua?9gY?+P~+J?pAtG2q%|{q69~Z!A6A-~XR>>uHI_tp0>swtUXJ
zZJCZfFP$E#?viwiyM?jSJKBDA4+FD?rZ0!e;;Y{dPpej0vSFg&sh_7eC7;~w>a;NZ
z$SvMS%g?|3E+lWY;=Z?!=bshHrzZdE-LP43?lKM85`Ugcf8KQbw!d>xak}A6E)gaJ
z^X<;(IZb$&%*`Q<r=HuKs+^3F-MHJ2KH(JOVK%UY9y@+~3a8d~nU9?HoXiH679jN^
zj7HN7SF&qPpZAoVqyBaHhYjqj)S5o3oUru?o#d-Fv&;Nu=kl^uMk_^JFPdE!S*g16
z$iMHmd)YJt7tP7ICeD0h@x}PXzhAeVX`bD{zW+>I%vrs-)fNJCRBZ$gUM)=!y&T07
zRwU*v8nd>^e_`sZv*Mk;hwAt3uld*i)5+EB&XVGzht+gX?^!Z&edT4b`cl*Q6E4!S
z$BG5Jem-9vpT2%w+W)zn78BW%EF4_U%uqRTZL|OU$_-6B<C)Ke2(jP4bE<Sf@?n>r
z-=`iteiLu}ZtJ_-$}<Cn45e+gf{wl0Ep90!_)=lhtfNtOYEA4x8zPRl3-O58`yNqT
z=U(`Tb7E5Antk<7SLQ!>ck`A)nkP#=(}P*bXV>&O-kkAqM&8foKM#2br)g*XfA;Pd
zcg&;N->0wF`}DhHujc1(Ni(;(veoZ?^KFsts@X>WgY*-x*6+&+de7@#esA`(oTL2<
zq)!U1oX=8~GIK&wOKq&V<=1zS<@e{Z6>XDpci6(vdS)_%p`h?Y6@{iN)30b`nV4Cb
zEdN+PXYE-*IaP`07bics*yj0eWxH@wr<-%J(D|FUWF9j9dwk1|Q*P<ZE3-bFxcK*t
zxzw!573Z!!<KXvKxbRs0pt9)XjfysD=MS^hf37%^X_KB^+;LpRP}twO(aA`4u^@lW
zr)6JkpO_?=FW9QDANOasr@6s#v#0$Vj@-18YwT%Uw5Gm7Xv%^~U5_p<{h1~>SFP={
zsl}lLWwq8n{|!`pq?x}x@%fzM!o&U2`jd(Dob`tUJ2*5>u25%8+$cNoU_;_ZiH^;o
z7EFl^?LvQ56c){R>CzK)uD{~)O(~hF6&g+I&*n&-Unmglx~|bgQD}Z<oVa=PseghZ
zdmg?2?7Al9N7pI2dZ~5mH*QVznt$5p?7L|J?~Wzfw%dO<*)#L-q-FauFPZW_iN9Pl
zyDUKaV!2n)v{c^e+!=R!muCNZGfPRgy7OJnqE}H;8d_UE9?f3-JuowG!6zSv9n37O
zcbKNLcGo2-iWuKw7Z5A2O*N12DA={@uw?kd-qX9Co4t4pH9G!WJhQXjA%6cMVP#I1
z5Q$?RF?(Kw>u*U}rhibUc?;8V&VohdM~nE5<v-|DJoJolp14@Iafa)TQ_DpjD1;u~
z8ZGo~;hD=~dA`yUCdEJJE!|ypDo?D-QbVjPP1>jV1wYsQO%Z09&BFY<KYcHJtZ|~u
zi~rcpvU872f)b-9rv2QzUt83>qyF>9&`R-;2D$m+H|||~k$V5d;?*l-mxoq87GHMb
z#Kg%v|6Vt__d6wat4UzR!4GSk-~LLM)wyeBU$Dbr;a_img*j_q6y~nWn{5-jHCXL}
z;N_wZXSPK7o)qTvF1e%sYsUJ^XLWC8eL7_taaB!udh_hiMh5!}f|aw{zQ#luWFJz>
ztZ#p=^K0fk+w|n8^EMZ?OS}Dg{zm!Uv(;_SUo7~z@MS_uh2Z0MW7{o%7hX6UWbdvs
z>38dCJ>69`uJP}R0<Cm2_xxUyx#jG`o-6X^0+V>>R^Pe&;m5kd;EngDJ;|?mlNlTJ
z^y@ZV`DY0X6`x<<Xba!IVtOCn$Ac&M=5Kr0Wuu#)S-)<T^{Xwn&!)Lg@^xRmyyWV|
z#&re;F5J1V_TD^iHTzYgPT|?M6st{loL>aLn}6qn*>^)HpSktA3`V_MD%;WzYdw_B
z@`+XOIhgJJzD`_l-ln)~uYCip&ek7Dp5wc8+FoN1--+q$pC6rg$1WNXx#bEI@51Z{
zHTGA(Ub<F!+lo!0zEan4$L-kC2UeNS#1}~}a|&?eIc6=l|IdfANpD3J0{<@ZpZCVl
z+uYnP_W!rjJlwvvUMvQmX8Le9Y98Kxm7^j&<@ThQH#46*@oGBWxX7w>E%V)jz(2No
zd6!7v)YqC2dcE>$W%=w0S;^v3b<S^{H&`jgIbY|id~$P%L)yZ5pS0`m+3ufnCCEs2
z_4}@y?7u&qO}W>YboN#4rPz#A|44x?;ujmfZaOh**V^^gw?02R?ENZ7A#3?Lp*e>`
zzwXYzyxwx{a*p$#v!>tukZ7kichB2TqE@UnQtO{><cXc4K9A$#i#xw9c;s3*dvv<H
zj&VJalX3ih?)~SS+e^LA%+WaT@VH-nwYT52-}xT*1-@<(++^)pt}S;Va{j~jGix|P
zZfv->?eM2pd0lS%Men{%ITq5R{Z&?<HGEp9?TPHi@|hb8m@EYp&bZ9$iA!D^vip8Y
zCijj<|1Q?pZ@4dd^;@0Srj|?LN7&DqPixsP!RPp;I@ITMqf`uUQC9eIU(UlRxn(tz
z)9PQaD%JcKjF$XosCxUtd(C87{+tePHfgK-fd$3vl00t5_BAU{nOxWvGu`f6(Wco=
zGudC2YkW#HzT)xtR!|qmJ?+C&*I%}-@#f%uT4uP^B23PwcQ2>&fr5S9cRmVonQ2t7
zs>z+5^Gc?|tJv_!>s1*FEE<>X5*V5;OM3{vEPY<@^<0JVTK0Bc+r&9qncIU;m2Rrq
zE625)Svi4m&*p>6PSpK+$&z?d*0yeT@L7iG#n&JGmp8ep<f3v-_36fioA%1=2~caY
z(D^uzH;lDoZ5hkHTS-z!DvNk#+*9u6{L6Z$)2!J%{Hs;0VMpAw#jWqvR|j|7&p9FZ
zv(N8Ny5gUAk@XznmSSD9+>v`GXij}_O*pse=Z3|rev7kAd3sE4#<J@>)-Io7Dmdj*
zk-O!Dd5b^jPMUKuq{3nLG~HY0XY4!D^r`8FsG7BXXh`n#MHe&M-+y_+d6#)po1n_;
zMAaC@bstz2yp9O*r{B`~diCH@4OWXYatD4~eUhU$dGG05{irkFB*S|9&+`0IxO;iZ
z?1}~d9y96*9n9IZ`EKiWhU|;xdFrvw1}odF4%+VdFyrNmX&(w6esn2W{NvvSPp+1_
zDK3iz<m>nyPEB~cD@*^^@$=vJ)s~w6mfxheb^&OBMr8V&U!0=MrWUZ1r6P-OTL{&C
zUmtKb(Dkj0LE*#)SI&jq?3`rrIy*Ua(oL16i(GF#Yf%!Nv}tbr{<{_$Cl@^meIm}t
za=>kVeEH@l-`7>wy}x?zVMhLc)o|NalTY+#<d<BXJm-VKtJX8>T_5jhysZ5q@|xcw
zc}_KZt>4}!W_oIwOxcbvV$XJaPM%utIw#$C+O@yu7n@ffzIgAtEtmNZ+gn0Q7$+LN
z@?BOfZ~uEQ%eQ-9Y7Qx1-F;box$Q!gg<SVfSBqEwzxi2rdS1+hB?k<6GxR%{gxKyc
zJvpVW%p^SX!vgV^CXIvp+z-Du^b!fpR#6GJcYCxj<^FV$^&A#~UG{aZ57u2+#(Q|4
zQeeFR#}=K|T0xfs>y-8xO{*;|F|yffVP(yl93)t|$)00pz`gT-8&fW6Kf8Q-i_zy#
zT<#C=9t#zVe|C3SnEkOgyY@_)*wHDk^l-<G#+JuU0T<@gNUc515Hn43tGrxayL{W<
zMh?e?_J56-WrOw2tL7aIo%1}?&d#PL{;2T{<;{PV*PlIgZ`ScrLrc|t@;1FQoP?fz
z4m&fsng8+O$D5!3my4JATb^O#kt3Ft?RTw}@xdq89h0BGaX3`?&|M(;Rc6R3i$t$&
zTDH~ZR`upm{r{}C|FW^JNsf8`=R(in!)K-L&Dv;sGi3?K)7=^s>|A~9qC!%amS0@&
z-?)VJ2!CC@fWxEu&vrjAncuo&!||P^J+t27p=kS@QsHplu$bA&n~k(*^_ty`n^9WZ
z!k9SaZORl`4+}jej=G;FkzQ?rg4bU5pTEa{zmNa?y}A2d@XwHUy=UJujh)evyG60Q
ziv5MjWY<|nuS2tZKCZXFvwHU1jawyN&zjJ*!NaCkjmecoEPX{+dHwU}{2?0)LNeP9
z@GP8qxx@CxlNH~Sv(*0oIXq{|`8#aU_ZW7)Wiwa5>$W3ua`fuN*vU+<-1kNEr7<cu
zPC4M`p|ag_$JF=;eoZ0eYkzNOeNx-!n=2bK>*J<5;wPUSO0SN)e)K8Nsiz6c9qu)@
zJZ6gRZ}We=FJ@8$*W!{`K8KH=>z^OoSQ`II`H|6#zd2X#-&vwJW&LTb?7U^qHhQkk
z3_Ie>wR95itKGA=+{o!!n;H?$%;U6b`A1u|FFW2;N0q$|ue4#@xQ|EgboJ&*_m2Iv
zId*JST+y-KO?hWu%vz(ww5NB`@`+Q6nAYCxS~FeqhS&LJg-o0B#L}w$uC)esc{rAL
z)-Q_nu+VdAkUlz3rAvWvf<eyiZQY+AH}5~D-?si9U#{Q@v)9GhX4j;1mmJ*h|2T2^
z+SG;G_r;>JCWy6cl6;$5W_$dJ&&S_R9yi`I@c6Xc`(QWkT+#N%yUXXDd1S}ES8Luf
z-m+y?ZzrE`wbk5X-N19@=s$1GY5M6Gmbz;({JU0FFI;ii_-|+3d&bKFhMNO+e&4ic
zvIVQCclopFmp3!cd&S$L-zgNB&mgFnxJBVd(w|>%Qg+P0_xNnonX3Or>o#-#F`GR5
zuT);++}Ad;)2G+>$9ms5DtCAj@2!|>(~Efz_9@%^*<oC;oc+Qw&NRoLs&!X1f8Y78
zRm`l?A9}N)*!zEdZJ3Jcy#1@s-n`1q^5RDR*AHug=LZNm6sPuQY!Q#yR(7@M)l_eX
z-*&-qt@EdTIi;faM(jt&r#G{orV6LC*7X}jZ}@z6p8oR9I@d!j?B>mDd{!u>W69aE
z?T8F}weAo5lWL)n)5CiW)xsy7RN9tx#(r~^9P@FTo;}a^|7{aqnq6=7EI598w5(Nt
zpv&b$Da<QbjyQ&z2PAzw!T!%t{OKKm+2>v#yKtT>L;KSmo#U~8g5QX`zJ8+q+<mT{
zaz~VlQ`<jt-)^_%(#4bYw5(q+^SCHREB*gddYzTQrfa)haF({zp^W!>dy~1vau<KU
z{``F7B8~%vYVo@&1TILkBt7h^FR=KuE-LQ9*((Y>Qk*#o2iVwGd{;SnhW%_FYjEtv
zb%m=m7a2R`UH-?=FMihM<f(HC3#R<oqH26OW@`QN$;-^vOP%*$+mZI$%==4tc!Xok
z11G&JJGtDaw6ZANp7{T3p^a3Xg@vWPoYJe9KfgMQ694?N7HYV}^88(w%Ib#7#j*80
zb`J_4I<G#%$trMVU&NFE{t3K&TB;KRUyDU7EKk;tmAUlgSY?@~U%-sKU5a&qnOon>
zFjUChT~eC0Oxw(`PD4q^>CQTh^<Krz{&t^Fox7v3KxX<{T|YgCYacJZ{LK3)=+}xp
zc9C3;zVCj#n6O!|$&tZwr>Kc;-sV+02G@8G*KZd~$X(pyebzU}oL6D_v&5jK0afbH
z6laFBg?z27R?=S6AE<gD%guY+y{j9ZK5*5Td$#b3{^KWp%S9hNU1!Ga8D<_@W*J|(
zTwCs;k=|3~26x3)_lH6clnzeZy~j`bPe}0kk72i&`40;lSZ>Q?lVA1awasdojYYGh
zYz^dBCH$;s*tTq`U#w@F>FFb)KV*cm%2M4H3(r^+!7ZNG>pEv^!O4e_?P)XQCtcu|
z_h;Q>yO}}uoWg`RTf=_MJh?OU-&vjJYaP0b58}L(I5)kLV*ceXe<1w;^P^vO4a$cU
z<TS7RXTNa$>qDlyx39+f{B&UXQ6zih#WJtbb^Rs&8B-SAzgnOD`BvJG6IP2ql$tIS
zyUMcW&a%+8wVdZ?o|8-8Hp%0y+oXHTb_$y|E>UbcpuOM*%SvC3Q&YFFZj@!yopzRu
zVX64slN?O5UHM-v3XM_>tdm}O{&Z2=;ZFA;^Wf7Tx4e|%dnz97RoTSmt+A;{Hsp2F
zR?`DNk9PO&aSm2*TFMk0Twhy1`Dx~IuLG}@e%5EGC^>Feu`1j7+7iJM!<sB@VO|>(
zmYznD#oJ4C(^XBvj&trhCL6VHiz0_rvSK{%L7{Wu1@a}Ux%-c|&-}LLlhiEk-MO*d
ztXG<iK5@TO*50vH+r#$q^~Xo9O}ALPkZZ?AhOGDoCpj16Vh{gg_Fp^mpRv`Snf_Jf
z+*u_x)d~DuWuH^CdT+~2RB4$dv9<ZquhmJfgd8vVsxp1=l;1k<_LS6nl3fy~P2QaQ
z)b;Y#)#YMd4>w)ak_*4J<1o94ao_61v}<NlpYVLzt$+2gg<5F!i^Xr7Hngr?m#hE#
z+f}(7&yAN951vXd{=dg#!@?t(Ic=FS&i(Z}<DWN(tz&Trn0j#4GT9p{H@{A?2;R`4
z@q6jVzrAhZD{hvGnP#y1|G4_Rn^9ryrRtbInR`qpvRj&)Ba_{~+sxIyw`x|z@?xEJ
z-kbj~U2mA1=70P2a>-v4?b3^CGK34%^;hnFt#|sf-uI}igARHo6-m#2SxHQfWxT_Z
zaA~*3+xm&e`os>ZU#*#RbZ6w2GnrmL&g%PaGV>|8YVv#Q-XjGu*E4g&OVXZZre?`R
zIDA=G|DK;ovY~hL`p+eiGTbWyBE@^pos^QY5MB3nQH`RO-I>=Wipx4{R_->r9uSZi
zc|3S?<<ki7jbAU^Nab65)NWpR>cPW@@0-jxtNWL8Lx`WX`r^nREuX~7KE8hVLyj>u
zn4QaYM@-19cm6Wx!;%j79=>?*KZC+XW?x9tF+h?{gxSc#405pC)X2!<J7z+4*VoV3
zUZ5rBBVhCOnRD5kuKwO9XY(xe^j(wE0-hN@Q;hui^>#0tLy^zTlg%zNybCTKZ+|CO
zzxn=;+0)bg*PoZ$FYvPMx6WtdeLL^v3LQK&A%D_=^h^b_>rbCGPv0;h_xxs+&-eD!
z{(bWETg;Kp@-y2Hec!cbRf=o9^7c)yLvQDtZ`SE?(!X2epJN~QzpAXV_S@5*!=3-y
zb~9I;S)_4W<m=7${(s9_cE+3A2}kbQd3nlLH6P_;!7<^v>(2cveRh85v+S7TnLaZ8
zds*g9Iw8%sORze5@xGoigZsgY@6HY2oqI}K%KDIP(E8A`7cL)|E5*nC>BQ=%1sV0G
zv7O?zf0VeM$FK&j(0?Kv991DMK7D%y%XhoIhtKNkeJlFGBJ=m9yWO9{TN#zMa;iGK
zt#>)52&yjpp5<`sY~=}Nu>)_<?@S1sA=t~b?y$z^PpjDZ4&S&g?zLyz`>VdHnMDS{
z8tX*=?VNA)e@bnN_)Ys&pQ?4z1-btmS$CEFV0~lt%@ca^DzdXLF9_w`7OFYh@$bv-
zfU<(KCLMdjc?0i1aV}I?b&Dg`PKlFcUxMQ-9o2*!Q;*>F=e9f4`OjUnHrry;g`5Ws
zVd^^Ht2Di(PR%YdoIdHSg5a$lwT1l?wK6VU*s9K*ziQ8q8t0JcAK#~Ln;4&J$hR|$
zb<)Jrn^P<5wd*VAF5c%nz4>h8{Ix5!xgyk<v_CEPx8Ga!`Q2aBKlN?De!czs`Luud
z^y%lrd37G>oL1T`wtjyazvSsdPj<7%*jMh{WnZzoV~*y+hYcGJcCvh5mtv@pqYxzE
zQc~S4x_`gT?V1ZNhTJ@ii43`iBwxlCoMYNyrNF;HY;NJ&xhD0`GVaK3V_GlwyYX1w
zmcJ5BGFOY*FR2Q8FS_=C;qsHW1{WG5Zrxh*l2g8+Tq?lVQY^#HqcZsn@9pNNhqW#+
zr6n+KcCQy}EU(m-o)z%yg-~g&-S)N)z3|m;Uz@cA+8TUHRh)Z6_FeBk+L%_9t#L8v
zHpBGB;3v29xY;;8*!~sOZ(X)mC8h4n+(HXQ)u<g$l{1zpsLSlXon?JJM`mln-PXok
z(z@MS=j~qZcbU(m{zU%SeQZfPuQwl@JgJiHeZVZey^CbqA6sN_9-COc*SA%@+Ud=K
zTy+Pf-?ly3e^pjYu89!!kukRKdh6T&oZnOBjKq1Jn{!ub-6~&yr*T!7sAqlGGOL^Y
zqK0Z8{v0b(T6s~t()H7#eH(eX3uGRc^h__`FX@=W@Gs%Il*G;tWtK5QjmCb;pBU!+
zH+nWzs^>r<gRk^{=D?0l>%DVbz304)W{?T>HhwO{Zawu)^&%~I<0XxC`#$UGvsq8!
zzx;&jP_ONWNJX#ond%RDJGfN^!&~3iSHJyek(goLbM4>6ZSo&{Z_b|j<I_W~+|a7k
z>yNJrT~Z^#KL5huTaTB9-OULxy`ui-*jZ1*B_1;jx)>$f8@%^#IrmESj7`+;>5dGI
z=f#Zjt3GX8o0qyXtz9!+u>9Z8HM#QJj<9$Hr*E9B@`0t{hE%Iydz8LKijGK>+vLLz
zFD&XeGrp1FK00;U?^cC`q|AjjLOs8e8iRg`iY8jjOy#g}JixPfNm7lKNK4ly%?WQW
zxTGd#oP8p#-diKKYx%3YS3k3-GT)P75zY&(Ub}`b?$#{7OUszludY38BEfn%uyx6D
z$#ladN7sKmzgN=km8tH8t9!p*nsM}`r$Sr)-JE*Ci29pNUs>#GJp(RC^nYP3efgW^
z^mp-qgl}H|x0F2>F}M`yvd{9tw21JEm2vGkRXa>;?#NE5Gi+gvo6{WT&U3r`l!5i#
zR_PaPvrfjJoqeWRAR^M{q<@16le5(X3$|C&HtAcHUNL0gnbB@8)Fzs7!@&CEsd;Ww
zelD_{9eS(q`RcOz+|Y^TtJ3oQ%+9Oqi<sE?spHBm(~_cF`Onr|XkPF!;$ZfkXZKHY
zbNqcZDZ*4Iqh)6AyD09@8v8d+lRdJi?bwe8%C8P~R_3$BGTb(Boy*V9<{dX<-Z4-4
znW<IFy2L9Ik9+8(<;|<Vck7173<Zz<>Bqf9zlk=cf4lf+;k6He&jsqIW(1xW+x0W(
z>(Lv*O&xz_GewRqIVfXo%(p72e&^gfeCi)rdhX0~aSu~|Ch{O?=K8}z3XyGR3LhQ1
zbU(znF1C1;LepMn?{5{Q>K!X|4*qsqn}0acVrjGeooA(S0-y8OzxX|WtFPkm9_Q~2
zC!U3s<_0&*zgnQ-&3kWIlauCMt9l_RlU63-*O@x@av$IRm3HE0ns7^{&tBn+s{QNh
zKbq$%RQ68enzhk0ZAr3Z4{PiL^Cy3w&zr^S>MgQOeV(ELV@3L$?aLnUZSZ?~IV}54
z`-+n9yY_{-UjO#?oWZC3)<BNj4{x5&51%Y)pJr1~)#BaL7RV$Lv2xZ)YYk`4;Ay|=
zFFvX~;&Mf?zP`Yr(4DDu4om!*3Dxgq_!I<8oB38wxHK)f;BSSAD0ll>gH^(uKh7QS
zd9g(){3^@y%RbDK8+0V^Rz*rMiE|5|V7}y9HT8x<<aXYG$Aa7<QQ8a#y-!aHsoBmT
zvP4H{r8a}^w~oWS%W7|ydwcwIYuK~-LfC|ewtAU^|EG6<OL`oVvUzTyM3L$=h0|NY
z)y;QbKKpFx%E=LW2@4tGSgm;fCnilavM=7&c|Im#GfU2$Cwuv-gbOG6u?3%Ukd0mD
zapZfGhTP5@FBHpIcI3^n6>xm`tz1Aw;$BLhA<H(c*2-^3ToYbr&B_lq*cdpOp<L+X
z_NUsp*M7XKzY`pN@7dKE!7}=1n)RnunksLOzIf&ki}L)<DkuN#WUS3Ty1|)g(=Yb0
zKaY*lCj2@O_e7?5kMS(`xQ*W1gXiWQeq-a+{qnD9#A=m5x6c}{m`-QxYfs(gH{HeM
zi$c_=9@dG>zyIyi<ZHO|b_dtDz++DLZ+07d-1(nZ#&67GDY>LxyYG<EtwUDHQl6(C
zMa)_9r}v!TVTtWIE2b)!B^|!OaZ-^(I9JsoanaY><;7upk1@%Y1&B-tk`wq-a_<-W
z)yD~4DjmAhV*`H(I|#MB{P>8W_aLi`(%D5Tzj4S;w@Y@PIyEKxA-C$gx`gC{9IMDS
zyXBA8$=fV3J|lc&%J)AG>Gg&J{;7v6J)`HR7BSoKB?l~Bt$ic7_ivNbZox<KJvVfs
zk33(JAalO=c=3k!5|8HmOulh>q13)hN5aCTE8TnRbhs|blx(qUSaHs~^Ho#n`Z5y}
z37bo-QLE#1-cFjAP?4#)BRW}o=j7G}WyX7>^>v-|wqKbd_QB%j)m4r@QK3ufpJ~nf
z<~eEd<3xsg-!27YzVCS(yHxQ+xs|K=?>n=n+5VWQEoI(!Y>l<+>mwnnHY^Q|Jojzw
z^&jP&m-a1v?;BThY?`J<z^<#aTVB`ahW>Lod$V6%qV<<Rt5cVMfJm!x!hxF8%QDrL
zXGbYnm1-2vdwL|az)<$eJeTJ;zPvy3>iYWnX{p}d8zz?UEiriiN8CD?fotxg3*W4M
zA2GFh(c;(@zi{J<>+Annu}pL{3ay+M^Y{DN&GB{hzn{JR-Ognj`K;gv-}z<DUOP`~
z8lTycy+)?>Q_E&QE#dD)qWl$SjLt2;KkGzl=7%i@_6bEgOcFlw^1jAGrY-*VdS~nT
z1n-D^d~mz|$<~;^x=O-2#r7Shx(<xhf8U8tj_~`X70xQLSw-ygd<!x4P&Ii|MmF=M
z4)e}Bt@!Xne4RmA{@vcJuwc6$);R_%1N`GS*Lys8sg=~U|H;eA1{W8WD0V3do)P1)
zjI=rC6cx8=i{xPg?fYv!&T`uF{FKwzz|!Q;4tv=DL|6rjIz;|f)kp|Dl>S@Mesz@C
z8UHyKe2-mTU${1T*X3DfL-bY_PrlUSyYrpDjGpGAH^)!foJd+VBTh$XYUGw5_0rG&
z8iCu?j7H$~bj(J^rjS<k+KA}l+h$^Q-`77lY<FR^V3RcGCgaKzX}9yN&hD}<OfOsZ
zwj_ab+Kz=DtxKN#xc{D!kD<#X_j+c$3&-^4=Hj2{*e|5azVPICcYRF!o_~HKoQsz%
zQT1MzKiNlM;VG9wFD|`FuYEsxN1Zr5^+8O>m$yq3UOrngd+SYy_;r_VCvUEoTea<C
zscFcv{eRy6YVXcpuWuJ`aHCO8hbzVM<R+uY_xg1|d)1^Rek(3?nc`aXJnfxuWJ-%@
zS?t`JJwMK~evRteB%yJtXxbB3zlfh(4B~eDcf1kOabmK~^cL|ynvy0Ddqmb$C@2XZ
zz23>;UiId8!08?#)p@s_gl4wt&ha;{tbZ5GW_4l@ORe#uj6T1+@~ht6h*@W}>{4j)
zfwupD-rf(FzxVI+_xjk{AK$+EUfq*->$Ir%_bO+*KVRm}&_8zm+T44SAD-Uu<m;o?
zSK<rIPMm0|=-fP)_lC;4#U?+V3ACSME4RKZx%$tYq&+G@UK5@#lPx$ElE9dkn&@^l
zeqF`MOZAEA8!pOxH@^_H^5urbdyl?<C}g$!TJKul`_lV^%x9~*&S<eoNxkyq&ZFX9
zh09)1XF@O4#n+zf773euu%zxqxK_$r(S57i?!Mu%^*MGe_qEvjuMbjp+4zUW6a+aj
zt(l=P^NZWp$&7MFeTQ7w4qe-It*~LK`UR$hW(SqPdHePst-n`oz1a5A{JC~Nk4o9!
zThVH|%Gy3%czGb>wnqmUUZ<{4jhu7wSL}1UgUnynzge-#J)<Db^hf^t^CfrkeC;hX
zTJ}44-~YO<G-})5qMSg_5V?{JvF2>mnMysUSEk-&3tDEk=|lg|nk%Mei8TjxDjin{
z6|YWt9xU=uiS68dN2>+(Hqn>3S1~QuI`e00+Lqisa@D-kUTlzUu3Xg_wB*c9<9`#i
zel1_G$W(Qs)p5p&re*KfGB0V^yXN@2ziFlWQ^a|;y}ej@Tq=Ee`%#|LmVs|F%Qy4{
z$i+TO76|>gvA7_5`#b(=&SwNBPF2yr(j-6i)5(Qhno&3S#Alv*xKT9vdg$i*qZ56v
zN`@Cy&$ddK{66MX%b6z0XWjSYvyvBY*EqjP@JQyI!h+bhzPaCSyq{EmFp-IiJyei=
z_R<@T%br|J&ClUVSsB42=jJ81@J$QfDw7o#7snaqEVFKCK6TN##`7YN)(K|Qbjeii
z!nVE>OzU==@Lrqx<;<@27xucXFW+|5Exi6gd^_WYq}#ua+WmjH+qC!PmxKbRckB<B
zn11__yE=_y_l@S=3%4D-DP@23)b3MjEt=J2?ll*MGSAz#&~3S)S<{58`HJsUBevQ!
zFEr1(nC`IU(~G-%KhHdCeenDy-vx(~?>BfT$cTkyH#bjcJe$PE<@Uo;X`iNe=)-p<
zbz%oKgX=%-dUQujCGm6L38wV8-8#&xex3WpuJtjI^~p2kZ;qCC61Q{j^*ExIqE^5j
z$y9%8p0d)+il$Pp1wA1vmvai<aAr!XKIP%HTKG?$eWt%_y70wq@kOpvQXC`FC*9t;
z<#Y6bIl5C@8mFfm^z>WacII+c@|yjhbsQ939<o{MELqrHudW&6BylpL`QFxp?A&=_
zJw2v}cC&x`@G16IBbVOw2m2Rq*tXdGfQCTn^V!A?`C-Qt>T;43);#~R@+Euq*^j?N
zdEb>6Ol3D)<?B$<uAMZi_QbLrrW~z=NT!T5;{^BoGs}**6qI@!==iR?`a^EbszXH!
z>{R;SJBFo2AN=tvM6q5+faf8rxc!4?H^W^XIXOK!up{K-q@D_+7kfe!7byK+P@V1F
z>`~nkzu8SBRB5jA;??C!vC-Fa3cPsS3Qn`+vn-7K@<l4(%8yu|a;`f?$JR3XN2u7<
ztv@G|)vNfZytp^HzsKj}L=jz$oY&?q(;k}`#N1r8x8305Ba=39Z5`G6Syy$>KaCY=
z+HqppTlubV-XBU6+uQ6H&gICCS#xLSs#Nxkhi-1%*%as1egC}s<-5t7cO7LdWG=q+
zHIP4$x!iw4{G9D;{f_nj(26o;=6m}mG%0Lv$z9348(Y<;E1r|(KHsW8e;N05q0Jko
zwLGfa>s&IS@yneM>H7<%^|LR_<!9A5zYTn?aiG6tLc=nC&M87Y;!Bi1pGoc5^3(8{
zSm{D1ZWsMkaxzEz?S!@|M0T<#a&uQTGj6=6+m`2Nq!5z6@br$=*UOe(Kd@YM#gi0G
z_0wk~n8jE9V)W$eu~umLcaCAPq52DcA$FO9k6RiJ&EY;&`Avpvy^E&8gYK1zs}CA!
z)ql9Mx?zSK^Y!EBoU(17s_bpQ?BARGq@4GkY^ONqy{2xvJMqUqscG`Y-9D5mX<hTD
zYg5Vb?Xk&oXYbwOus3C5Ctq&#_wKF7ie{dum{6L;b7%3NVv`O3P4n*Wu6xsEng4$W
zH?xn#A;o1=h20)Svqy+s=y@8<y`A@#0smI^tev~-Q)Jy{O@D0mLAKJ!ue6i>@9}$y
z`dge>&pZ<~IL`IsY*NpS<4#hm|MyRC^;$2V$~Cj;K;M!>_lu{!+W*y4r7wK$RIX!{
zQyK!CmIv5d_8m_ZUv~3K8-G?U`;mQj`%CLB->mt#L}c@h=01Z9TbgqV>TjC7E~{S=
zGj;OAPYLc9zh9~sQ|OM^w$=U{^R_=y`ZrErt`#Wk?-ffaNo*|sqjsu9AYr!ghR?1i
zZ6$9lW=eY}&~G4?a_in7{za^}OG`6nb}I+kJy<yD*6&)k%lyA4zcv10aP@K5?vG8s
zITJk;4y}IhPSdaGWJ8V{`@aa&<NDp-IXUM|UOZpi<*AB%<)QPwTkCb$CuO!gt!SUy
zSk75~L-5ZRss6&$^@>hQ{?|US?f<l5fw|_o&+GZr6CT;EXfQtDx@Sh}*YkVtRV_Jk
zrT4<g<qy-`4La|>o;SPT_OYt(XAg_tJ8;dS;D}9f{VUyhmxa7$|1i$~s4xEU(e{e8
ze8bj1+4mk<Hfx;in!fkw?y66>_SGNVzkAoOlZ=mFo5n2rc1vik{Wq2WpMq_^ST=VT
zM5feVoNU9~c1YrLVqSCq<;<q@t6U1poNN9lX)5afyjk5S{Ci{8onjXL&I8J}+iEAi
zb=>aFeomk^_xQ0lin|4yEDmp%+ATBTt3}5DSI>8~Wxc<5e}_c5W571<>pyrVt(l@)
zV)vBAb$+F_n2?U@{K_>`mS}WMZ1U0THvU!eZ;_oNXYHlXwG*|vkBS$yo)0M7VE66g
zEibk68tLE9|7V_J{-y@preZPzFR2q|G@HIbj7h70ZsgtKITk|o-{TJ+Udk7qD)NQ*
z`?RxaJ9AVE-@Vy=dsU9sQG<#zt&NchZ+`5*pSQJv(YUW%ev)9&>Z`B%<I7J6Zs1+?
z;O$NS@O1rqCoCQadM|2W55L|x)kjk<LU3cmi3eH2HGI0kZ)&FAQ2A5w@!`|+&$Tmi
zcKDx96*0?<d{(b|_Rcfk=qp!$dZ~D=Hn4lX(C&ZH*V8v&uikwByu};|)*6cj>1Cxt
zDZ4kHk6)C)oV}k#aI&Y&9m`X(3zE)OfELw#dJ~_1k$<V#M#awcc}0_6UVeIBTj1xU
zePxy9!G|ZbORGnmFZ6UsHZ{Iwr?sGCCYxgwqq<EGS4qxH!~RY69ZU;07I4<PPFvvd
z;s5QE6^AURoixmz6V9}w;ljMg$?VsQ^Nyc-Ed2CnljcgMWR}Y@{ah@(dn*=yHC*|?
z$6ZLma*^ZCzM@lCB#!0Y39dTYEg`ahk``C@-F;`uE3a<-arW?(Wd~O_q!nmIWPHz@
zcKMOo`B!)E6|TI!sCZr5=dWMu7p*w8$>U{QQ*hC#8IqO(OGEYNPv@>n4BjwlL3w7y
zhDVb!rwV*k%ip{#!n(8Q&WsxyR=oJWx!hn&<mRu(et*Ahd_(QWk)H|AxLc+-2A|9o
zw!SRxv*hTyuZ#KWA8%ND`u3t*mr^{dZa?F#eSf}{cXk!8)wkQbW^Z}rzVrEnrFHVU
z^*kTDyO)Fr6ci<k|6dc&xV(GPW6>K@)pr>qEJ6=_H(Ot1py~T;zw4zG)`)px>tDw)
z{kXCFqk`F)JEC`ad-<x9E?iA<Tc~#J+N?;;D(io>C$Gd9DEs&;DLtz8*3t;F*jl^q
ziKkjqfcLx?U(}@Lyi|KTSDjIV@uAu(m*1Al8BOYE&E!t|vp4a{JKp`VzWc454lbR+
zb?(GcF{ZkvT&qWCZavXgxXfJRB6jLXJ)6Az!3FbHn)zhTFS{4&eT_l;Sd7g{sfO&d
z4abVVWD7paZ0qu6h&=VhZ27|L_AGOF1#=TV%KYCco8jjEl-a$-_g<C6s#{61Q(W7p
z?NHY$$?#Tmt>3^VeM?qB>TF2+Ty`FRrp9L(YR{Ie+@<ut(MM&C>i3U7YRZFmRC{oy
z>tuLpr5zRC;QyNO?BycwjU4N?D__%_^sxNB>bHZtPMb4Cctx_TF;k!QZNt3XhNs%T
z%wzhn`^JRRrwi_`<~g<`LgLM(ZN*iE>2kN1sPePNdR%Co({{<aevRd$mLCreyuWMq
zvQKT>(cE{PT;U5`lsCHTZP!1$@8PwQ+4k;Q5?j^FDnoO-xhC>X|Mv18=WO%5{GKgq
zm)|q{n)p6);lYV@Ssz$8$WBpTFzZy_t81~0$9R{ltO~z3|G3cIs2N8dy4JqPuwDBu
z^FmeUCZ>S!)VfXCm-O!Mx|`uvpLZy{bm~*zr<XV<T~VldT*+&*>)L!*tA?#BXKnqG
z6}N+HgR`)^;m(jLJ5Ds57vpABpIgi`LvnL~NN|D6KM(W3p9dE%<vkh5*7<0j0jK``
zSO<>!U9bF|C#^eiN@l%I=#NP+j2oEuFFrf__8!Y=Mr|`PUjM9oxoBfo>V`)Qo1I(g
z_pW;V*K^CJIfWYLwkw^h7ydfEwwt#${}uBN?%vP0x7aL+VBh*KsB`y}4{7}u-{`%5
z#FHeewBSNP>WXzXyVvP|ejqhDM{C9v=8~!n+TP-Gy&aSyg#0Ino!jaBUg6{ZttE4e
zwf`td1*Mr7K2B@Oxz}{+XuGWN=F5MjVq@HPo$s%An0Co!az3BrOpmh;VrnP)9co>f
z`)o3NesyUFZMNREa!(e2@8P5e_8n8NitgaNViIZhA?^cvf99RTt5hRWm+Z~_ER@)K
zz(Ie@=d+e?R>c;(Ub*HIqm|hCD)jHZ6@2%nS2$%Jt2ByAX%q}_VLn>F>XC^2i>Fnq
zq+Fw?aednUwBGrUr?J*zeZ7@E|4KW}EoN>iQ+upaC(>;7&+}xQbEJXGt#=o!+&3=#
z&iw1Zzl93V`+a8A`)^*iXSr(EEB5E7J3el-tuSfeof6{Yvrc%;lnXw`%3et)7n)a{
z%#E6&*=lyBZ1)#wHa@Y_t4bQXO{VILclWLM^uDs}#V2;v#|K2~-|cRW{cmxz)!RXK
zb$!H<hu>GKg|BKk`s$;X(5+(<Q%utvuD*zWc;WiQ<#qBM8oa^@OOE>oJb3w+bDh)G
z$$ZLfU0z2Uugu|mype0qN=t@inR$mpw=Qq||8w?g?S20~KRWzcJT`W^?zE};RpNCU
z^UZgcT>ho2xg_9P?fVzSd(UOo2W;iny{`S%|NhH`9~)i2Sak3F=x@LGgondFBmX7?
zgES+yfB(5wq!k>F-Q6PObui$3K+?4vz5z<Hr!owt9L_${u9W?1+dj5Z?bV0>i@jwO
zUb;zb&l|qki{flroJI4_%n*)U{j1(Xeaq$Lp-h6N@44RYxF}uskYmTHKxV~j3L5qE
z)^EyNS$0fP$L-?@#p?4mqQA^+87^+_7uW806--cBk=o??V)6R=+Mf?E|Gqx`#lrJ-
zkAo(<$z5#in;{`=mm2Ez^*hUtWO0_r153}WIxwX(^ZKU`Tv?lE|LZ*(KOyAhi@U+B
zYkD5=ZhqM|i@j#*%9z?EKQu+xRB`recdueQs$V}%Unr*h17F4&{x3V0Y>|AmYo&GO
z3#XJ#Py9Eeeo$X4|9QDaTBk%sLsHVZ!`$Iv3gYFl4t1ix)umI+14V-@Lm!@6pfx8}
zzH8Is%8)6_IYldeofNEK^7Ne1&U(5@&GJh}&AUB3M&~=f^DDMxHC~$RpSAJhd&h4}
zZg)MN^i=X-z4|V-U8=j57yEkL`cZP@(T!%!b^2*3d(vg}t21>1p0b@{_<yDI=!%4}
zbB~gRo*Q{CxS+$GbwT+4g7f-G3)3bg>z4d{czO5w_jdcDCIw`R9sTy>YhmO3jv11j
z9ru5i+j|xsVkzi9$Z|FJ;+3m?^KLslVqed5BYJ7wM6P#p>`o-sn|;}6X>vox%9L}3
z!`6-7PuCs0kYnv|=!*UMEXS?e->nv!v7@+wKk3d^lZ~1S)OD}5*YV5GD@o7g?0Nk0
zAk&u(Ii(&w-!#^J;9$4-_s8tL)ec{4nWt&B+xvpu1D|!4`I&zIa`DN2`2*AUm~C*n
z@_G4QSvI8um;3JNn_a07Uhh_~ebn^dFLu^BGiGpwtNrEo{kme;5@}V1%0C|F0lis=
zkNdoom-z5!)wk!rZh!BWj8J%NmBCw*nagrh)>`#`$>X41_oshfT<_qouJm=m%4n_i
zib2O1{yJ9Xo5cSqZdx$i=)1SS@Q*X@29ENV(^Kt>rvw)+TQSYqpE2l|Kdb6`hWhVD
zR@@Vm_eAYk(AIpV;KJVEkBz7PNLMXy;o{u8qHylni_HaZcmM6OyFL5PUems(_5TAM
z(?0(_YEeBo>~_sHGaipj&H0xTy)&<Q+wOchagyD_X>~1ke*6uqd3tftVXt!!F71tL
z+b$=oy13VL-<1cw1rLPhE-o-Xbh312+Wl+i7RTM)y6>_{%8F3=V<qRFsMUUp+F?2E
z++*gGRkd2mUT0XDC1TCL=3P9y;KSor9nstF&({cfWVnBqd4%A;J>T+|-ErKRFIJmx
zvH4AD>@+{d@-NF5SN2=HU$Wry59YS@^;(c7r-=b*7l$yjnE~{kovo3ti|=d`{J(C0
z)8ou#SA6)6b+0e`bg(eTedY~6t*x2IzwNjpSbluQdO1(efA2SUvsS9Op5B`N$(3DC
zth@H#hK3#6zwh||=*{odn~$FleZzT9XdcJ=tmmv<D>XhUos86(T0XTh|Br>ueGSd2
zpXSfeewc2axz$wi!l4uQzh2#Ty8gA6?k7F-w?B8Uo_}s$?A*WaeGc&55nk*dxJkid
zPj2P6XR_aoX8b<+*hh6^dA6mu|8YiP!*$wwPH&DszvJ>J74L>cN+NL*?LI2}+><x{
zm1{ZMy5a)2^Vt*~`AG+DH6wH$RVy)x*3a!YxWxbOz3WB~bb{vJb~2XbiM}y|tx77m
zp3&-s0b?z**vAP?zh2CqK3%_lXT|@&M_1>cGe1<XJw<Q!ojWsio9+A0nKyR)@x6NC
zz+amr9?6&am(x;bZ595eX1h%F^}B$C_9Ykg?=v$AU#sT+r!;Kc6P6PkQ+`dFvtgak
z<}dO~KTbFrGhy|-`KNEJKcD(U{$k7V^QA`7!kax@>J_dU{ht;d*~^_5ois0hfupyr
zQT=W;{Ujv`iMn&E|K<7i`9uix7G2Vco~&Zn{;2U~>aNyVy*vK@63RCJ_<!#zg{aLJ
z^5^*pKCTK8IJ|qA9FM<GrMGlByR-H5m$7lnSOZt@+hcdX;rN+}X|H8{XUyL6BG^TI
z`@X^)>(>vGGac(WUR?k2Q}F8tGo`>D<_kG3O#bRi8a%hNPtpCe%_E<O*L}I}na4h>
zE^fY>CE|Ku$pqui4hxL^dBj}LDLINAeD9kjdj9h3LpxlfH|U)|Gm#;5fv(^UrsO)I
zjIDW+B0>+|r}`d|<@_zSKWV>l?sJ!If9v?;)s*`g)@1E1@F@3KSZ^m9UdLUik<syP
zTUO!A_c8l!b6!|%>hgX<jW=uJbE!*8y1wasx)-@7r{yhueCxVd$=0u3v!mUF{Y4D|
zwO_`E9Qkz2iB0rZ;d`xr^7`ivFlpYAQB)7OcTtMxwc3+|&fTRo`5&`Zt#)yq={xza
z^}*{xNyY_H`t04SVh$7@5|XT+FZ9NGXOv^Xk(Y)?Pn?usKB}(S{O;1B{hKP4CVM{7
zO};IA`P>`(OG`d~-sQF9cEmS^U)i4PBWs+5SF<dYIdM*V`{I|o_S~{ga(9`{^5HIT
z);aCCTV2~%YB4iR&zQKnH*~g8M)s{~XAbl#2G3fwUD+mIpv2HNTWQZzM*ZLq$0pYA
z%T0Qaz@3qhabwnF-m|Ay_AhLC-N!bw@yMAIY6(@pPTP0Zx%mE4)?oR~k@od@f+JJy
z<tH~@?4IYM6_Xeg9V*t-P&E7YrRKo6+-|$#o+s)ODa+1&7wy$;X<&M`OfOI4Ko&<q
z-s)>zg=flU_vjRda_qm&EShk47w>`}y6Ntl>c1b~m4B<yKK+u3m^VYSYpE;WPTMCb
z*BQc1?(IDARkwKNa)ZfJ_*B(Ik6%h$*yB-mgz1HBi{Bq_=AT!enon@qz`3lTXX{)s
zdBwMBSFK-bv@yr9&vN~kew#7F!S1e-)`gzq9}nktHf(lKKX~E6MwYEj`}NZv?|hS>
zCjBzXP3Ka5(v&ijdwH69x3=i-p2kwe_Lfm>L%{BJsgE40t%Caa`AS+JByDd=>Y5TY
z#eU24<<}nU-+xh%sl0*P<E+M~|GRGaITTD5bhy3l{3k`@qU}3ZeydD9Q@F-3{KJH#
zrwcM-OP{SvJ}lVpA>y==F-k?xc>Os=`?gQ~g1Is4#C2<fm(@#uFP!|0Rn4$=k=Db8
z0E>#Rzn)H(&$zMVHvfu%UFPZs7cR<EDe~*SkXg1ZcGum!^t*X;)Pxn{u8A+wx>6EX
zsypxX$CYaqoLy+f)zDM->)M;D>&~U`YIHMBiP=o}etb)AN60nhJqNG1pVF$0o{^K^
zG5vv|lTV4y<hANmyjByo)Qd`g+EmzXyQw7es_ut!7p|AnU(T3w<JS!xnGah%-uFZs
znkjdD{`v31%vUWtCae57SRxR9yY&c*k4;elS4;Im$45()8oryo=X2Swr||B|(VKVQ
z_arMC2gJnADrCQOq2%YaZChpRZ|!>_wrfdV=F3UKWznabwv@&x)Xe*#uJqrdURrR1
zeMN@GvUV%A()BMBT_PQ4R$t%pAp5}wJ3Vay(c>qlKls#q;Q5kI9Y-fdIWlqnFmYw#
zT>Giw!s90_oCSP;JD%v+&&qYz{8P9!wJA*1$IaqTw`<RL`+apk-)!9b_u7WLk58ws
z*VA98_ph|@>-?*IT094fY|Scl-`>3uvua^|g}2fUx5Jt-JNLyM?45D^pi!xTV8Y*(
zGg3HCGKK#>^sGx}vW#2mFUIdi`8zMQ?oG%z+g?`m&f?F#*{2c?KTKoart>yPDwIun
z%azL9DUJJm6RovG%KuvLFxy|adg1@9-`^4qmfT@$H)$_hdsV5|vDD<rjj}Hf&k24~
z7Rs4=Sik;CM&h;V;?DD-$sxJRf7q?Rbu1xZ``sv!#S>IJ=foYo`|k7OgKvA|qIa%3
zZs2n)Sx8|^ftYXfylU%W3wHNZ_K2%Bx8^LqIn{fH!=bIA`WJR(-F>;gbZ)gyY{tT#
zwlK@E&1N>QUor|rT$VMxvC(SnA@?P6@85pOj1EsIZC|Cjvwr22v|}EVLrilSI~vaZ
zd9kbVj9BF7FDEa{&)-{L_wn;))9I}o#pe<?uhw3&kK^yA<4-OsSv2ZSx?P+RY?bxJ
zJaLic!wI<)Kc1Kq?%Tiac&3SL{ch)X8j~kW*}Lm3;@3W4DXSSWBd<)OCj0Q0MV9-2
zJy?9Zpkin655AKIx62nu)o*-Ku#)lW|2FZw3!9Bx<f?>E`!lk>+LChg<wfymk%>E|
zxc>~+EJ--rK3QnzJALI>D|g(CdK*9SFw<M{mAsw;3r;=j>v+7gL*9M!=8xPbc6)f;
zy;W7SPQrriw@$e0mVKGWUTa*M`}~&{^Y<3Rxm*^G=hZA0DNBj(UVF@gk@I$F{f0Bs
zgmt5Hr}*7&@SgPK%Ri=MFBh4)4K|({Sq%p&KJ%BpXy8{%i&$>i&b%g<>(#nBC*Bp9
z^i@ZT*LJSYI`OivIc3KJeUpuvXMQg4k!W7EbC%M!wYHjR65<<Pu!Kh+SK8a5D!BYM
zQ+L8iwmidAw!#13by>`a)skpvGk@q*5>bCU(73Y7d1th+sL{$}uQ|njNM#%;SbfR3
z!9Dq;p-8M!Pw1vaUP7B*d|9_U`nsw>aI9VCq+e@1e-*2pJ>npnt;u$JL)Eo=hZKCW
zj`;nn2wfxMGgr=Sp;}Xk|GC1M-lmMzcjS01-o3DS{($NDk55khj-3fgeAD@-i}8N+
zy75@DerJ;XoT8Xj`kx-B7a9KAUu5`ea?wXd!}|7hEdM#TtNA);IQ>;$a(Q`>m&df0
zlV1X59*11Ls<!&{9<R5tte#@Ntrkax^waV@*q^2JT?>mg?pVAp>D2EFbJgQ^er8z0
z{l7E2i^VSc(A(sydDnRVdQYBrS-Q$n;ug#A_05YU{vEevzCUSJ%mROh>$ZQwkGdyC
z{y50B?46YU)o+>cN^`cS{RnSteo#>5&9{7eiU?!u*6J7gzn^#6ap*6jmt)yGaGP@a
zW^FF<=?mRBwd$pA_B}THw0FN#zmY-O5$8o)ew*B!>m!t~`9?|dCI=y&jG1}b6LsAu
z{l2mOzLuD)XWmYA@lTi3RwiwXC>OQve79Jos{ZrOyJyqmPuM)-)SlGjUcTGIdznc8
z7LN$Ml#=be`}$2!-^hx6q4aOVBpWmBnMZO{&9=s_O<ndlKc{qm{rv+oj`K2Y`F+g)
z8pBT21<~HWPyNl(HJZD;a9z0lz1rH(@7_I|F3tBvMUema=bojRf>YaPzpwXMq+9db
z%4>$srxzC;<&>r_?|HsseP3Swzv9V0?~hD>H|441-Sq2gT;#SpOc&W$Yt%k@H)p_~
zh_BUBl1tuh)(<gsox-fn#dzGJ-sHbgZLS%MxqZMgpXbaG;oGjRR9|DSl6gtyZ(^vs
z$PD)2tMg{>s9AEqE}ye})v_HsLweG0HtaQddarIx-(AjapLe{O{^FwKX>Qw`n_+8p
zs~;US4mcwDuJb{_(V&@b*?|pjIKT0AL}+V1J~!=bVRy3V{5#j4?K5pR-!Mtc!8Nx2
z_FJQ!lL`ZtJj}U$IQ8wf#g<Y_w%5ID;N?~k*F2qi<5|CD<EtkdbN4dv%U%?=Fr7Z_
zna;yMpHglm^=VJ|c=htuB+q$#(T+d2YCU>Cr%1v0mu)WdJjE2PMW)krS|7{Wd=Pt?
z^U8d&%H4(&>)x$iywdaAyr~L*4liY6+P{0B>D7z%-60<&<3Bg8RJpV6i-FRmH5WRW
z1APw9GfkiQrR)FX{n=JWm&{<v^j{F*IlV8$XT^d){@yE$)KVTuWleK8zRYp9Wt#GY
z0Ph(V>6-j2Cb{w^dW!Y*<Z#CH+g@GfqUk?V(@ijERq5uRoL}}=eb5dT)Ct&htsr0)
zvwY*jds=)6i|h4&^3Hk2bcS7T#!AWQ38iY&bZ#vA;4UWIFeOz>TJnf3k3=Asft9jf
z@w|tfOe^;4MJpbh^jRa_OMJiMj{2!)C;hV~M_pL<I^!STv&bhO^8y!(809y;JAdip
z#7#Tv)+t6UIncUQ;6bhJZ|iHDmlhxVsupwphdqCfle$miV$W`w`lRk%Jw04}ToW&P
zW_5Jy$(>WtG;#4WIJl*uK<%i{jOoi(?dV`(w%)zr8h5(M=4<{L{r^I5E&k8*_Gjom
zkC<PJEFT}NHelsBG3iX_XLF-Ey{8S_MUr}T{JWoNsTrNz;`Drpqjt@%Z#%ZHjs3#L
zdiuzu^qF#NBl-3vojmtka8hQykBqy<^Tx?{s&Ba*x6a<xwMi=CUCw@&Aitgp$4h?<
zF0Ah~IQV;>KEHIc>SBia?cdqwTk~IfbIf+iiZg$m+uB6=e(w2o{dWC5J;B9XVLSoL
z_I)?pdtaWzHpMCLW#I{dOCo#ne;GMXusZG|V%&P^F8i}@FGIppuU<cIlHd2m`+I$h
z<MsL5r*h{{==C>Z`M&Yf1(!?Lwy~JWT+2~l{-n@W$H%ZrG2>E?(n8(Uc@}5oc5^AE
zURA#FS!?<X?xi~m-W+|c`nlTI$oUD|k=W11d0S<Dd;hQPTVDMB*qw<?-s+D%4B2nr
zzSjJAf=B3WbK}U*Keq~MK3i%rgRQLm#5S$m=k?p!HR|Vi&slza!^_r7p1-tH<*qM#
zFKeGzV^DEAeO8W!>e5bIheh^v%FizSxbelr;NN!n0A;oZ0xGS?Usb#>f2Y^*X0q=2
z+N&}j&9pvlZ{(lq{ypOAR~~uab5o4+ee<_7D?D-GUbJ{|g-~+Zo2*XvCw_vr*@Nfv
z&bxayhucB6zD#z*;Zp}fC4|B`+l%=&JiEgG%sTknmPbpYj-1`eK6inu(bc3Snd`!9
zcGxF<i*{RhASL18A=8aPN)xBfdoe++sBrDGQ=218<h<7j{VZAg<kY7Ldt161_)2mb
z9(y>R2uQpssikxOcAd)cT1GzUs9UT{A2}y7t`2to8pB|+*79w=XWGkz4bufP&l(@R
z@cI0VkT~5lihGkf|0&;WKew<(v_T`8wO)6J<E2@?llet{a&M|w6sgp$;kzKNrTD)`
ziCn?TMF|t6|2}--BR<1np`xY#3emQuy1gfCwcmTr`dk>HK7W0NH1F)YNx!B#WggnR
z-|GLb*sTv#yPw>UmhhFx%c_5scTD_zL&6@>UDF#|j~QQWooX4*EIyYrD}2iC9XcEO
zjl!$j)pQShd?<Ks{-K^Q&6Go566UQs{L^9b<DU;|eZ9HQ6)&~4yuf}v`NO`+`@UB{
z|DU*}aJucxb(<f~UV8S5Vw30x!>iZgYH9^F65m#_{N7Wz&(~Uh)n5L$8L5W~?CLqC
zKeQg=-8lVEvU88?`QJXx2XYv0gfF#Uy7lhPckCR$z8W!@hm{7*Yj@te_<FN)@$Guc
zaNVtw;&$cDH*vVQZ|jvX=5uY)@!Qs>umzQOo?fXHdze*hP7d!<<Gh0tCoFUf`f_&8
zxg9(j-tKE(zL?CNvLWwJ&GnX&_xTef6X$JQT<^kYC)MP7Wb5+fw(^HJa(k{2k^1y7
z!R&faK)~INyg$_he2+Woy=1PizH^3er-nuKmQ$?<)^jbmZ0;nQ=DpAI***)$L+?#C
zhS+UviSG*U@^MKld0!><v***oP5p9*&*k6!-K-bvv)w{VreW6GZBCZfoQG<HXMak+
z6ei9+e_Ba>s!x=`zoklbua7b<yl`7V#b}Dn(tXuSYU($>Y}@5JiRpp*E@d5wUzP&;
zHdkzl-BwJj-*9v3#|^Kd_h;IeEpW7b)113feudi3-0da0r??Fp8*bk?S3Z^f>fCQT
zkCiQdomO4c)|O(N?c-#0hi6Bda9T|JPaSTRvr}&bPn3A<pjzJ;(D^h~ZXS;V^UflF
zwi(5T=YL3HNOh?&I-tU_f2TUL;N|<ej62nt9sSuXjwgJ1IQzEZjFxHtgBB?*Ey>+|
zJx;)dPqbDps7bQV$JMEL$Gi$&SE1A!zb+h>W(jF?5c*SVFMZzN`Gh2&fXBO-HedhY
z<ai=V`mNr^*!sICSeIDVYfX~55&vZI|L6k!CgZ6r$3G?>trVLr7VFx&Fe~`+h2L3|
z0+^dJV<ZGL`pQ%nyt#AvkCV*w63%tYm-EU-Ioq#zx_58=x2)HqLVI>u_I~Z|$o{nd
z>4LU^-{I_s+XUuqwh1(7IFkEfL+tKd2{kp788?Z0woTE!@@;PE#8a8`y`I#!B()w*
zb>A=2QPa2S>;1khkE_=&)%fx4UiN|Q@ADZfzgjj$BtCU72#K6^EPm~VMFqdxjm?%x
z2bjxk-5eA1L*UWPgt#46Gp0+-VyupD2-xfP##?w=>d!j|@A&EU{%Kb^{O0Y>wY&Cd
zd9tj(qg7kD+C02bR!>#@#)B}ilKQk~ne~TeUOW2U;F9<{roaN#`tH>;W<HL&$hJf)
zG3LeftGdlr$}6N@_DC(!3Gi{xVR)#avfpCiEXM}UHgTVrZ=JGs2_;*cSatiH3JNE0
zuC8hQ8@#!Q-AS!AjrG*z<MCgar`@Vw_TfQ*3A?w38e>z>#n@+F0>=(47V2FY&^ax(
zVWo8a^5oVTl2Yfy<9-(0lu?}8DzPu)4wLXb|5RVr$H})`W=cG`yY+0NhtcQHzl&c_
zezaD7i@H-a*LKD&g}LtMSp&RFKgw0GFWP&5zhgvJ1c&U7)#|*`j=h$DR!Z}Sy<02E
zv1n?RdGnidx+-5E%=~k`uWoOUjl<s!OQ*J<dT()2cSU_eL{_;6<1XucYioag`}X+l
z@7?9yX9HF|b7p)#wdkejjLnNU`loihdA$3-p0dxusm~vuUj2BLkfzA8s&iN0hwamO
zA~oe>V~{>a#y-tS3wLfYS@cZ0F8k2(qjDQsCa8X0zNlrM#_bE%r}W~*5|2iPeziCL
z^47(vv{}8VlVR?Lnw0t%uYF%Q>26=BdG&noGRCC12iMk`-hTe@?&qa56I)t8tvzIw
z&}qZ>NbiX{FYnx?b0ngkKRt1|Cv)OiudVA178Rc0_|N-dLCdA1rq5o?>HKK>zl!7h
zk0g%gSyG2~@~{8!dJD6?^c2~zMuoMHxkLYK*=o()b5LUL^TubM|M`}$i2YIjdY(+d
z^{L$*PP^3`uje!I1sevYY%Z$XBe-kw6?G;juk~*&ZY`d~IY0E_p=(L?4_+`H?(_e}
z7^ku97zb-f-JaU--)`5}>~zuV2z&L?KIeg;oxs5p0-m!cv?Z8dnWe1D?|YU(bK$I}
z6Ni$;Cvz1nJh$=SuG(4O@|WK{tm6N}UV!<o#2HAJ;G;R0D6@%y;q-+{%-Z$kx6MFX
z_b(iNC$~$zsZg1*YW}5Mz1y2JFWq|UJ?pV^@P;GP7KKdO^tgV%vBZRBDqia*+1%K{
zHRE@U#HW)rht%`W?b~m+yJGDdmx5`ZLVVV}SKF9$YKgG2<>nyYb?KA)CvJTnthzMl
z;^|`5MK^21p60O?cXqxr3%w_{T1&foTYbUVpUYp%pO1^3|F=}_0h^uR-$tdx!a07Q
zp58p}Ut`p~RbGA0$}4_yf6hI1xjlokd%w1Nc)I=kkBU>1y1f`{Cw6!y2`g<Zi>$Pp
z+S&JRbJ61!(I!{6akrPm?z#5zgMe}bm-vtS|G!-hy%8<`dFSfP{WnB=pKSYml>0`$
z&zB7v^`BV(n#9lb7QVVQ``Qk%wW}iC54`FWxF4A|zx!#LXY<VLE~%%T%~s5rLFJ|H
zAxAz=;94m(Ez4A;rX`GXc2!XRX`TO{#rU=gPRLk%{zv!8kegEqRn>wQM(`~9SS@>s
zKXb)|Zy~O$t0%O*7yNo7a%<eJl|8G@PU3rK#&~hx+xI5*6U9%b&ytfle{OlyvWu@j
z_pK>t`aMVY`cmefT6&9m)U4ND;#Co|O^J{^JH<%$^qiR$A$o?!QRTa*>8+L$YI`=P
zaJO<#*~G0LOS|f-{=a+5e`D%J=fG(uH?Q@ZwEjBEd1?3R_a}s=ZJBj3X?^jW*E0mH
zcd>4Mwl{FrkNJyjGN#$o=iUlmw?Egr-=%D~#wv%3=K{Bvsg|5dnrxRGrJ!{-C2O1O
z)g5PE8^kxnCFd^we=o4%#0JkreNOoTswd`#U3A?zSN!|BMROx(aA_UaobbNmRI4dZ
zPKCp}vsYJ7-~Z?N+ZCVH1lq0~sQkz^!MR-1_spHxZJN=uq|HsTXZl^;T*g*^(eFFo
zjl!F0^@}F#@@}5VB6qyhD0E}$H0?=cHFsX}8Ycuiyd-c^;%0dSGk?<#Kj}TsuWI)=
zX?^Qs^L_ovHT227{fRr&wu**!C;PtR{rtVPy23Ea`P3$pN;@mnP8l!u^Jh+4rP+xn
zx%#@_?2vNMn)BVg;`^RGdx|3G&i8lSQZKRl>X9?A=50wUwmy4$O{T$w<5s6u735xQ
z+a}53=KeV}|DYLH^xfx~6Y^#m?R_k0*LBcN*E1{1mHYidev=a!xtDiTz1n+x!S@SK
zE?Hkz&RwGMDkI>*O7HNkd2Ng#CtjRtjjns{HGN7``BK%#Q#|KK*=GL#@M%}&?|*l-
zr(AOlu756muQs5L``g_r+gCsCYDVYWE8Q5a$+;_g^P-%H1&)p$iC)dC9zK`Ju}tkW
zQQTq3T<(0Lvo6=5Qe(A3$DHIN>^+QGJW+2F4~VUL!Qh~ysM#DV-z<7*Q^ZZVupIeC
zLI-3Q*l708J*dtV;aA%3!(hP>_~HNAu=?LGDqd&IxnBRGHL9fjYF^Ry>RX0qCL1wk
z^(OYsW;nafP+j{V`^4_$7cb2Dvx7C_;j{iNqMI4cwat09Tq-O7;B%KJ8)bXKM7P%G
zZjyX7X-?gC9=iu#^A8_1-*<nDL}2T;Ycl6v<w~&c&9AP1xI6Qj=)DG(#MbsMHh)Xi
z9&58TJrXyMb-XCMP_M4>pW9?ler5$*!h>L)xA_bayoEkR#vy5kwtr=R{B&97O7R0?
zyw^kyJTKiABP7Rvs`Z+>iQ~o8X9gxAcg5tt8h9UGe|W0GkK6VEpC$Mh&O3kK7rkR~
zJY!YHitUQ^Z~eHwn{AmJ^mSbu<2^Phfd&?Z9*-ycR^0XtyY%ML*6xIQ^~FEsE==6^
zEaA-lJvlXhe$72D^Y2Imk1*GU?w6At*gt$>xcXJ;nB%t0aBq{pYjor@)yo2>Y!UCM
z<*`(_ct$1b{Faktn~VHz$|c+oy6e`hP!kdJd#dPztoKH*<4$_XI4E*leb8Yy)Asa^
zZ4>?<6;o(DY<+_@Hs3<vP`vnO-?#NnPh8noJU=L0S6OWK^Tl_jcel9C7ARHQg=JST
zMJ=8GSz)SN=T)t%I-(~F{iiiWKB)W7(Zd>F;&S}z!m{~Z+6xTN$1IersNZp@y(3mM
z`&c8}RHl-vOSb<GWt=9?Eo@@<?asD%w}W=Vos5z-+G=Z3*p^S=-V*#s>BooNJn^U4
z>J_i<&q#ck{^-c77e^D-{FfEXKPmCZF=_v#lNN346IrShTwgS-vrQ3Wde*UAWmR6j
zf#1YudDnCeG<F0Xm#~?+tCr2wCeY<quSAQPC-avbv1`4a95}Y=a@6H@*Uo3ZP3ihJ
zlS$_5)oC|BE>UIHzI#gZNP9=#t>dO@O)Afv#qzW2V@e{M89a+BZpc3T783M*W^2tP
zkB_}OTstNmyL~6GXud=2WtKL^jkbn7tNAwXX}eR|b8+&?JI_V34W308Y9$>jt+^2P
z`RcN)d?$&yht~fveCD?-r{6MDSj@iN@xNJdjKSQtTj~2&3CQt1db#@dnlBrlG4H)o
z_;R-%*G~5RCG7Rzs)Iv*Zr(HB?}y!cw@p`8<R9L>rETf08s7J=TMzGb_pN)qpa1m3
z6t!=P0`n5jcnV~^`N(i`N;L2ErDw|Y4>sJkswwLf2zHa_TkLheY{G51hC7B26lT}R
zKAHC6RsV0}ZH-FTwu>|~aLaO@usQH7{-va*FlWK;MSc470%cj;yX!A-K24Hh=#Z_o
zU@+SLE8wg0oC`524^JOs-BVDobYG=YWVNbJh2Ap%Nej95w>-I*cg?odRaWaQ=Ysch
zKM722`V(v;XY=DvchsTF2b@df>_4_Q&*{>ADBR3DU!s7O^MIMO%njSQi8jT)apDUn
znJnI^6!Y(+!j1kV_m2LYZ_}t%U&a6CYP3j|lZhyALYbp~<*Yk(qHPO$?%O`waXZ7`
z%p^MH@sE`Si6%3d%6@f8@V!%*aDGK}%h%+o28s&us|BNXe0Z?toc_9NdiSS%c(J>D
zp;DW6`>LcM1~=hfD>vB`Y3>nCUiPMs_0Rj<_=3aS$NJ5?JXg1uW_z5CSS_>mlVSbo
z$!n`D=Jp?#SGXTB&FklrIsay#X%{-Qm^;2AEceC5<e62E@AE5YAKf!um!oXUFYbpS
z1)smLl&4(j|5B-*J?rcx)9UbRu3>EXLTnS-Y`*+u{N`<_5o2!RXey$~ZYnZIPrf_L
zFSh@g3jab@wNJbiv)0!<ejodIuCUK-@pFgE^UfD4d#fyIyt|>3lhgEKT->_XSLOBc
z^KV_{omZ_><G1_pw(ir9#T0_(OKpGuH*xFEqt)K!myRAfbh-EYd|{70eO)X!Ys048
z%$3~K$#1tx*sAvbrhmVu>)+1Z#T2)qSb_BmYk@=z+t%j)%)7FDq5E~r!25Nk_j+(W
zVluOwUg*h{%xDf4W3n)xo|w(0RlhgPxBs@8z~0~CA2j5BK09w(^VsYx8^?ys**kWo
z6faP{mF5-L<+66~|9#4QPj5)8IB@Myzj*lJ<Jso@CXzRW-R_-<_)|Bx@Q2YMPrb}p
zMUzA)8O@u#X<qHGGajtP`J9V4MNCdUvBp#D+Cy{YX*Dzcn*Po;j=q;Zhr=ygd*Z~i
z_3wDLoyt6Dc{AimaMAT`pIfJNmQA%hxFX@?-9Mk7z5OI-<m&ag^xW~SJvx_~*6lo!
z`hM%xRo5Rg&D?S9bzO`}_1>TJs=4l@9;~0cTg7InQEVsoJI$7gZC!UX=j&VecRzU?
z)8$gWH&Z4c>a@$HIbLg=#afD^Qf79PcJy>P%~KSpcS$+fTzIzQGNa2p)u)a-Yu99F
zo%s~Eq{TRDgVKsa;UVi(JdC^MC_hm)d3982-@Yi8!-0z@{MCA6w5>t?p8@Zell{sQ
z-^|(>!R|KwbL!=DuJdfl)9OEbS<WNA<F*rr*3bH+AMg6xci&Hp4^!EFaH^b1*tH7g
zODzkycufBplxEkLuAO^5lxK&gcFiwmpZ?2dzjf=`_N~3y7g{>wqs(?2ZULh^1yOwG
z=1lXg?>ewfDqB+ewCdSQOp)K?DuWlr+-G(!U^%Cr+J7uGadC2gqx&?&R^1hEWE2W&
zOs*vzD%;oaRO)apL*6_e(N|3`1HSDz{h(bh&32(<^?_&G^KRWQs9)6>y!4NEzO6?7
z)w00Xm!B-%Wg1p#V<o_G?bWP+_?6lV>a#bMUt9De*?sd7^B;QyM47cJG<_eGlw@7h
z%E?;0_g%rF(AxfUvjQ$fSg>phoBBVeStoJ3a9cmSY-0Pp9ky)e=lL&g+#I<5=+cWu
zPxzwlMa`=gj$XRxYun!^ZuK4YijUWw`P*_!V(Zpj`zwDRo4cCJQqx?PVSQ}A+)SU-
z+{IUUe+AWBw>*E%t9v`5JGW!`hT|Lb&c6HEI`wWqvVEybMwz`+R`Xoxgs=N$_MeWn
zEn9oZ+Vn=n+V8i18*kSZ+{d@-)w0#z3*szwwgtb{a+-2B;c+VS_Ll*#PG2e&cg)Ux
zdTRFk`{6sn+s%JQ#09%sO???Hz2;|4>Fx&o*E0-D(pByD{cdQETikg1@Y<dGua|ya
z@^L9c`Y$D4v5*Z(r*7~0DLi@IMiv!ML)E!=bC=)#|LXszU1Ake4=m1`%2-{o`iQ#k
z!SzKCY`^NK^pz=q`$bIVmeW7}U=(38G@LFdz@$-sH2ikaZ8L$|>){_J&e9ZQdhqq)
z+#8+7Wpj>YEx)WXxzWSJ=~TDZgndt5?>^8p<;jWMStcii8;>S!tlm()foJbl@v8G_
z_WEi5=PI6EobV*kZ|~7l-IfnC-!0Wqk$ik_(U*HaENAbJ-t$3emXKTWjm)L%Q&n51
zeQr=+d4J2^D{k5KWxHnlHC?<wq^e|-o3POFo#9tDo4<Ej-?CLa&ZA;p<@T`6-xlep
znHc}pdSCVJv`&d$+wXOoGVX_-I-u3PSH=6n;_ZsQYxy59Q&0b*U?J1TIA^7G!Mx!3
z?OTsbyj0a-k#MHw>Vh?sr@jb%owj||{Rb-q_Qq^4p7v|5mP_j)X~Xn-Nsc3%Ce5-b
zcy{6Mfl6TmuS;LLm3HJjXOszFwOz5l>*8sRZ?{G3e)k?}e0Te8m}$1L_n$?<d*7(N
zz1=JG-Sn#MsugUDCd+p5FFI5@#p1Q=?TpY<e$!IqTq2*$4++f{$;<U?*v<G<rLU-D
zci!@|4aKQV9)CHVDz~o{xMq9f_Okkd@D{~`3#L^yi*5O3aaX?XrFnaumt5ogryJ~i
zq}AWwTBs>lF=K7pvKy>d^IiI9=kY4M4VcQuw8LMoTP}U-hKx0_J!b>--)=q4XZ+@5
z<QZEj!5w00i<1MEYkp^%H@PMC#e2@g&kdI}zSqw_+_*vf?ui}eIbSSRoL4<%l1<-Q
z#rhp)V#3otpJZ8hjHCOn_th=O`aCCy2qh@b+N#`e+<~3%f#(y}K#xgJvK{;d?i^|Q
zH(4@Oc}m*JM0M{u$@^56oeJN}cqwVGcYMT6D~s?M)3-LHY%VK~f3^0kU!+Fh&07qA
zMVBp~*|J#s_w*?~(^;ggMQ(KYOi<uSW;xFF`1gjkdRN1)orShtGvl>+efm7Jj(l1-
zA^J>^@mq7*Ynx^(N6+ZpbTd~dFVs}KLR5sM$;w-F%W3`s`B!d>+_<-8e--Th&A|~}
z&8Zu);y<^@m+lP}tG;a8bh4m-s)kz8#iTVmHpZzZ$ee!j>41QPYM1>+1KpTDxhK6V
z*rZqgdp9R!*Ms^Xp1ya^-4}QD$RD13bi;AKRnz7l)PL#0_h<f();h8MA7uA;@Y^@U
z*KK{<b22b^tzjCo&*|T8S5`U9Y@5!-S?ezt$;R?7v}<`dXNvOv1vM!RmRrB}X?ed`
z;+4LsGGSB5T$y;@36Ce<x$Ye3FilQ-VbP0a>dzP4S@R@UqJ4jSQ~i8{1vA+5WjvOp
zzrMDvviffh+qQ@z1_h6MfAu?Mj`!a`9BO_(h+)BAk)_AZSnk=TqO7U1G<ZIPQRz(g
z>L>G@y*IyU&C=PiVT+9S-BmZwhn-%S)9h!G8ofB<eW&ZeC^Mm36Ib4IOu2X`Qc~*b
z?bRG}^1nGHm2BYrQpWst;>*5I^+)RUR>@Vb|8t>yMsktIc8!fmOJACLZ~uKHrk>;F
z)iv77moM$*ce~K}H8#5U*eb56%OCUv?5@$NTFxd}s?r%37dy}9@3T2yS7qlfC@uNZ
za`AiC8`k4>oLcMVd;DVj*jHPz?e*cC>awd}^3INB&J5;ax?9|>s(G@=YU{N{>yLb@
zk9hZS#*&*W%9>r=`z}h)VcV^=KxLkQ)LW0fzZcZ9Hd?wwUlFQfles7_GwqPR)a-9_
z_uItJnIE&KzO<C_-*55v>(BqUuw@IFH(A5$SZ=bn-l?Ez)=ZZUpXhR^36i(AW5069
zzi+?I-nzVV^?!cMNU3?mcDV5Wq$4(|ANo||uez)I_^<!Xzu>XIXw3Ts>PB&g-ygWf
zm{d9Ez11P*v-f|r*1y`%SRMG{7^v_RW;QT0n<$_*eT5Gf-}FttIJN5cMg`_en}bgF
zd5~PqFOqKYWP(G$ft3%RHL&PDVklobkzM^Fs~hv{2R9tv-@k7@<x0lh?8@+4-xLjw
z%1$~wv;Y2?2@5A2Wp!6nSHJmh((0W0)r+InF4PNhbUx`R^jg#Jmik#e?@ewcUG*6q
ztEY%%+~{cGH0;v2(bJ`<lB?EJzcA|)t9+7bc4C^Qz{Y;fTUM-pPr9{Ulh4gKczw|}
zr;~lmTNl2XG3(Qe&YRD8ZZNy&DRV_-eGWb0xozJp8Fe1#)mGOsHap0Nz2UgU*6vy1
z7%`jsTfd%9Os9GD!&$d3yh-9%d)_C-da;7ur!<$+z*$wIwMohsUM6KJe^6A@<gPDC
zoW>$p;^?P(<HnODLsw33FOIj_Wlm{1O0KJC$+)V^tnF7656<os_PiMNLE}%0>5j^E
zwMTE{>{I0P+cGOG=HWRrZ<lyoGh-bl*J%00ORpWjsk-P|c<iHX@jo<=YDF*$FA>Sj
z7c9DY!67hKD~(y`Ot|lAp^F9|1n$gq4)&_QlDf)QXV;xQZb}Vd#wspGEE`)wrib2O
zXmHDvZ#-}*jP;sH$J(yc5@zcKp~(i*mpux3qdn~+o3Yo`%&gmOcSWj_TF)FXoVl}5
zYl}(y<Ae;u?~Eo<&1buf7j0e1r#|(-HYT5tGe2GgZ<%#;%EhdGtpB*e9k`<P1<MjG
zwz@R0s%PBCaXW88iC}K+40HBq#txlZ&svkcPPSFm+-VS0UlQ`B_v30N^=@%}vD3xn
ztRaSeU!%AG`M!R?BunjO%SrtbHNQVRJ^lMAzrBs3??O*!)%gu``o0|f_3hr?iigw0
z3*@hFk}PAad!TY#KIugNZTStkEK_sp86H*|vwhaB-x*zBzbEGIZtd-Vp8h$cdw=b}
z9p&|UU*FaLk9~Of>+`EgKb5D&-o00E`i{e_Zez{vU%Tpd{NC|vm*SFZ-_yRneD>?<
zFaGjWCrP)9r`~V8@Kx6BcEUZ5d3W!vGrWDZ?Vitk_tR#LM?Zafc)0fW-(SzZeLwo?
z>92Q}U#;_%yQd$o`+w)3kM&)*_%A<KE>m)>J!+<^!oO<LiFt3&1b*~db}Dl7y`|Cr
zw$yDe+wiYE-ta?O?Qj0`U#pG1kL!P(9Y1C731L5($J1;d>+3(b9+C0A`D5~P1EY5n
z72h+q%z4y#@AAIy4gVMKT`pZ4^}zCEuf@9RJRg~wLq(bs&oAf^Su8&1#uVl|v+CLZ
z{`mN;?&*0sz4i6K&nQlLU7J2{8SjsC;Xi_szKL}i?hRM|{$%Nqlc!8l8pG5+IJ;M!
z=HEG^_lsnv-v)_84C?uTc~)7<0xO&a-X&~qzQs3h=g~`ZC049_@j$YnPb%Hzms_LW
zCG*w2?!Wd0a`!K8+E<Wsh^O4O<=IQQiY8{hdPA?{=VIM{K0CkIH=5na!BUZB$`;j$
zx_(h^mdODQYEQMzbekqOXUrAg<@)5jB-1WH*5<(foj?B+Z2$D?rHI_iSB+C{vwNF(
zeVn#gY2t>>nI%D=?=NQ)a=U-2;6u2}yy-&!f=++kYm?6R&M<Oi@QgLedsB^`ti306
z__CAMq$I!k8l_F%@;6Q8``^rZ*3)&VpxbCAhmrGY3jx`Qj>ZL3yX|B<^z!TX)qnl4
z{`Kcl-@gGNrA(XOatkjia@jW1WslNh8=bvR9W`%C+xH1S>yqu8Bbm8({fV3IoW}0?
zp+_aoD4tlhR^6THL!r<<c^ARCx@+xOms_~m&WTd2*6~}LQ$J65`H6dLmN<q!VcwG-
zS>gEUppV7#ryg^plKa$Wtux{4n3|DbtMO&dhjsrB2`NsUcuAwU)@{Z-LH}xp%9iDP
zm%e>!Ui{HzWxsmY;}0!bJNlRBx@`YF*>bft<ANPKblhq>?sxs@^s(ri?$y4^dj9T-
zuT2_`M+68cGzN&U^c?Q3H*%d^I6IVuz2nE%S8opAJp8lEiT|$3<H#M_ds6NH^iK5W
zS>&%iyPCm9D(%kslbxATXTF_15Udxu>(cHk%pswtEmoKETs2HI|6aGLVgAt;<}>Gi
z{+N6!(eIf$<3+B=4N4-)7kxXvYFRAsNJzE{(VV|NZhg}?KUV(}zPk?14xU(_{nhi8
zMPld4=?im`JuHGg{j#`iv3B0;f|~Zf={t5PzYNbUW3MqOT9jjH_wIz<vsmYJU-f`(
ztQr%x9C#$T<$T%p>0ZhIGZ$C|PG;)cD*a`ynrLFH+X|yIzn5zs=5SJ+us8R|rk&3_
z#kyFIKH2Qvd#L@ViKj-w+rIVykEjf<l=_!qTxWFVZIvr^Ov{%M-eJo(bt<E#-Nnv3
z|4NkXU-5na@z~1YOA*t>{O=dy%C_}Jb_a*;RuQdU_W5Sl6{!FbwdzHmXPs6Q*s~=$
z>e-(4u2#$X3cZ?bXM{DnX}A}7&Ez}q@$B^Q>!Hv0Sh#&j{P4tYa+ttP?n}k9_Ux+r
ztQzpYKH$WZ0u5%z)e3hzt6t5%B&aVr*P;A@-;H~G?2|7_>gj2IjkkaE@#72Qsb%R}
zC+DR4ZTWrhk{m<!R`v|XtB2qI5_(}-V=tb*rfAhKkq71<G8kkzZ}OI9X{1^Gc-Q#(
zPPNZw@kg9J^VsIu1Z|t`UF9}w;<3~-CnXo8|Lc|uc)q_re7Q}4+|!Lu1JCXKq~Tw&
z=>=E*4W&ZXQhEK~XRodNTi!jll5^e3+Qahs+pQAJZ4c(9sszYq{+=_>>Os8i!TnZ8
z_n%@u8u-ohYT+TJqsK2EYT4xdy2PSHXw5m(aP<b8&;VIpMcIZ4ek~X3Qf}BCJU1=6
zvw!U~7roFGPx;%Hap)R{pKPD`<MM86J{4Q5Yeubo)|YmRXS9`^Q(h{3$$-}?C`w}K
zwRs=@Gk(1;zZ%qr5Mi<acff?1%`J@}J+QqI@E%y;EH@6u4@}>DJD-Nkys<OF*UHyO
zuB%1YL}X>hlDA(#U9cr9E`$nguN2BVa*yxayHlm>WUp76Rc(^7wR?JKp<d^m4y)7J
z>Q9b*ULkBWo#WWt)K`1t&v&@1UDoJ1w!Z9>n`o)!%ufn3_fN#G?20)b@!<F4`VN0P
zz4`smPG5X3$jZ3R`S$M&hZ_5$NoQaDb-(VJ_<rYOAvw<H*XG=@nD>EG^w;h)J0<qY
z?F{oQkB@xzR$E(1Dds$<OG8&(L1sos#=goLuj*?L1-6~}7+lJ}s@N*->UE19v8QAD
zZ|u+uty}xPs^-=2-{CG(DiUwRd@M2-e7K`NN<4k@WbPkEDUUzLYt)r%NZE<3eG?tJ
zHt-qy^y+e>qbGfB5+7D9e-x_bU6kN`|A%I=rQkw-X1^7`>vtZ|IW^m2_2W})(em>R
z4F5Gf4~sOM*>vsXa%HaQi!0Xucm8#5%N-NfgN1opcXylL_Ib2qhg6r8LTlmrolmbG
z?d-hnFr%KyE#}y)=2KoLuADledhJnpd_m#jvuwFf3^zaYld{qAv)#RRubD`AYao~U
z)u=_GaaWjgUH&ZC`buZrrV7&(+wYzlvy#76%5Of$&GGqVeUDSBVMV{KqsI#Mx-;|a
z&SbI|J8YUIwt9a`&`N0@tpgp_SCsECzn9G3={>{vsUT-W{f$kJQ@mDQPj)}(c&DXL
z*KyYBUoNkkjz4&GqUz0C7v`N$gA>C2m>#`aC=u?u{m4I48Hdd_4;CaiEc$SK-i=L#
zmH$}{y=Ij2zvr!p`)sF?(0}}<=^~MceCBNz3ikAQ%d9!0JxNW*U~2i)GunsS4UDH9
z&W|<olAYo0=@6Z8-+6ESgwqwPD_50S9e9zpBQkPl;jC3$4;hUU1gG?$YlvuN<W#)Q
zz|_H?U{Ze4Iy5YH-iwvToP{=pX<5sk;gl16WPLxH;Zx#E#q)1VWtUqge16h!+~~B%
ziK0uB-uSLDn%nm)$GAb@755>Any^#CrDDsUPPi$@6TP}$)pAC_eA^TEp4J<5GAy#4
zZrkEAr8I)e;Ks_(-VIm%HcLmBq+VU7wz>MBP@M1NKegM-msUR7;MIT7LBO`gL+@(d
zMjnmaUpv-?W<B25cROVL<lQ-|n&xg1xN$`E#&26q`-+BHc?|kn*F4hceyiO&b*<;A
zZNDaD?%k}uwJnkPQr!hj1Lgi(EA|Ih)@PmBDeJb%{ZOCP1=WK8cBuzTnx&R_O)p|&
z+Q4Dh-tkysi<_c_Z&z-x-Og!Q38nh0rIX(-_plF;5I(iY?(d5ozNdAyCYM~|RWdy-
zx-F(L=Zo;8B}W~e&Wd~?y_IWfxR|?V@VdzNU$suV<p-zT{KfU!i?Q^n`QE9AS-2Gy
zbz16UPAHw|j8Ba`v*y9s$3L%F&+`Adebd_f1B;lK+$>`#oY+@9-8@>YY$xCLgJOr*
zaO}@YZdek}u!S!m@5W?NJIQaM_gZZ^4LF5VKOcFN^y=VhyNRL~YBKkqS}P;H(k3!L
zV6wmJp^I5JogdFzSErx7W1j0~`?~zU%d8LI-I^<S-=<#r;PXB591%Y=N@qXZzH`sf
z)4OU~KL;gUp0eic9;Wisul0Y-tlbj#|6<jx@|kx`ma@r&lszt6J8O2*oy-D`3)img
zuH9{4{xMbQRp#>NR_+^4v|b8J71fjc|7vSe^vd2}(b)-o&wg~jnVJ=JEm$_U_SUgq
z#{#y*t=L}8{^0uI)W`K2oBP%a?!U^D8oxNMW38SMTQd8aps9Bxm$fReFtkR7iS-|l
zotP07{&4$|bS1{(BT^cDqNZz({J31wvC($Nb7MU|C9d0Q>ksYvI&<fV1R=JL+#7F%
zdnUFr$ZS~Va(36BIVxe{7fd$SB*#sCxzJ$!=6$srg2jBpg~DU^r*^N{RG-yxUS(<T
zt6R_KeeeCV?$EC;Cez;cr(UV6hCMUpmXJR!diQCbic9^96|H7b-q~KuZpu&hkDnKR
zX8yl@S9rEmSns!)s~dO5Ur+q>&)GMN7-u(^t`|_@*}KmA#4MSdFNPIu_cv*6TQS3P
zS+<JB-sU}GQE{7Dt2mB+VN{I`^-UG7f9xNZufzZ5Tei`P#!s94gd(Sfm$n&Z#XH=z
zkGy+b-tpl3@^zAV-8&TQo;T-S+~^eXeb2?iTo22)z5IHtvT^^5o<-*_3yFW5@G|<?
zMAZ#Xlw&qlT<_t#EA*_YV*jR?$17OO4o|j<zWwQYosHqa4*%$Sopa)+kG?tj^yZ&O
z=CU8_Pj?@k|M{TKOW}(<1E(`+#7*Ao$jslGcZ=Wn$`s=)Vb05zKeX2I9yIuSK054l
zeCe@+UctvS^JeVWye%j5w(YI_Iwx_Z+fG#*_(fGd-9El}P0V4_sMXt?u53y=^EIlb
zZ~u!*2^EiNy7i33Q)+#0FAmUGejmB?plqVco@S#>%9nWTSZ3e<S@eZ}x?Rb3P!%c6
zWMnWsP?AlU*~q{EvZ^~GxA?Xh&%bx^3;RF4_3>V$;`R4hYUZujTcy3%zplIcHKVh$
za=Ey_e%Yt@>;hAAmgZg3du^w(OhG`UvHbvZ<+<L+mg1Y|hi`t$J<np_@gV)LbFXd{
zE<EP?s^dVi=YhGQ?`lde7yP^aDqQ^wEB7CcG^v-?p&B<={cJjZXzeS%t@SHRt>e%B
zoA-0U6U%=YXZs^XmimRAv-|hd(sIx5s~;u&h12s*yw!b_o~c``FIbnh|Gdp^*Y_2x
z9V_;P+B2+nd~(Fo$NJZkpNHNg&e&4((4Wu!@I!{xym@vFXII<uZY$#ZFCDqc&om?R
zr_wB)nZI;|k_<jP`*Zc^>G}25<zIjPsXtuvaQAbQ)LqLuB85ICcIk9g$*H{CcT`k(
zyY#mW6GP)(ylR{GD*M;jl;wF@n>FX2Y-+LY6qC}u-kRmPMB8ZlwAgKi2cv!z9&+N_
zKgTuEYxVT6HH=X^lRmq?Xni-e>1y+VcE@WkcWpX%_=KssS<8F9v~%u@Rc6?KTqk<?
z*vSsddT)V>b-SiM-L_#Fca*Sy($|vGQ(Hf@sV4FCZM~?M+PCiRNv+_Yll~;uY;4*5
zNZRVX_(VU}$M;^8mGO%OE9g4CGnCP1;&b}9{=yd-C4tJk)l#{OgqDf8PRP|vU|Bsa
zW!JAKA6JBjx;e6!9%9-PE#1Ge_s+{*`OCKXaIm&)khoT_{P+ReXP(J@YdFGJcF9SH
z9%L)pROUOw$m8QOiIcBZUCm{e-aT9WkKy@9d7Gn!^?3!|j#4|*SC>!kHkNult#13X
zl2y69RSpVkH{Ck9Xgb^0XO_}&H;SW;MR)9Zx&5v|Z1h^E^)J^+|1MXNnd{wOeK(h_
zmdTvwSD5b~v5T4+^XtF*JwJBbreOW=tUV#$56)w_#$12IO6KY3x9a+z9-OyleQv;1
zqjtX|Z9eygc{Y+~6M5dP{Iu&x;ghi1%*LA&9=L_BnmD(0l3?VQgFdUXF0kvH#61fN
zl~pt-OPuvnR(MftK(1!Zrpei{FZg=zPvk9TEm*ZvU4bFui|h4yPKJw`>WlB6HH|S|
z$M8p%a~tat0q*~s{(gK>*EiFw^tx@#rwiYC{skoPH8#bZuif67dvo%m(~0#n9)6JY
zx0`vTOz2#0O7!AYQN>OoZ_d^p3JjYb?d!^_t~iG?=E2g%yu~XPD@m09iAwjqd+qwQ
zJJol;1yuU@N}8yz+xO~M%=IUCH_xxDw_?37kyR_f&z+Ovee1YH<MA^L3o{pp@s@ME
zKf>naxXvhc*01y=uXkQ|toP{m9|`!O)8PH<hy+`pgW(azN{bE)73RmWB794&B)v@c
z?GImdHl?RY@@+@%onEyZKE}I~mOYnR=fiF3GHdn(1-pQY6#}AtMK-4xUq4)X>c4o%
z?0SYp?ga@y*pGCtQ#)Q2`{h*I%{$SHS>zTmarj?PzSqEhry_Ovv{iR`f^|chJPkMh
zx?g$W!*Q7}96c%<!Y_v~G%=q%E_s`GV_Lw9c4PllKbW7NJCRx9DiOO?v!1<FjN?JA
zL*}0&aTmWA&)}YCest3D&eM@U7QAj)|Ji~?`M}S8_3teHH9WreXj0L+#tMh7@YcN3
z!7~}9S`6g4ZyS49CNdn^6WF|2r_@PUW#UnXj@`bQiB4YER$h(p|8Umt6;r;v^5yX6
zhwhU4TAkH-n;vnN6kk0k)E_#@qQ%X_=IuGr7mN>g=GRsK{Ua{Jw1Vfuwkht>Rk=Sb
z_%=B)<w`9HQLBIP@PSg}gmYc<BDxp+YT3^cUeUW|<K0s}a~~Pr>7IGKd849{wYA_g
z1xABo?EjLcSuihK`Hzk3j%fL|eIEp@&ZI=eiwN*Pk*r$r@(8Dnzl1=*&925TTPKH_
zt4)|I^?v>~MPv6(;#|Mh&7Qc?w6t=Qsi*L>qsfnd|2+JBa{3n^^ZKl*4fp44c*3s3
zd-O=``FXV!MvotNGSs*F>lG;$#NS@`)#Dmll`L0u(V-_hG8W(YvHRu9l*iS%@dAl$
z2fg213Uermd;DNhi<zlZTl40e&@G?$-D_*g%3F5t9^>CXi)5Ex=isSsII3Bc;m^AE
zMdP7EX+FU+JJ(y?UbgLv^)i91`aE8bV|CvTw%v>ik$G3hx;3wKx!<=7cMnhd_S?4k
zl4kL=lc}N8jpF5YChmNB>e0N&@5iqnGvr@-EIdX<Z6k-54(GIE>n^^YcS9!QYiM2-
z`$WEdyZv2j6=yu}6@T*Rto)L?PTmCPG<}~lTvZ>p#fw{Q_OfE$w#0*b=HsVFZ+jo9
zzjJ+;mc6f{Zl`CI*V%N%Q*KIWby9vCgL}FYzD>B=a+2@NvgJ7}g<Df&Zpkdk+s)jl
zdBt$~2Y$Pq(~T!h=(WqA{pRDH$=NC#UoYI0T2^?(MUF{&pLxRSD!0&gX_@_Z>eLT0
zsR-Kq(XUXeU9h?2!9o6#3lYEXz35oI`T6wq_hRbjoLN7o^3mz@MPCe`&3LfY;n~_R
z4ypYWdWC|{A9#;{VDA&Gkv`rL`C)JPbmv@;d2VW9KXTiHYGY+Mb{_R$Xc76<=lA~D
zw&t!iI`5+H@(J|q`DXnhgrP)hSN)ZZjlZ|sO#9Dn^G(rxuT9N#Uf)0dZ%n%)t9}$^
zN;}?o`QfbCrTB||D>me^_&-(RZ<6fs$>Lyhw3(IRrsI3;s#k6HrEI3ZPwsqA4!@+N
za?32^SjiM!PlK%W_xJzJ@)F_nUi8I6wXeghIVW*)vWTJJvdQ@g_nlV!Z9i!DXWsg>
z{|xhuM5i<U6%k=HnjRp@Cdy=PH2vUPR_%Itr+DoZpAG@@NhfCCJ+{)=ch;?S%Z)vk
zrK&_E9q#rDD!aS>y`I<<pVn=~ne#as9^5PV_NJ+D1J|PmN8kKN`u4>ojj?}bCojL=
zx~34Lr4<vpW~4f?iJyLuTXDo>w!50?!;>+`9&Wq8txWEu3h(;d+oHaA&)$#U!y{5(
zb6S{l(%o>k$FJV}Jo;w6WcyKz2i7lb5~F4(1fIROufJJ!PqpL`pIJIP3awW=q|W-t
zvtPUU^G*HDKLRID)=@k<z4)ZF5zpE)PL|IVh0o1$Jabui;k#1|%_=kG8gJjqnDkli
z*~^3OQT=vJit=~%&MBVPQW^b3-mAw?>(KRW5o_!1P2TRxoVKMX?{k@+&yI-8e`41>
zK7IZ9hX*TOzT}jzRI4}@qQfTYeOvd|qr)~rkr{zXKO(PuvDw}&C#zO%c<t>e_P=kA
z>QuZoTdE^z$zpV~IkB_l#Ed6Q>^_GJ?}*R%*xAEW993Q$H?2S+SWjz%=euulro|uD
zF72(VahjESvz{+zzwb#SpBIVF<+s0XdnH$>KUv4~YIueCY{!fJ+wPoEUh2|O5bV`9
zTZZw*v#D?27tT7~bu{a_PoVy(x0mLwFf3X0;m!4FY~S*C-}uI{I{mZ9@|XY4E?T*2
zPn=)d>5OR~=62b?T6W5@@mZ$C+Lu2s-n(b=_S0@nZskNC?-C)Gn0lkNJ?se=b5F_i
zzu3mi?QrZ?Wxw+DoEif@HtFq!;%wWm-7<PVckzzRGtK5SCz(pT>z%VHP-@wvM0tTJ
zlQJs|&!<%E)_ip}A+*wZsp`Zt8m6*yPc~#6{`R7pVQG_Qord^H!IzUfPdp8DQ0}?E
z#E!Fa`}u{14@AusQ$%=U_K2RZKlH~+-%Ck8#{Fc&be5P?nam4PgAXNMs8*WXtIWIo
zLQJJ)^OKK^P7RkMTHRBx+syoA^GU4#k2LGH86_r+_x!&+o_Kb~#g|VSMZbm`Yg+lv
z^qBlo;*<*K$HO}rLc%KFce^@S_-#3EsH3wjH~aNGHHL)Q<=;3jZRdM`(v~rlC8_@F
zPmLY(OysjK&bz>OX8NIMj*!jU1=RMb7*DcDTgP$3%v3X_{Fu=?d9CSxHlJGR6EW?@
z`bTFUD`naJ=?r~+%UqbZVWZZ+lkHaDIJ3FVKC1PzQNH$e&EG{_8v8ad70s*(uB~u>
zs4JzSVsVsp#@f^hU)MvW+>=d}yl38Q7N2>ap+3pb{jtuQS*I>>JW*(>z22xjWosUj
zCC^!>S62@ktzdtl)o2o1vSojfP+sPv+1#^4Oy8*QD_hkyhfVsD=MjUGtoMEhp1N;i
zZ~gaY`{nob`)y{q+t^s!TK#+ZGexr9OaG~ClK6zI<7c<Um6@#D7VE!w?oNxyTjd)=
zOlNgpUO2s=Uiie+bNRca4O2{2Qz{r&y41ZWRMMWNb~EAB>c#Ts)OSkl5w(ta_O#1H
z{O_($k?V~;o;I&JKmF%2`CB{oEqvZ4v#U7HZuQF$+n5!fKbvfL&vm(ZT|i6z`?GBU
zD-OF<{Etu*ShrtQGH%P+GUl@EsXM9`hyJQiOV~bT$?hL|MLH4nZf*BcXWg-^nRCzK
zL#E5uizf;#XRo>2nOJQ)-M!_){rEY5dn*2ZJ)6>b@|~QmvakD!70WlW+U=WrNUXu>
zop)m$OJdv06n8e3Ny~H$r;ASc#8fkVT2_M)r_L6aHrccJT;Z1!x17&kczEjC+}EF_
z@BK{j5T5;5mepO`#(2%Y4@c`c-${HrmHXTJ_%bHmiy!Tteh7WH(SKS0f_R}_;?6fs
zxoQsSOCNA(Jyh{#2jBfQHfaTW6j;~3t>Jm4y0_pb^Z7hxqtBDnLgII+yR^<@`oMaW
z*?o7#gC$w()=s~ErB3(#-^-Q4{eK&(Qfn7pHG0tHIh7-8{>HBY=YG2^*_~~|&{?lt
z-Yd2{+r(r|`TC3P?)+MftxG;S`57=AUapXO#Edywhp{wu^GXH*=Ew`8k8eJYZ88;h
zyEFU2pGKDQ3+_paSMjlxU6^B{?J#q@%6eP(T<iE96FFqq*YVpgEZy<wiFWi`t2x?d
z9!iI}H2n2A&0jEg%75YOwZH5W<h#Oe7tM35U#Pq2_a>{>g=Xbmdsxa><=*U%R-X9w
z<^7`!#UHY|f-MwUkN>(@HPvwI`^9pr1aGPrRy(l??q8%jN$f?$#eZop><cQNxJ$+5
zzIJulqo8tWo}G`ziKhS0GUS|IW<GuSOiI5?xG_Xhc+UIitKmP3e!Xu^x^?2^srL(N
zHgEgKepb}=jx^UVQ<lx^G`G)N5F2En@VmV4++@}V33sG-Fm10fu@dT<@n_iwncH&S
zPf|VwZsJmya&KLm@8WkUIS)S6)EWL3{}jX<0PfE+8yOjamcJ!28yT5x-<;3I&oq5w
zK9|V!YlU1{^#{upd-q!NSLdIv>povsdDy8xLF8da#m7URC6gSVu!=06V5C2<dcIX)
z#Xr@$_ZuA)PAUIbx~pnto&WUL?Vt6O=aw+D3zo<&dtR_@=DJI<yKbI}pZoRk=KOS)
zx)$4@uYN3_{+^h<_MBbq!Fw|A_I@`=3VdO^N<CbTzt+X+=kBHT=9a(z^30yl`o2{|
zsLA^X%LQRa8$mAKoGm`fZ-3cy+VjTA>$?|i-97(Zigr_2;mdfT2m1L<2VUrkcs$r3
zlU!bR@9WC@l3$PQef?xv`Q7XGD;WirIIODsWPbPiuf*wVi|?M>cI$)M-)-m3UdF`N
z?m3_K{VV&ko9SmFc6ok|Wwp|;kJeq_DX}PE1J~ET*@3qmPal1^Ny9;Laolu+Cx=(9
zeqPtpP<SnJ&3VlpuXz{FNeSeADNShH6SslEcDdu$6eTCSg==jV*gcvNZnL8NP>cE>
z0mJ#*zcz{<Y|P)qE#2DCuft%&!s+)lqWHjn8LO|%;bAKi&aZv7a`)}^4a{PUhH~`^
zig#|LFE}<~^RB;@yXNL@>S8Z_ZF8i<{Yq!4-c+?k^VjMx`~CFXw!$9<Z;$ufK4kTx
z`NzMHYc9|Ip&{_c<W&*h>|To!sn?hES8^ZWSe$hDUB6oM>W99@)&0gf>FYBqCi_j-
zT~eB`O=)fBH^)x3xv9}xpP#bzkYDMvB{y+Xvugc{897c$wKpuHD{3~xa<eYv?`yuS
z;i0)G@k(E_kVxbDiiu4=a@^`RJ0y=Z-wQ3eJAaQioB8y={AY7)_?qYTs<r9dUt0cP
z$}G;82Z~%z?0T9ry;0-<@8)w_ckjIpn|A*4{}XDV`;4dT3yzzAB2ueni@~pB4{A->
zL)N#xUVh_qV7&;7(@b~8Z+rD@L`Ao4JbIJ8Bj}YRe{Im@Md``K;XbE-yp_De)g5hh
zuZcT8>dE5<yQwv2IFIOFvb?d()#?I!pI=a)yz2&zGrdI|?W~uS_shk7TR-Wa{DQeB
z3uM&A_uekP)X9GMw&&uez9UKD6B?hst`s-BX8Nb~#)j17^2Gi1mnJ6KM|)h3VBc@j
zVYPazlZpTIUu}F2&tIyYe*b0a+dN~|tM)IS8*lykf6d~XCHx=H?mMcxBjQfi^<xd6
zN{!d^Z~r;x`lfyb3tg>`%n>2>1x`8kP0tOCXWG8}eoXxRq}TV_RpgjAFP$uLRQHY@
zU*FW*rWX2D?BdhB!>;S-Zw{?z<CMD*kl1CT)y92d!RNoPR$rR!v+Rm6cWv_alO;K!
z8!dI3<y9~FJmc1SVtC0&l6~o~RhqJu`+S$5Vs_-arNhh~qLCUfoAI7fb8~J~3PWwd
zjQNvO7#QsyAL->unJ3M*j3>`c<>%jR<ugx2$fjHnTPM$XRF6@(i|e|m^rjg1dR~_+
zb<Ag1xqV>$Uv*EF@#O@6-C2bUTQBu+mTtfK-1x@L=LeGRzkgG_QsL&V`YMetMz^!;
zr$)6YbxW$OXiMtcs`1IS^1rcK<5J-^rZCaStjUaylEzI&P6Dm-Puy5jV7XIO<Fyde
zWY*oK;x;Y{hl-*v9s0X%{<*iOriRW6{dT>6i>-V4!TVmjpLr#;cy`zDn`KYb|KfP-
zcSYpB9z~y>(m$DYW;*D^<(SCr^G}-a-aym2Vs}%&b8`5G&SzHzXE8HO)$?UAa(QfV
zMTOVY^Xbka{fR~TuVQxVXRwvFtG<7!9vr=5nep$h`!C;Ix5nz-wJ5ezsi(NL_Gevd
zWL65XsyA@|HzhARrC>v7H;;s?;#dF4j516zyCyO|-C(d!llkev6pinOfpKr<|4rkR
zX+NUJD17pC;T-1EqThW_-~P+Y#OBNt?@}^FSoGq_#pfayY&`o<E6QlfWcQs%4>Ldi
zwAWLyZC&pl@4ZLMC0qBXg+7#3b*o@kzvS(3X!6-F!ArU7Q~zsz**~Rso6T`XTdl$w
z!H*wL<M~&xTCDKEMSH{6=ZPHl3-XRMY6|Jp==B{ut9_(UMQFE$kIGVuk_Q1(=7jv%
zA8c8?I3q@3l}oVumI;d<E)wBAJaOH%NlF)|^Xf{KW-nZSVq#9oitqn}y1Dm-WEnnx
z^6b5?;MIp=^H;lmb6iw^Ic`g#q5xlwde%haQ?Eqzmrg5uUsPc2dGA2d7rjRhcSIT-
zZ`{bWjBVLp-Zt*dOSQ7nc+;FF1akj;x>M5kr;Llu-1O?~+-$?SZ@EsHf4*_hYnsiv
z-lj#<V*eMc7L((aZ*8>bJ#Mrn%UyAP!^M3klI&e1y3=*`&HXaj-u>(y+j_Q!xjWSw
zt}kO+K6|}H&Mg1WFRw4XvpG_7mT^`{vZS(AQTyuEnmNycV~c*w+}}TG_sgQ2x|>^a
zt<GQ8ee<mDfK~rZKP`m?Z3#Ma|9H6FD*HUSG9dH7oc3)(?-#1+GBx~Wnm<jd*y6(l
z->fr=FSt+rdiOTe#^WB(@e41GHcxB1RzH#Bjg*1F9*HX!8=@!P-%!22?2h}%h`IAG
zb(E#OzIr&Wu2#iAL^8~5pa1mVA@)0NtO?)N^v<tbEj8vyZhY#$*|q++Z@fte)V7m$
zmhNqzzFmCd(i+w|$387xRQIm^{Lht_^FGGpc1&;foD*|VY^jWmOn2A=kHeQgrK>Tk
zKYW&2&(S`iUpTMJwTi1ix=??o#Ay-5yeVfUI=q==*tq9f?hb~4%;PK@rr&>Mc+g?*
z>vs09O8)cCnn|+!v05a)=X2?<P*#P7c5f>_hW<?VY58hv(Z5RTz1G~k@3Xf=2J4CK
zzcj`2iJ5%ij*HLFq$e)W`mSym-xjrR_IG(6H4*pLZ|(JqFBZt$zjr{)V28)LJpF$k
z1!t_kS7E;SzlA~Ax9bP?%=*j6Fy+m9#uc^NoIll%{_CF;I=4~7#AfQ=_uneF<#JT7
z%2++~B41me(Jr%|7^@v=e)2ij4rRV@{;_=Nh8}OO9iEAj2F4tny_YvVQx3k7QeZ3f
zzwqv+mGbS!{j!DqtF^^mAIfn}ySzr&sC~WK=H|qZ6tnh^Of&h-vK5WL9K4ZPslzNi
zWyjBw{)0EB->Tx0st@}S8?lZfH|n4K`*VD4fr7VWj&Zlx-B{Clp+J7}<x?Md+%-gw
zoP2(v$H3*(|0s#RM=2G>UkzvO>7AYZ!F|^D%hyf*zmho2*wA%Uts!*UX@0h@>r1l*
zHdirjt-17asots+(E@z=*UAgzJ8n(N-W9Q;Yq{EmYdd}<EEb#QB=0n*Ud%b5V{Pp_
zjkW_Utbq?p)&6#;nC#i*rN{nQ<)1}X+N+5IZ+uJ@b1rZBxI4jBv`<56>-*-lK4pv>
zk~VP$Om&+l*LA*T*S<RqjqAAY&PkV!RF8bVDXL@V$6nJpD`qXJ$(ns`*S3b_x#z#;
z{SWygK6%>PqMJG_;*Zy~JSbB1x+qi6_hDy7ihR#}vDE<__cTj|S6@(YveB@at+T)<
z%6_lqr7fX4rkB^>y%x)$aWsH=!M?t}jz1=Px>2w0v!;5BhGw)}-7j|H?7z8oXFt8w
zn|m(zV`tSxt}DM1=AY~O%-0rNw9jnL(UP6Hok4utvlnifu=PaqqA5XfPe1Nwn<w#{
zD|PzeC@w)}BV&u{AAc|kPyhIVQ)jzu7gsK;*vu2F*p4eJeX9TRXoorHzubT9Sub}n
zK%1Z@X45AcG6_#V-Ots}cy4?21g@p*EC#3S=78lHji!S(%ud&x!L^K0X8V;HT$35=
zdv~*$oLkJ85qzLUdgFyqF@yE2XRNtqbo{Z~9CJ#1iekVI8KzVpmBucsS??2>I16T&
zt~PkAu=ro;?wFWKj=?V{Ez6mubM@MRCv*L_RZd&5`ND_px>uW5ugN@T`sP&cGb0P@
zuABL{(tL#Sjbm?3-=b)<Zv8$TJ?rI-?aTZ&YxmVR-?5i_a_Du<GMnj5(kW^?j%v@>
z6us#pP-i~B%g^oTksmq&cXrmCd~ADUnc><4x{>=7t92YT*7#0qNbrngTEuF#`n<?z
zMz!F+%4|~)IY}0?%0p(A0bA4<_m-sU7x?%k-sJw{d2@F2>tz!bUDfs|bZwck+VZ>L
zRD&%)8cX}->mwNJcCeQJ`I>C9vr2x}L21>~@4ctppQclwv^c0Z+V04X{T!Pf2Txnh
z;+gTi|F+50yod&#ri70!b$#D=nay^J3@+tf63{;{xg~d>-d4M=>-xXB!~Skq{cH94
zZq=RXF&#yx+Tz8OBn{1Hh$-b&bu9U|uq9Kz?!H~je^Va0;7j$h!xnw$^-^J<dZKjQ
z+8oi_U2~*Z^I!Lu{4)?c^z(h1bh7wF#}_)YWpmy<tQYvNCVOF>#MY=OS8i|0FpIA0
z%oJS_xa{F<$?PhnFl*cT)}FiP9@Jmp-S+s+?72TzA3odMyxQsAU)v3SiP!6e*JoU?
zJS6Z@=+4`ZT=5T|w)_0NC{n-vg@w8>v!B|OgWg@5aSIg0lsWY0Tz%wv^mNCH=ZgdH
ze-6C&twv_{Joy`&Sl?gX#5(!+rq=8rjWhkvu5#>&SBrdNyw1uz-ZVAQ({+wK(}wKd
z(<*1QM!yxeRWN8b=(SMkw|`oA;^8foFH_Pv=05+v^}^gHEyp9vzxeKAH;mmNU4P_A
z|D0ka&!ft_qNi`L`?In*_3OgoM$xsR_Y+U1PcM6=u2u1K@zr}9mR^lvp5HX5qQ<d$
z_0lMAuScJElpTM5_Kna^#gZGTAAN3w%l9wJG_pUtN~OAKo9DgSM%U(yAclZXbB<bY
zw2KHIS-Ngs#{0@t*U;c~kB^kRFksQIjnm1fe<oWO;PcEQ|AK^&wt<SS(6qHav&5zL
z+}v>M$mBn|6Q;0gnkclg2-P)|s=Tmvm)dA4@i2p7x={hEZp@D5-ffnvdXE3Di_coE
zw#T9R<hi$8+8sGd_Eoltu$_8gbnY?lwjIi*!ha&gX76zOu61wvg|2(A51ryPN`9Ku
z>Gm+}{ib>rlVf*3#EF%<e>$jjHFVoa&sL2K8F!~R%zDG~ce6F;o6<Pxdr#S0UNP?I
zxU)U@0w<GJcFL)hTonnAu9Ux1$V)JtJIOWX^5h*+3_APnO=9`~{P6RuS(V=JS5M#D
zyIm{$o62H=r|TbE9;mSUFp*nBTR+sy)|l`29$mrJyKH&Id+TjYiZ{<MFVxVy$K`q5
zI>3BN#`#w(-a7}KFjG0YqN(BHhNcDA+N3gm1#H$1wrF}*o}KtYeQU!LeP^#){VLZA
zzA%38(=0MB?1Ea03PcvJP~#I6$mMV|?0mL$UDl-+^FRK}bYCue{%6key9S%Am%qQ0
z^GI=b;9j{|o~fzfJ<sCm-+Y*%$sZ<G#MX4?jqy#V_a=E?YTTDc`u>lYE4xJXPV&6<
zxB7~27e+_C+;n!e*`9)ez$c}VZ}^ObrvJ>kvG)V_y8|mHsEhiZe^a%3`l@TcU;TI_
z&{A>l+2gzS@=Fu7ZRXhKs@NZ${Y_?t(q$Rv)jK=B^B*~Pxp&*9)R@r1O|6^jGh_RU
z5AvMf{HgG_uU2dO_3uyHYn1H;_FY$<&9Hydgzx2%8q0R;NPPX-*v;c@mZfPQV0?-{
z<Zqs6ZWPNDv9RpSk_S3B<(&_2T5&*CEo<UDS??J}o8PR?I8*3rk-db~-fv}g!=sB`
zw}pE3AN%E~WLK3<wOrpZ`Qa5cf1b(9uGh22d}}=xJ4r6>X3$O_*So4`SLw}OlILYL
zCFrTa#;dpXwtMcG-Cup?`;~*ACqI4MrgXyYS=?QZ0{s*xpOZU6+?jaHS$h`992M8&
z|NG-o*8i2Cx18~@buiq@Ibrrqhn#6rhn8Eu@ja+4<`(M|uRm>dze%=Z_aFA6CBN8v
z*MIDKUcVqY#zJrvpYR?d4$;`(4}(^#G|Sz(yI3*&U{PUOV-YKNjpZVt>4pE+oPKq-
zhVStAi@NVSviB!s{SeX)@>4z~EwN_JshFt;i;I?PwtnP(d8SclUcFgimwRJN-1l$$
z!ryBN{W&o~OG0!`$1_`N(YksGr>`FjTHe1s`8;Bm+632#Qpt47Ng^w4c3s(c_+zh`
zM_r}FBfB|mOomzFwNcvnRWsMVi8bJRVPsw6v$Eo|QM94OE<RySj^z?@onFDuEU#5|
z3B9l>$e9(8S0UYa+iv|k|9|{V4bdv#8jsn?%zXMoHBJ#mi|G^3b7|K1MtGOs-obb8
zd3eRjIl<XS+T(8S^qXb2Hs822eOJb=0G(UUI_2bSC%yjni;=@?Ta4=EUSB2!S0?$m
zFKV+p&3D>W@3;B=xVb~^OmVV)+T^EIkGR8IKB_#KCtYY5xoq-#zRy2?_CG!AQuNMk
zA-^~8&%JeLN_MWCbhoVk&*s%nZ`RwV^W3=C@>P1{fv<lnHk~@Z@Bari%@28M^Rypj
zd`eRJ+}Tqz-F1iF>^t-SRzACVx$^k(l;&U~iOmhZO&SX}*N7kFFK)}b_~iGM?>5g*
z?JYdN+{q|CPIc$1dk<YK%->B_jbF9sLaF<@7~@Ij-d3u}e80q1Yw>(yu<FstQ+F4O
zKd%pdCb8~$O`v`m`%4v9FYk4CtxxZ}zpZ~)Lnn{z^KDx4##1Ms*=6$k+1o2C#J9X|
zE?e%iV_(n9xX4Q{HZgo$Aimu5URtkT>E27beZ)H-zUd5oCpGu={4~{?YwXvSGwuIy
zoc+ePi0;BSRXye3=G4wQo6-KecAxe9PZu<^?>;LFudeSp`dWTp$kux^^be}Oxz~KV
z#@0$wHX|d<-e}V|n-xKf?SZ@9p7s~aI}s>)F`@h+-&@<>8K-y5@!4sRv1tQ`dt%~S
zc~<t{-YU|+A7}XOU~IhYwSLOdNu`ZHIu|f5uFT{Mo3u|PfZ5+_`mUhWY^qMn!<H<$
zIxXzUs+*S<ZBaXQuzrJq<|(ExUD-~{PknQVnR@iK#LC%PjiLo6dOr^Qa>>k&&B^%j
zfODqls#Td;@0y!Ut=!-CHMUe=nkvA#M^Kp0e5aOK0Z-_|>ux=#S;|#~-LE~hEC0iO
z{=3DW4cy0$HXpB5dun}Xf<U8mXF^5vyMv8>KKC<IGk(3`y<BX+Wtn|_`ZEnh_t(nG
z8_bzH_v<EhUR+=z7Wvo2Pc`C>w4`cZZ;!UMa{I9p9)_=&PRd4_oiv&%sOldU9dKvI
zFIRybd)@EU&(h5}>w7cIbyB3Q=S!}-Ca%ZpA87r5TCDiu%yV_S;}^6pMYx{gSgYjx
zbKQ5_vaE(1<<4^Rq!i>#52OoA)~8A&NASuv|DArOC2jt}voT$JRf^gR!&XK`zPl5_
zZ#lp5mj26*YfI96&iQmtJJJ8(HrJJX$N#qL2*kg5Q_!(f_1ry<vn#WD+;$i*PGH<s
znZNkp<(-^i)9Q0~e%_RO%PaEL+}~#}>2nI{@7kcX?9HW(zTXrlvNdel=p@lNqxdRk
z{mVz3t|4hR&EFl`I^SPz^QIN^-|YQpckhGNvj&^8b=se2`Z+q4DDqc$Z=d|D=eg!)
z6Gzofj&)PtbNt<<cBRs9r`k=CLkEo$-beagpBm&M)26Xx&JmXdYfj$H*tGK0Hjm}U
z-M_zlqVHzjdy-os`}W;+-7{-9+<SLfE7N$d(#+6J_0HNQji%>sJDKk|JMV{evFPMw
z@tqxxPmBr{>E$k}`87vGJM=Q&t_5fJ^YWK3&-xHGMXI;&5^qxF2j|B(FEw|)HtFVi
zJa^y6a{;qvNd8)AYTa`D#n}%TbAziEpR-(igyZC&D(+>~S9atINVf|xI_%xLf&JFr
zsecxAl&>^Dsl4=H{h6+q(o~_2z4Zcir%UFptUI4CtNpSw#q^KR(ufE5gw{!~N@Ixm
ztP;I7K=SXa*<zw<_dUggE-CmNI-+thMEO}((zi@;b%B0wZYJZS$qyFIZB%S6GMF1X
zD`;u*F|)mk3Ye`<>-K$jouvF^LSFgnjaxS#^;yixv;5x-HQ!G&uBg=?=nQzUZw1$U
zrL;|1?<V&yz4G){!}p^FXTD8KHhn1{rXR9*sbHd*45Q3sjoPD3kE^3=*Q_a-l<N_?
z>*lk^ky?-Rp4W=aJipH;H)~VR!LNDt=k)Y<O_=fi)-vta3JytuI~VRqP2vd1-@brL
z`f~}>U$?l+J$W3>PaWT{UVF+k#HIeXp}O#ya@+g%o@Giq5)LiD<oqS?$d8rMoPxU=
zEj)`R?S1NAXYxUL{vVDN<*Cm#MZN^So|bxt^Iv`8^24v1#mmy%lq`9A@_fI&lxdTf
zX$#>NYABOR3CrF#MdEbvPQ3%|D{2o`=pOVo{_DT`@-{WCYXP}i{ld8J?p2$3PB$T=
zo}r^@%1Nsqvz9LY;L7)tXU)604_ofN&q}a;<mx=3_`~9TNzGaBC7xKQPiW6?nDg_-
z@^3F9^QNwq&ect`Yh2*^NTzVds};5mhxH74)EhP0thB83CMv&7==i>OMplZW>!*bu
zx)&~yi<#~C&vwC#zhP^2erk06e_pppi)qvK(wk}ZE8jNj>AubWIz!~}Jq?!f()|&3
zSI_Rs@QG$gy&8X7`}VU3Q-7&`uc}=c_N<8^;ssZlS*Y`xceABczF6+9T`VuPu8D6?
z;MP_<pOBAhR&P2HdhtfyzM%8FuJw8yUn|GHP9$l<+vnU_56=EwwPXe3<tgDGxR<SH
z{O`&naQ5J99-e^ufBzc3ty>hFZ1Es2LC(K!vBZOq3q#sN8gB?}v=L!`^!<&#+uQr0
zkDS`hx$jt}m5~!~$;7}RC>A+s)uNhf{4qtr+3e@;vroSk(5N*@XUe@C%{3Eu-!wa!
z<||}X5-k4W(V=I)u@4qEuiVtfKhfbVyOo)kg#HaThoY<BGA%aF4XS^C+~Vb=^Vjvl
zXaBX<n^M%?mVajALf1(bcFrpaJ>;Csc{}{*vh`ejTHE92PW2S8`Eezx=t@-im7AX!
za$Hkw<Yclr_+I^bP`BmI_kaq9jNsEVqKl@7R4k8Hxi|YChx>fr&C^s@&tJB4;kLDP
zmrfi@;#*X*Eq}u!$IKP0<!|4z6RJP(hjWkMjIT#m$Nd(6%B}NP=$H5JNiBj(zb3Wt
zdkZO<s{UR5TqS$qt7S9)8oa&q_1=ZN8Rh~a5#dYkDln&*UH)`XxamlE?$<w2(Q>Zq
z)SndUZTQM}kv)92y6dD@<_TqU^d|g@*Vk;&yFXq1MVC*sK)|d7LvvPMlh^r2nHt0&
z*MHR9^Cz&PwlMw0O`)LWC$DK`8byoSE5<sc`~UIQ$d;B0+U6$p^@YM#h2xpq0=_)%
z_U5=*v~ZTnaX(M>NMG(>Leby!BX&rg+8^TlW?9)MQv=alzUr^PWcGFRu~tg7w}(%-
z=wWc!AUTNZ#_O`(>*Kv2>9iSrykd2x`+|+&O!oTR$MTc5eD6-Id3Wrfex3clW4T5q
zE2jMVv|Ro5iZ5xoQ5<>F7Ih(3pVnPxT2#x|dhwy<oa0{<)L2dUe*HhyWjC2SQ{!h&
zfV|0<=ie4ebY@36zGde*ps{V<+Bj30hpN*g9Db>1a4CBnwf$Jn{owG#hA{qs%|W}D
zsr7A}#QAq-pW_*m2Dfc_yV*-quKnH>xZcF%j(yq2hpU(0l;`u3%U5l``81cE?e(b-
zEDAr^UKuj;U+(_!<LaIZf8%w}|6|>=tr@z%-NIy|fEu5rxe=GXPikIzNrr-<<#d5_
z>{|6lBct=9&4uc&uYZudncwCKPr8R*50f9$d$AKtu5Xxj^L~18i+$b3l_5Wxmi({V
zzi`QsF4gW`48Id*KmTC;q~O_XY1w2&@tB_0*q}dWZ-#Dq{-~py_sGT+o~(kEY3_k@
zRhqB7Sh7X3=+xWAZ%m$hE}0OcxXnDm_(+PvZ`F%#kLr~~qjx8nE&ay#y2JKZSLd3f
z#jiG)ge?@1VdXXJ5?HWJSA?l(Q~6Do+|2@36K{1Gp8Cc&d-4@C@4li<XPrw08gk4m
z_%`0su<A>??^blCaRYnbDb1U5hRGpP>m1~7OxKu^bW6KzO^U%GrJc15J9o~QCAIEG
zVdsKVQnz=%3F=6!clx2lYB)1Tr1>Og=(1&ciyjFTZwV~bOqDh~v*6&gW`WE)IftNi
zxnkVc)wsGRPmoyt;8n}5Q<@1a`Z<Y;!CnVCTW^Xr%BHMy>)_??KAYCF#VYi`kvATl
zhLf@;N4Pl8GI%27yNr{~XZDL5u0__Rhop{HIB?2`D04CDnBHE)Qop=W$~@<a58Jei
zo^P!Uk%5U_4YE^jZEQ81^kh@5g92yz<M?2fIPH+0a0XSgqD{RA-sP-*bYYuyz$9O<
zIdP#ZUWXD*x&y_QU(eC$Nth!xXZyi3Et2Y2Pq}$cUVbPtso_+Sg7wr}9-Dg?o!%H3
z#i?v~NGrvF?-)aAda(D&uEzSAieWzIZt@tV<ZWp>SDdvbJV!UFy<OL+q)*U<)qG<l
z$JDK_o;*o0+EXh3;4rJ+-+R3O|D9hSVfBNfaL1~4kGx+$US2+avfqARPg{Cr<NS3C
z&Zk{wFE4u3X3WC2s{8!86EZ#G{2%y?5B+gGqyOm<qmD_jUfKgri&K9XQyy%Isb`Si
zd~W)&ZHLd7Z(jZR<H6d3!{_tQ-zhMxt1O6D-Sy-3c|qan=8sb<m|q@yd3Z1D+-;vy
zD(vr_mwUhN*zd}WtoQ#+<L<}pn^#*X&lIPTGex`hh}-n?AGdne6+d`cVs$u6{+Z&1
zCqMIUv(4an-oM{=%k%Q>m;d{<UEjR>^~ZI(a`kq6|7Gf=?mbX^bnwZ}L!L=$@uFUr
zUoo%fep>7HVsVVkAMqWRmpv^u|C3y1SiIp9fB1I(#r4M3=5fkQ$HJG*TCS$!@6&Nr
zcS%~`yodVd-|l64#x`w{UBk872S?;&-Z3{{wp&)AG12VuQ_Z9E3fQ?jSRXWZxH!%e
zJZW_LpG(&I`e!E#3@1E&@H!-p?^Kb2eWiDEx1&wZgpIa3oSrTlCbCuvOgj5>^Lma&
zQH%T+u2X$tyKm22-`a25IW|5MR8B@0IE#Ja+~vf?-Z`OCyYk`=*9lt!C-~Y)?teSy
z2s=wg-&Ob1%UHj-o^bf|HR0g#_3fGIl79YvxA+cc-mbBbudA&8Kl$&U55Er|o?kED
zc7DG7@7Fh{@6S87a{k@Bdu~M=@I7J`<!yhWeTh~4lUn$heOn?n?v62keD~?r{kvqA
zZMN52&o8i6E&c(o_eGbR+e>OpZnm{@wcnTj_hZZc1rIiyKXHAD<Sv(=P3ap|*k={q
zJio*Ivb*t{4==xE&AHeAeSP1vdS=!r*E>!VA91!#7pQUD*&)U9@sF$g4{42Rn{<=#
z4YNAmte?7{M@=bjq0Lu~>g^VbW&8y~{P#_rr+Fx6#it2TQSM3y!ym>Tnw+Zn+IQbo
z>jh0$t)(|V)v5}VRaG%vb*Iy9`J>YdIX`5kMf*0~4|;qrQ*WJT@kZmbjdJ&wTWZ%A
ziC1RL-1*3;_~;Iq3x>fFU4mPuD73n+zjkWUFR8Ul{NuQCA9l#~uW9kpTKv;t`J1)h
z+~r@IdUadMY+q_%<uc)_*5yS-8~lty*IyHK-5?;T=lRjKq<CuOuOE3lUn`nanlc}(
zW9fBKDK^={QLw<^PLp!3*pshs-d2>A+r^#HtACfZ*Je>xL~YkwBL>E!QGZ^oRaa4|
zWoeooQe5}*HSehnML%^`9k~+Uw7%(i>!vUj)rvCl2!UTk3+*;c<+)b$PNp$z)w{C~
zUwCrvD`!!vl55m>Bi1-?Rbx_m&wsyLYl~h<Szcx=I>ompl2Jdh*+RW^a_+=^KUZI5
zSYGM>smZeb`!<Eo#b*od*tcI;^n2s%^*<X98}2R$`<fK)lp?w4u0-XLOxM!GUt87w
zeA#~a`1Z#O6+i7>GI4Xd#s#M(EzkPrMVUAKbANT(RQ}^fmW@fq3y(x`DRtcKIak8(
zD3v_Z>TZFvMU#e;_q1nkQZDKxyT$UIc4+lbtgPHBlAFfqytRJ*<ArDRvS+OQZ9F@E
zm+!56XCtl!&AFz<>()4xBUfA`cge*~$+t`QuT`Hj+wi@>(y#;iE-QT>ggoppEo+*%
zX=j1D1?&1d+-=$!%SF~4yj}0~>j2A!Wp*33t|()^%YN*qN?Dg6_p3vDJ|^WAZ?gE7
ztGm?H(o}Xr@Z>j_?yp@SE?a*)ZQnXq?u8PU<4SzWtS@zn?H2aC)V-|hgYVoIEn8iy
z{byR_tnk0SaHku~(zp$=zYD)#+W2Eam8eHqyXIc5E#BhUldLW>9y_`BRo~61%j>pm
zKY9OKnc>Ovu|7*KA2qQpHoPb+bcm}W+9`rPEb{;S)msx5zl=(cVHWGyxUD;?J;Imu
zZT9;^g4^OwFE)KJC9tz-xzUH_d!}C-cXB;)e8+OQVWL&4n(n^fq}}#c{8Vr6Kh*W%
z|8dWf-pMZ*{TA)=mWy)CKkJ-*QK&Zbr7Qb4Rhx&${xdk+{$-zjFp5hUbd%{uO(ro$
z<LQFh9GdkJp2fF!2<`hF{=p;M)qsI1re^YV9X;)D-Cxz(RZLmCCmi8)&GI<acYl5T
z-Hd?QFVDodY?Ag~yg$yagT1?fUEWV`nR@#B#U=uCQf-6}mdL3H279q|KGB&PXmGYU
z|Do&02(hn=3|~Jz{j&e1?}A4yoNE(#my6pteLVT~%aixQ^^8Gs9dDhK(xTE2=9GSV
z%g$eP;V#P@*GMUw-4j<kES=RU@_g#S!zb(gc5Lr^AFbK8rswhuogd34$)9Vf^ZSsy
z#FAhB#!C;k$cpTjm7zLkl=rAD)D4{au^>k8Rj`1G>-Lz78aJN)DG^Dv`cq>r89#UO
zm*Uu|uBm5N`W$X^DSutRE<*Ibacp3?N@ZK<i?z|eY!h4AtBmtjPuZ4~@&0D@)VK4!
zy_N~f_P87|$+&a#n8ni~CN@{2IrEkU-k7n<)cDR8*OeTF<u!ghZ+0;ir!7-C>1_M{
zL&^Ca9fi-gZ27p*S@pV(cWD0$>shj@_jf+ysynhX==me-=~DA=y;c=(lCA$$tCISP
zLH=PRLukMMFEzU^bw2r{k9F-dA23&INVW@`r7e-MxB7i{)mrW4R~{~%Z-4K}w$H*o
zQ!oFJE_-`5eA}w7Yp?UACLG(y_rB1w>GG7Nx|wg}H8%Kq-*fe}U9PUwb<v(hs8Ocy
z;bYCWk2zgG-#YHY;=WJg?3?E=4jsLtUoZ5wUGVS$;fKq!ENqmf9SiKgl=$PJ*Usi2
zOJ$oZM149l<P$9}FIl(i*sM#nO`HAQn_@mWaWfsdqbPG=d74ot|M|ZUf1UopmE#vA
zX*b0+?_xTaLxquRrkwX{d+UC?u(q^^-bbeMPq-2FR$5c(hDukp_Vn28dFRicn>T;H
z<g9J=8+uRPJTu4khWq8R*0nd*mP(0RZnJsq^K-MUa`*3}bB@jmJHq_8vbfy-Z}20N
zy;`fLt^NGdu|#gSAIC|dt!vAVEB60(`DF2E^T7`J&CxnG57u$E#?6lIN#k5#{oZ;l
z$NpU{YsLIjYjqxP$<=wx(~)X_z}41o&vCAc`GMkk3zF(PHU<kO?MO&;n7Yw7H|;Ci
z91CU7-6q*uy<d1E#JXRd?YO_ib?bqNccxoaWSaX1>-)6N_Y_;_lPXr0y1MU5@rl^q
zJ%V1GAB%Ue6`kBvVR5Wb)JjvQzW3cKv4F|B&D(g6?CDq#_@YGr#l|PuYqBndno4Hs
zWEo9+Uo*wsaEWJCeMQ*GomH{VPpGpm$o?mNVd}GL&TGu;A9x5aw`Gt$y04)zDf~dd
z8;9_{+5z{Q``*iaQRzP1ezxlEw@taP|Fo;^C}Ml;bMegUMJf-4zaBXEPik*x#qKSY
z?;MWbiofcb{qpNdgDZ237#?vhsM@r+GI{SdyA^rP4a}|&cAqNQUz6EgA9?@gvoAIA
zd0jOd)~L=p>REPWhf9wD_dA1qzRE{_nDySDIMcbn&B;(w{dh&!{YRR8lOi1dy-l2%
zvr*)5M3?TgNAeqdexHkHV2|v{*|)*u(BX#ly=Tq)ME?YzbGz^-&YAVluMG>2bggj;
z^?Z_;nE3ur>y+G$x2EhrXnHbY&ts8#^RLTR%IF`Q`|L}}j!Rj>*3q-LCdzxIyr^+{
zr@F~IjCHA!=%)n-Uc1cWX0H&*&*bv|7yIj!;|}{|-cYMKQ`idD&F^|2<SFv?Utm?Y
z6qh}d{pJqoXD{Tfrv(N$A9*-cSIj$U(Ui*5x9Sysp3IzkZPMlR(~ke04yT>e%h!8-
zwW|IyWAQ@SJ*iw;8iK2i2_%=yo4hhf$x5p@KIiqzw>g$9PE$6zoL(F<`P9-`1uNAm
zrY(5g`e2X$QJw0ie<Gar*G$d6xZtz;nTZu0Q+M}ja_c<wl&bq;<lgt%_h0zMO5UyQ
zGj=SLZn`re@L8~V=I^{mpB5YyFDPT@`z4pTQNyFfs=jKSPhjabqpN55m?tuxKXK`?
z!}7XG45ba-R~i?uH}~~j@u2P6=JNC|<+u8}QHR3!ChU2cwdAWVpZvN02t(Z`3ia3d
zq~=<sB<)jvZ&P(N<x<PXFQP`TcvC(^F~=^`k}BC3cHsH`s)w=HuSP3&+U4CUE6HB?
ziNUbIN;d8%=dJJc`#!0=?aAFU>j2B!-uTC>)`^KM>Xkg^RH(rkt)upR{<+L&A{+v-
zCzGaYEq%MD-9x3|duLy9VxBa22Y+R>tIo9~clO4|U2oYW(kJ@|7k#qb7We*x_vWf4
zRt#5fZ(r1z`A}>7oh{p5--<o<B3x3~So3jm%ohc{;9Z8Q0v-X6=ho{havW%l-}|HJ
zricSa)cOVICU^W>#hRaNbR~AH!<1JN`QDnJDjw(uq)hNusafxI(fp22{VuWQ?wsqn
zxtaC%XYl16)7_a?p3O9WO;^0x_nhW!Z@M)-ZuOl~`@+9y^YJao;vY{n9u=H!svBJT
zf1T-(=6(N~T3ywz%w0K&`O*6o^^0Sxp0cVH>+kt^$a}$U+1NeXYQ>J2=af8jbLiE6
zFyS2g-52|PHy4Wk6u+Oo#bf2H-02&x24B1)dMS6uxqS}N?XLsl_U$R!l|N-??C-1Q
zz5LNi-S=i5P@A=nK{mlqdtTQhHHP*%rfK(hmo4%TxfAyE^}qecUmvS$Jjk8>WX6v~
zNzdSw+2&Vr@5l=U?faSU@_)~~d4J?3-tC$OuC1AkER7&5VvS9p#~~ORL61XN8gaU4
zv4zOp-`Ww6Ryj7udFVXun>=e>iEsIF<Jl$pDFH&u3@aF_=j@kPyxCXD;<)J}^O1`?
z*B7t<FjxI}d0u+m>)-b!L+<ZmmThBHyukTKK;hin4CCq_FReH3`hN2xBj3)?^W%0F
zay<IA|NWA4f8X5B**NQO-C{Xc7K3vOHdoc#GzKm^P*bW}CU+-#=1Hd|#r*9zd^bhN
zJ+lv=pME-YI?Ga)2?G9#g+?Be8}BsQas2%-iHB2@L(wc{-LsC}ALCLc_J}I?+&LaA
z7V0^#(`2Pk<iBMnCBu$ho_O#3?U|n!ggH;Y__%iS>R%re*c>aG{(t&<uE{}{<Egip
zt$5|M_w_vDPal1_w5oxbZDo~@zW!2^?pe#6`4p0tyT)fPJ}P4vepGR4sfLJP<%Emt
zw(Vgnu#sc%oA7uc!;dc>X^OAZyOk!k#<4gHDBV)oV-wPP$D{k|4f!p<COvcu+qA(_
zkngbQ&tS#VMmPPRKK(j#hd}6;oH^T0K98I0Xclv&>r?aZ`os3|uk9Wu-H6LqmgA{P
zm|OAlm;6ej+pn08spp+Nba1Ws%8t6VTW5c=TGMVG{9Lx~Xz*PTzi#G_%dHM?w>T^z
z_SZ`6Zrl><!0@}r=j<`DxOMRG(WaQL_Jv#cI!d$7zD$^<A8273ku%}N**i<72zB<Z
z$VqWekezz}k)4Uojrx>&uXS>+D)!5Mm!FI}eyQWZ=`E`igg4Jw<fvEwZq?g$Mk1?b
zoj)D+F=5@*V-*wYbDbyt%02k>Fz27xW1fnO4P8yW-hPf1li&F?GE!9Oq}J^i1H<cq
z%RfeRH<u)r-CSkg`QoP3{D<=vD)u~FYEsxWFIUc0?1Yz{<V3HK1=Z|QtJv!KdDMAL
z>i4GwCAD}@jy!8=w)0f%%?G8=*sta>F6LV%k<e8YIcsM@e%kz$7K2T3`-4)KHJ&%W
zts?q7&|5t=;o60Nufof2B%NgYo^yTH+CvHPi7dI+epfHZyKfblY*_eYxobXG?@pCX
zk9+RTbGBu36j-qR#mwd3J?Hhk-12wxlX})QlBwJ7O<(=GdbYf$zF4kPX7VGI;LP+D
z_vW8I`{)0|;QyER{%YB#bKvlu|53W#FKam!1s*9M*&498Q6n|~1SfmTLeHhyE^h3G
z91OgN)gHf|JjwsP-3<RJ2~BNHrM2bX4bSUtu3dDlP`c9Z1ozQRUxho=wy|5x;XHk@
zSY4*GJ~^kW{gQGDgW;chUm7MbUE=U8fAKa$fJMf%s?%Mu)HUi^ZM85@joh4R<$QXp
z)?Q%fm7HMf6{?;0GPU~Mw*n4}R^4{9gVt<;4eDmc?TlXq?0r{qC4h(HX|CDSGmkE>
z77Q-0oVD+(5)*rJm%MWIeK+yYb>H{BI63d3cgS<K9T_LXw`bRWzqEbJ$FxIlHX7W%
zrh8=B%7P7RzMgdKGFmCSa^<v3WfF?Q-81?5Ma(@{os&7XZuQ$R>1o`r*SIZU{i^VI
zUC>^C{fy@)mPHkt`3A&uvj;jbFJ<jmImP(Ig?zoZb!q>ZlQ*5Z3Mq(8OiaM*sF=)*
zK-0h$^@2_cva`*6FRR~NlKuXj;#<b#tJlPuxs`f<zYh0ENbZ?fc<HUGe1zQD<JQLS
zdA4ockn=jLz)*HiU4I8_u0t-@+Lz(n$_+JHKl^w)n%BI%QzhYaTe@~;-Ikaa%*RWg
zhF^WGEw<UD!!7yAPiMLFH-iha3M^%7<Q*zcY<mzU^QE5Q*cGnu=63yUrqk!wZpmrT
z*jTq>vi50J35TE>{Y`4k{>;1ADc`v)cxwMbcHRDprE2+k>g%sO{dKJ*Fz)~Js|Tti
zlv&y(rq9n_`RTZXQbX;IbngErpDCCAt9$a}umi`mW4{izuqwCnTrODo|9?*M?^kt7
z^#{+bp1ZJn*ZRImGwVMs5}74B{l}|GhaOH~diCJbj>Y}=YgW8m+$W_|zW3bg|ED5u
z?YW~cae`lGy?EWFMHL3!Gp7Axf86~v$7I@k)l(BsFZq+M<A1JN%JomJ=&`A*WmFP_
zcD=GnyI(9B5_o63<jRB=&pDkY4>ksv@2Pu#$!d!Rqh66#OM1^sXWl=84E3@>vb!$q
z@Ywk!S#XP?&VhGt-QQY0YYGpn<5@IElE>xSzD9m$=2HSMzp^Upt$SRmr?o=aJgL1y
z$N%5qqnn%rW=rRN{e8=Ij-P4y^zMX@tKZ9QS4}w^xQO9>+FF5Jt_}G``*m#Nn<s2N
zbmi!Q@;|`|yKGAYSs!kX`e(cMl2yKb{iO$A1r%=FJ->Li!-q{=bph8VDtaHT3ERAR
zr9vaa$yayO`}w$MU+V~JSh)NB+}W#tOV?UGQtWn4<9H$%zdyt?_jK3pue-wDxX69>
z`EY@yD{q6p-wFK+rj-02KAB6;-pzO&zDw@B?}5_4X=1h8WNW@yJNKM9w~Ke5D3@Vu
zrqAE{DP=Pw6kUG)bx%yVdf)5A^N)K(H_hYbIP$k>mB6yr_rJWBC3?#^#4cZWrDMUv
zlA7Po=60^zQqWfAHcx5c;n!0|rs@9nG&C2zv-yaWKz+Q6VdtW29iII^?!}3QSg{07
z+j5jIFroT3L%bcQnq{`+KBMr{-F36=qdr|PW^nY|%vT>0b7hK_x=8ciJJz?J-tR9l
zoXom-)t>X3O3R;o$W>UBkT!wk?>sp(AEw(&G8XaPWDwpT?)`fHvgGLu@^a5I#dIQS
z4Ne-#>CfV=v7UbCUcB^kp_2;}w=4e$o+!(=Y|@5zH)>Yr*GTWU;4!<l;ZE*9)8#GU
ztg{Q+FE4U=r!l4KTfLb;&ccP}*N$HOy7bDVByZm-4su>~Ywf0X`WfVGb-Voj?%J7k
zQ`WG?f1E$*xyr|xd)9V^PGtzZW_)?}yYtEikDq)KFUIvR<CJ>W*+bW^YD{~!(bMux
z*|+)4iF(<stZhZJl=entaqDo^mTgct{3?=_yRugF_u50d_o=^L{x*<%cfH5UMLTcK
z3+F#!$|z!;zHRF6m@WOxs(aNAEZa4!dI`(AO}?}DBphm))pzLSMZH%y*Sxv<a=YV>
z6kE=M>g(%N;>4KOom%=PvZ(5F(f;JP+q-_RoAx@@ZiCOWc1`7g>8r|DMyREK*fp)f
zX7ZDK(^ZUysm1feI?Th(cVG2#;(cM(QD2&IKbP&z&8va&QVkjLTIDaK*qOaf%Rc!f
z66J5@Sh9b0t)s}sqUa-j=hbdW?ooa;KVruGh90%(j7FLKbv-^xvc^5Hz1Gi2v0|G!
zFF)jS!%4Qlt8Pb%RJoTrB^+y+AanZ3=X=@a{UweM9JX6lrvwJ+#`@d}*e}e;eo1)h
zdDVJOu2qp`=QfuvsoAF)b=kZ6fk&_9vd2-aY7=7;mMR;EFZS9PVA{0px!Bhpqenku
zkJV^w7x2oT7!n;6yxuYH{>){Y`?Z=BBOP+0CRBZB`4@TGBW&guQ{N=zV#Q~-w%6W&
z^kTc<lPRflb}lQ^6W9}PcgfLV#qRZ?vvgEmpHN}FTF<xV0-tW2(u^gC-znKwmIo;x
zntS$5u-uu;4lkl2X1_WwnKdOQrbzna<?YR{4~G1lls)BKOU4_2KDFBQ-@O+YCp6xD
zr5h;!EZx3%e#x`n)8=*+s&T)6yev!7am&daoT5iwA9>TF|H$FV%ZY_OtHMwGzb~M<
z+(bTMx8Q6Qt5(%ge}B%&MM}nRT@sfIEIg=v%B84nR<rt@h^G4M-bdHIs?_41|E1#m
z8`H&iUS~%9-j~vT!dFHw)!+Nmx1(+C42%BW6P378{`%XaBC8+#N7`35Luwf#bMuJ;
zY66y)X7E`lBMUQVgZF53Y=882!P@)r2ai8#RkA#+7^%Z#VR&bmN8sVI#%*naYjUr~
z9=U6}CtKy`ciZ+$Igc#%1<i^6swlSfsqGx^bH`^&s!b1b;@WA#8TE5z;*$%~$C4DE
zM>)M~tzWTl%DG0?bEi%QO*oXkmd(&d&zALSS(~M8h|?6kg@r|o$1*JIr`-CGqE;k#
z<isCowS*IaPbYmg_mg}UKlSw&v*mLVH#ykM-0!Gzb1j37YDT7vWc}gQPogxx9uN-O
zdF(*4?!&1rAKSy8<x6!f`N<L&-1@%ZsG{z53EuoOs;6Htt~Z%4!Dzgr;*eR&pXR`0
zZ5$IB^_@6b`a78vgyYum^lgYg`>9^iO>9ZO<$6}%)N`*LH~a1pEaBp-$;o**^GQ$f
zqiPR5$6kG1$@J^o*Uw6oT(Ml=HmmBm)QvY$pXOY5n(FnW=krCo`4S7Gma$lzx-~^;
zicHpXH7*C;)N|TG2E8X-n?E)ft~zM)*>*!`Sm~lI3D?xT_^%m<ANIa|VUP8uX}4_l
z)XPLYoXKsrrnA7baZ|?Z&n70fWs6#wIum(ws$ZKu-+JNlox+z3AIn-uEu6mdalll)
z;^P}r))yb&+LCw0G_bMgylnf9+B34pvw1U&uN`>S(<A#_vrnnU^Ua9`Qt3w*Czr3_
z+8Mm?6!%u+lMj?kriMKK8NM)2di&~2A-84}f3)qbH`+15cj|JNEgUPX3RkWy<~C$e
znleNGWPQ=xssro`HeI&Z==UyI*e64KOP^-k%w?)Ed#B7gckcXov+sv5`!ohuh?v#?
zKW@LX>P*AxWrEc;U*COwot_?Fv(YAU_tD13)<tC#Z}hbui*{?4mAAC+ow0!J_}RAp
zZj%kl>C=UTr+ly9anqv7WBZ4DZ`iMgZ-4m5CP&Vp^~d#}H<%-08?D~#d%+RnR(CLX
zc6<K%c$<6o+LkAN{_wAPL*=Hw56$i{+Wq`^R;+$U#a7$fHLM@rUVY0O8~5yU`fT^x
zvtO6z$LHjioy-6CZTj2Or@Qsn*K_y_*BM9@N<Wnp+f~uM{N>hC^N;oSu3k00Ft6?9
zHqG-Tw`Kk${k8m@^ZDu5+tY7v7dErK{U`JD*Js)_2g7U@tLT5=`>=GQ!)@JukIgGq
z9^un9KDlvfV`cw++x@K1p3OeJ`n}orbLXFP&92tZ(_g>dtlzx8`itrR-*4`3-=3fM
zZ^O-+|9`)Ky!!3!(bGR3C4H{={pZoM`fo+mqWf<i`#pWV-n{(y{5<`*`tr@1n#=S5
z|GD1ozfbq8{q%72k7rNU*Y=hF*m7M$w2Of~BKdfF<2h4_)v4WkU;lrrx=icam&saA
zyG7TnODvYOvAc5nyV~hFIn2{|<csg5H22B(_H17EPsVg-SYDxZk&&65yk+>>qwC!F
z&3CGgeHqn1OUF6c^3&G`7m}SPSmzo2@yq?T+vemmN7d6W_Mczd^J!tU<jd_lr_SI1
z=7jy{*&CF8osGYGE#9Nr!SBN={wFCr{-u03FM0pZf$2N*XUETtyH6OFF@M_sSK;@9
z9}YDO>{i$r$eYNQ$XgVZJ$ZBD=ETj)>F($H=Ez!F7nRjNd2{0E#BODAcfGzCnVl9z
zg-;%V1-g|n;c8_V%#P(qsNOHT?D4;^4ilb>^Rw*y9wGR*)Pp78O{3wHlW^9h8`8|j
z_GT{WKm4r!y8k-nEB`i|UkE$Weg3ffq4W9TN?%uW*xzz{v!s5Ks=J!4RZvc{W5=##
z0!bZj&Uou+UAABqlrCA=JMrIRCy%H=j<tq|Ju~$d2rKL_*v$FL>riH?&KsAw;0{6U
zP5v(&=e(St$m6W`V|!xRqF#YspXDqnQ<gQiDDtIE?|A2JG{w|(ky6E>WA9T88k?^-
z8=aVy-k5P-<h5U0U&^BTFNck8%u1h_ka^}!uuEL$<_Q`nPA(DGaEbmPSnIpAMfJel
z`<#tyR$W(4k;v9+IbwLi(_zYti&1T>6(m;~%wV-w&DLr;%96cj^1@P!EL*2GQ}ac}
zZ_n6sHr6nGe6vAd*RpPj6HyThZgU4dFxI|t#!>OsET@J?e66*Y+#;sG5UY=F7ML~B
z>#OifRWW0Wti*rU5~M=~1srx;H+jZ#NM*lTdMJ?fgOiF;a+LaOSA{}B%}-7H<1YIj
zv^V~|TX>P=%fo_BYqF$1a4wir?qsks=~a;jM`m_a&IXGORufjNSYv+J#VA5n!nQT~
zMrUX%L#@P`z)%_Hoj!e%bCz9jIb~5F$kQ&+`8BUVBJ51COvk*|&diCzg5CudVlmu0
zM^5BLvu$;p#{GS(LesjHQ+$=Zzm_YN6hx_*wWq8|J)7IW<8is`fLG)r*3Ft9f>@_q
zf7R*4cJ96r_d*LMm5whGI(6cXHo<>)2*h4ndcD`xeBQyn*y~;IcP7jGiEeu^-@Q4x
z-r-id)7&XHgfH8-a=%qCnz}&m)VB_9!wKIuPA>E42o(nHqOLm=*U=QSMX}djqh(#D
z^vMI~Q*ODWe%9)bnDDKzeZp5Aj*VJp^A{L-7#=9H-konS%`CaH_dytU*Um?N2G4UY
zFv_Mrvt4j~;@eG!zjlb0Cza(yh#Z_PeOT=<YrWmp#>ZP)=U&*hOu*@oz!s&$iQ%T3
zb}eDE+9<NKD(<rZn~?3E@|#~dBc?KJO>|Y6UNtMJC8C`tS<5N)6k{FhcUx_xo%$O(
z*1hIjxbys`9-bdL8)~QS(LVh|<l%8~k))$L6i@w03+FmfI{o9zeIgT%W$x%{@G!W^
z(k~%7|AFAvdP7FJ4VP4lZePFRmGN*-%?4qo;9kyozZVE(SLHmbKC002z+lrx-$v&I
zqprg%)RU&IIkC}SZ^P-HCBj$iq`1pB^s;_Fqy4T~EP^HC?p%&pN%M9--^7u9i}gpT
z+Dz9MGnQ^-%iH{ZNx!Sp)@8E~{p`10oc7&KYm&^iI}i6|UAz3G{((;0Qzs_Xjiobr
z_XaxVPpsB!TO0b<l*xR3-xn6~HJ?q4))yYg`W&>-FZ^53p0Y<q2Ye;-on<F2T<@v0
zq2h6=)aHn(?Tp<SyPM`dty^?C;{(SYPi8;&L<#FD;-?SfO!|8HrrTptrC)4p1~=TE
zp0yBTd6E%dSzpHb>*IFjd-Ln}yx+1sw)2hh+Ki<~Z~cD})V-?i!qrgS`FF0W3g7(7
zvidtO0+p-0z8idR;u<hAdG9exc{Um}chBp)BeT=8sQAgV6K5yRR{q^8m)UnmcBgew
z`IC1i?oQmTT<-o3Ebyt|$-@(e>nFA=SGULRIjnatQT+Xe?(!Q)t>3(oE&Iy1yQ)2Q
z@8Na#62sqbSY3YODoup1*VnfHy;-$3qWNgl{cv>$W09&1j#XRduF#AXu<icz=;gaz
zzKsT)Qu!yEUQPNRXZ$f?`|)SJ5h;t-%<8qe{WWZ2w_fPku(f_0QZx^8y}#S|a6+g^
z$C2Gry<Zl@e>QNCe|C5O-K*;^Ij(<T#v@~~oVE8w?%lQm@i-^<xH+%ZDc*6af7|@z
zyNju@+2V&A-=#2oPW%0SgFyB?H?7TopF4@n;ksSV-Wn0EeR;{>sUgS8LXViemusH=
zrD{=<-nRLICtEcv&%b);sQ7D^>Y2377lT+?y07d$@8^B>oXX!2X~wQvb*GuGSBoNA
zLbo$k_s!7{d9we{nYC^!nhgXuUk=gVsdC4uC}79xga1QY-_72>`oX#h%JnfE(dE(`
zlqMx!68Aciw?S#v)=PdVvlbupjt)5T@yh2tPwpHnDNTF!ct+8;dPd`?#X;akwuFh9
zrGkM%eo~f#jSak+ZDwvdc_FK2{o1gDMY9bA_I?(%I^+|m(&!L#cctxFALHDfV$b3U
zjvGx6K49{ETUXo4(kWXVVDt89&&5}7Z{OX%TVVqe$C){vuVQ?e*$kREy$n3$9c2y}
z98pl?FcNAoVgLTlXUd{yt<Tv5-<&cMw|=j<mn~7m*=MEGr7(%3ce9^+zxq?Op{l-{
zp|16?;1UzYo5yz6J1B&wUuQU|koaKxwmS_I0y`qh*E1A9Z*S(ad{iu>EGBt=<#DFz
z>+LeXAIsnSiu2AnnS%H1jAhAJ=1a$v=6_)-l(gK}(9qB9arnuB)i-i%=NoMQbjAOy
zt<dhT_b&e{itJuv%KrP@wMTkAdXLJbE?Cx0txpU$*_C9`$hq)%+I{P$HVb{OK#5PM
zo6`MHZ@*CXY-`2CqsIBEp=M@9CzswlmcDplvd(6^J?q#ut~R-KN<6V|Rj#)Ar~YSI
zpJn=<ecbap?eyk*p?aILCO9gu<=c4r#g4;^vUop5nayo@)X%}OJJ5j3T0HgmJJ)To
z4qOvrxL(Y!zuZ49Qg^fZY^6n)nS@)LI}b+Y_;R`4)egA6rAn{3x7sw6k3Y@9MKSd6
z{qytOIFd_jGz^+&9BIC|gju>J*ev&K>djflK14Dk%gDHI%V5)6y(sF_!ViZs6r*pi
zI&+L=Z^r7iPnI5hb9C{Gm>Z$ad>a|}R!?5_<h0Wq6I<I8F2(g`>lK?M{_o!t#OC=!
zZ+-Ai;hnkxHmjaS#@gopcB|jw*t`Ac_Wli>$E>v<x9Y6@-QM%kar?!6`HXX|L$|$%
zeWteQ$zi*VW%(BS<m^6&tvORRscV0(<wEZ1mw(?(yr1^i`D6CV7hS*ZC+!oR=HM?_
zGs)rDjli{jw|wsJ5iHtj7oj%u>#qBLRTIAQ8r9F0d-mVo<>KA5F}53W=NxfAlH>nX
z^qY8Dx${YILS{BGF$47$4Gj!U;OW@N+z>QAsad}_+P6E#T<q@m^%siL7GJvhcLIyr
zgd-M`GZ=-dCmyMISU5}3=LO$evy^{-=PZ78eXhW#RpO5tHCL|+y;S-AbIi+W87^9$
zCQ@-zn&)ZR9Zpb@Wo{0el>O8psHHd{So)9CWs|Ju2PRDs=reF^i%mQd`f5)9&Sy2Z
z4Q~Ga!!|ANQ2kfyZ|~2&FWb|TCv!E#b%*Qqkkw}^r)m9fn7I7aA=@g3wP!1JuO3?}
za{9Vr&9pvu4L6p>Dx!JooF}a+xVOUdtVMoC(ENgSRU7?s>3JI#C-e&nxSTm3Wu)n1
zRkdlA3zy){Df6aII-_BDScJRljF<1VLl&1(YR^<o+mrF|#ANRm^`dSQ_au4uL=`Re
zS^MRQ-%KfnN`@r~-=FMdbDvaWQ9gOrBA#=Ho!MKCPF#9Gx$ueR2E%U?8h*W+b3Mpp
z{_C$Id(VG$%W~b3ue-8SSYB=WEz9*zk7Kx$eb46h>1@sTEIltu{KP4SwY-lfU!PXB
zF!DoUmF|%s_g7gllKuDB7N$<Ezp_|>k>%R#Pn`)Jd(GD|3HAr=m|fKrWc}?z!$niO
z_H8B_5rzy>>ta}E^Dmz&p;PH{#@0Zpc3sbOrKtiPi?3+19!_#yE|KAVwDr>_zuC(Y
zrQWXJqRGj{cIjEnKTodzX??t|&$h(`mYh2E@yGMhGcU#bnCJH~Twb2BLa|X{!|eL<
zU%s=uAF^JvpU=44adAw~w1D&LM1Ba%H25EU-pno_d3Mb<v*(YN_8sb7u0LJ#n%nB*
z=fd^lV&>la_x}3pl3$;mJ^S|W)t6_V_rHJsyZ&Fz=liQKhi@;pkG;QFyMyQH-<P*9
z+xx}upZxRLt1oxI9{>Ht&*oFZjRjj`IMv<qE~x*h*Q_=_^V?`|#YDgSOD|{N-oE|i
z7o)##uk-)kdCvFWynR0&as3x-$e72S!}@Iwdx_58r+x12rB9W9T~}D6%VMY!-ZF{T
zMRywOx<bL0*Iu3(>pB`bG$JKJsvp!J(dgvqzcKMh1cy=r_aO!@PlH)Owrvk?R?F>v
z6`{%59V1wMMYsO^hsU#+udQb^P_kAKOZqU8xvwi=`rL<_QEnXJ(|c~z^0cV!RIIUg
zdNJ+pS4oK)#SS|oqu<IMQCcMe(;c_$;&bVpq|M`~9n*AY+0%yQE560t<qverHP!xh
zPoczOr9JaOr_hiUixh2b9Rf0x4v6U`MM$lC*u<x_aM8?_QbCgSUPmQN79G!6)Kfg6
zjcbNv_F9kV1>L&4PdX-EN@(<$yQRxBHgN&lCgw#`9gY7>wQSkCi=niV>EI0Br7<iI
zwI3he;Ik=0P@lVk`!Vw)Gl!`>ZM8kF2Ko&Z;m)_*Hmwq2`Q%=D<jtn$h5BE3^3Fwd
z++hrvQEh!9)%Ba$-OuMDGV7<wrf~W6)wH!pq}_DXTq)AOSVH!Ue?*q)1#dBB<prz_
zimejXhDkr7qE@QBY_xE_f8g1nS)%h7tK9n7+gjGyWo+HGnqi~Zl)4p+##@ABqh4A|
z+&bjZdWv^n<E%>=OpHbG52RP9A6!}W{`iypDJy15G%RfnSrpfD(^=qvQnE~a>%j?X
z?p%&nTxNDWGTZ!!FC|#ty)mG{K~Q?>leR8_rCMCP4HLQ&O!_oUcm%sx*KEF`l^bR&
zy6+)#TGVkvnfa`(%JCJ>XT-v6Cq3WEx%rpl#IEOJc9r|iFWRnLV&(ZgZik+>DC1gb
zmi&3_7TXS*G_$)Yi07&YTwD5)v2xb)`T%J**Dq#!d7P$eElQQEvT6D-srgue;1MUQ
z)OR~yz273(G3Wfj4MEZiiq`(|lm5VVJw4;_DX;4;DJI@}3b#HpRJ!H5U+LR+d|B8r
zjiuI30;~~x4%sSymboy|v*fz{^j~fZPHaqRKFa5y@!3KpFyieG!#zTdg<|urO>my5
z^<qPP67zxyCyvW??3#2kV;MtJnx~TR%;QVVH1GKx>zMlQrii8R?A;qKH0K{VqrlcB
zzNuJfVXY#EQTDSl>;fjNa%bXL1hpMCves}-cDV6mX}4k&$4c2hrSCn`wrriKbs&Xj
z>i!ER5-T(2Np&o0&t%^B;1|cCi2;@0O9YQx(vdSfuUzkQE}h|8MGv2k!kumE9aAN&
zG-TheG~;2O;`dfkL2On_^P#hgf3pkl9g}@5IVnO)H6Xt~=|t3u{mWSv@U|9D;R~>C
z>e#9?|9WS?#EDOp$150{^?PqTxPI!lzw1or(-YWzrhT7OaU!ZNy0Y!wi)Cg%*M1P#
z+x&XFtmBrchE5VI>L*zRi4|A6&SARWs<Xk@df5#_gOzNIE3Td_j;!{wi7AjN@i?|b
zk(a+uDW>va+mb-9x$M7F-@6<Mi)Jx6AW&iH->jkb*(JJ^-TC|0HGS=^wJEcw<jq^T
zSz&!uz}?QK+1uZkCd~4Qk1F~)Pb=$T*lok@oIF9YoPPvanndzv>(w_!RLcb!^Y<T&
znf2oeTlWVkrm(AgAGuv;wl87b#bExSIOmlB^O1$u`WFgVt*`pZ$<p-Qpq{N`>AsaS
zc}=7{D&NQaN)^!N<~7<GcvFw1?yOg{I<w!`hWOud9T6+}<R)x2d2e<nUGDkHSl64u
z-zPmk6>P=2R>Z9CfWpl)OV|9bzfo->;N)$q6*P5C&P2u;=h`|}RhFG#=<&AgxT6$Z
zw(VAq!i0^79!V;MUE)~cT{P2O;GX*Qog9b4q|{dVKU~}9%&Ri3;O4>TUI(4^Ul+{a
z6+4}`keAt}bemu75rORDibU<}Y)&`lJ(}+L=VRYX)%9n5Hhw98`Q<Oa{U&W5KlS>R
znm3G+?w@@gUst*RY+Y$}v3+>$(c8~2o{z6Sn#WME`?ECj?%D`}`&N7R?f(1YnN-8&
zmtRkZzx?v;*Y@9E{`DJG@WzBMU%&Ck*Ry}s%c^<n=J)@4`R()F<F9{4TGxMD|9XDi
zzYka6=4X1TxA@MfxpQ6q-G|(7?I$ZAO?ji9V`E+ayd&N0++6msZH+n2+jzH~+~)f&
zcT@i4g>Ty%^O$e5?c+_7&e8t8ZBxGX@ohyp$VBDS@7X$;XX3hEh^BZf|HoZzDEM>l
zNyD4+GwnD3elN(<b2~sahGnDC$4x)`+xP8R9b$G=>FtLr<|o>}tveoe%zWFP%1r-y
z1-Ae4(;e4@xTiK=Id8tKS@xvbW>vj_H7^~vZxg+_O!=s7lEb#d+3!?&vZbXayc7_x
z$d-O{ah`c<^1WNzZZIcyPi3^T$j|+{hR1ONXF=1h>1E+zJ&$ZIG?{UEX4;#JDp<3~
znwNDQi?}7S(!lWEt#6f&&b*6Vk#_IayKC9rj`a<U;&HO(_U1D@(#07aj@C7M>b!My
zF4a)pxv58u^>QW8yA?`%->g{ted;R#mRxT>w>vjK@}5t*P*&=(NLE;lWw!V?qXlXD
ze?l3|(ogg9KmNKRx`grjt3%b2Qc5h22N%>las74gZ%B0JbQ^~z%@4CCJYD=^=JAP3
zm8Z#Fsb#%X&%t}9?$?UX)A=hKcFg=J^JhU=<i+;e9fy8P{9E#%M*5&!|J`dZH*G7I
zGBny4Bl+fjn<kIk_m7*-9CK8VdYoL%bnvsC{B%d1-sy+auK!?WlT+Y{IOfWeoBAzj
zx~RWlz{*eIc8}8i7Vfc`++4-QQYn+lZ2e=Uh@1b@>Nthph60+aHkLNbeQon<ZhDWX
zXH4_{vYW|5Z~ax1zbv1$@#-0)SN@`p|1+}AnivLd%TBL6&m}gUPk_mf#n99gvebvs
zX!?ZnTw3*4XGTw7WF~Xq{$CNBSC*#SDvBqSov!2v>O3e}CdZ$CYv$bPbK}zV-yYBB
zc+jv&AUy5%^oKpOe*C_#KkL}!M5*qHl^_0Or<`1#8Nt@bpm@5#hb_me_x?Qh+jBE*
zPJF*7t=7;ZRlnNbPWr^MSM`^FWT-5j@3y(*OP*f;Ee-)MoqFZJ0kLhJd(KQ*ZzFMg
z<Bz`&Kh8fXVr22}vGYHd#|BY5>potZ|6Q2lxc>L^{qyDH?R?8#{ucD_|7hUGV7Q_=
zymOU-p^=WT!Q`ukf`=O-HykLbwfDC8zS-oIT5z_FIOBPz@}rYwUfsR3=&Q8OYzFpQ
zpSZ6)Tx-4Y<&TH2^Q3Ek*6;c4*ctd?zs=O9Bi$1>&UMP@?~L3R|3UVU@9N#l#aJXZ
z3h9e@PC0fls)EbENcZ*u36?7<$79|dU#_RuKJU5K`n)97@`c-b78~5!@~Si9K-oG+
z<^K7$3B8&&{qYNYa-|JIKAcID-2XK9#smhI_?_wB=a=37x_&nwlZVMfMeF|hm?RSu
zy@jqj?k)MWe!8{OhL1ao?v$CErsllb-Q2ri9^)rw_PW}42c~$rRXp&HWozLHxZ^Cj
za(Bkn)>g(X8~5pLSiF+EXKRV0fx{9Jp8DNdmv)z~>k8Yi#<!q{=iT)aSF99*7hM+I
z&H8=e0qyT*vsov8Pu44#))61on&y-C+q~Y(X^HY8?`h7Ci+rPI=!vJ?)neVsxF~Ac
z=FVkLKQa5fX1Hpy^$%OiFL$<0sfsyT-52gnZ2bPJcc*^RyQNCu`6BZI^xIza&RMdU
zQ6n;BWz*6-^Iq##PBT}{{W62mt?;t7m9?Pcja^SpT;$CO-riN7(iC*5&0l1f=N;*J
zqAT^q>L;$B%(?EumaVL1Cy(B}5zTi?X6~!ftiT7Xfl9M)N4}|wX<phcT$;J;T6yTX
zH{GKA!WZQ_H(hR@HS^sLH`(95h1rMgQiD1UtveEZo~LX1WtZtkrrp)oHc|Ds6It!$
zATWc4_fhQAtEJy}F)TT~%;?#ge=?@MYnZ?56*oJa_55?Jp110Zr+C_#IOCw!C!bx{
zOxWSaxXUTe>Y?SYfWucsS44;3c&enna`rPN^;+vEjw){V)jmG_9Kbxyr-DU@If+9-
zFWj(ZZpQ-K*Q+9$s(1c9zCKoIvt8t(7x(65i66-imix7dZ|!1-v)PjTpZ9!}mx%Mc
z9<;1M^T<a3&dJA;Ha@8T_}^VddZlQy)2!1ME#p3HxoWSWFwL|^^bOaWNsAwb78h#g
z7Cb(7Xs)JlhU$%XR!?4>+aKGSegDDrDf>e%ueqsgwm$9@e^bb$j%zZEx(+uCb|3xp
z%B@6qvq4w5?X}`?*2>tOd$o@EZc3T>Nv_cF%^i-?cFjeCK2xu`PICKr_hfzGW=jp8
zF!|qpqLnODZC7wS-?Z(xm0(HhvsHqQWv)s=57}l$U3$J+Q*rf?-0VODLxY#0uk%V%
z54ZMrROy}8JM;PZvB%1~Cm%`fVGQn{$Maoy(Y$TVXKo)cj|ug=>c0GN-t=>&yQ;I<
zPa8+KZ~Iv#kZTqG?q#;}pL^|1FVf}G>o;czZ`(G3kF774fB*Y;5_i3O+_nYnejQns
zWtXe`U+!;MYg~9$U)-B*VKINjG+!V6{#&=`{Z}q+F5!2%S8CK#BF@D|9{c07#HQ@C
zumA7<om1j2`1|Na+8Ns3_-VQK`(@tJc}2~yw~FtzdMUH?Qs}xvWwo*Tv)}#=3Df2B
zQClo@TaCd=wJ+6d@8so+>lqX0y9ZBi{L3%GWMTnXkz{H-UGN;cX8qM!-o>}g1dhM|
zC1P{RSk!3(3#Xi>(4>h$EY1z9Vy`!QW~)zM(!b|ce>}sIU|WZYB^uVYCymX*>~+L;
z|Bt;<de3Uz=6SkD-yA)4oUg?3&9MuD`7%$K?YrilC}#Xt<9^4|yqM!|cdK}{#hlCc
z-@p66GvY_0$^XZ`pCdQ;PBOKx|M&CPq4MYQar^iGFZuuQ@zJ#vmdZ)ruJf$QFP8mr
z)q;o7Y2)YHzi*yh`})qx`+G}b9vr{%^Y)*o)#?X09M)XlTm0kA)iZZh-45z)T*Pe9
z;@5GQt$cEf=RPr)NpFubotqrfyeHz|-dZ=s1BFX+W~rK=Y;AvD9-o&#sXRZw-rxyu
z{ipWry473fS(<a-|Ncxdul~M*>?fV5%iJ%RMUGhelqgU4UODr`HNRHFhKc23tFC<!
zoVq|d$(hrjL*Y-?rkcNn3~Y0L+e)mxS<7=sKlRk4F5$Oxn#8g_*Lj6aaJq3}fqdhM
z*2Q<9u>P~@@&9al!>l2reZ7))RKVfu&d*&HzR1^CcGQ-veVhFKYU(tO$96k?ES{Qe
zvS4!*n8&)tbnkgr?#vrI3U8lJc~mXYQtgvf>7Vm0_fS>gRW+|^&;P&o-O%$SNL_Yv
zt;OmiS8l4y&8rPipW-t)Dj=-*_uAvHp8wx7=WhK=Z#TntyWjMBc5m(yIu$-^wV#ov
zmtS!h&(62O0ripkI~P_h%`};M?#^{BwYMKRY&jlD_;O#JVZ*uf-Klc+P*usbJ7ZK=
zCR{B(BDyK*>YNkvPccSTG09{XnOV$H30+mFw>FcP>AlU<MH_2`JfsSP0;kG(CHixm
z$TfXb!hU_0jqfop)ma+iCR>kBUT-EofBC=d+x$OI6|L4}H9mU1-b;cdtJGlS<EY8i
zg7MFrPEC#3bnC>jGgVzTm{0I8`w&+Dw&#~g(cw++@1}{bxius9NvBr8QR92j&A~cX
zzh1DAoE{o`V|{yfL-*hJhd1*ZOxwFbcjcM5DJO#728L&|gt|*Ttl+v>Uu9i&@L-vr
zZbZV-6;&_x&ULl@exsk!?Ltv~bV=k1pY|EuF3Uu>ZkJfq_)T!$7pCoM;`8`pmR{+3
z*mU9R(@CK*v(7!r%KB(+cji#yqw;d$H7cz!VV+q_-3>bot(K+FxBq(4{axmaYhU6L
zHf##9+O8M!^@7~em6P_oRL$H}?!GB3N=YiZ?P_Z`;}^btwR`sOy;xYY=kPh{zf0;l
zPgT1#S>5x_vt4|H{YLNnRApwdFI(U7*4#h#`pfax?-tiAy7y*=_jj4Qs*gL>4a@dS
zT{3&qt-LoYWfTo!OdL!c4rMhj&tI}ENT}(0rq_;Gn-;wfY~QnXrF<(g732S-s-j(V
z)p(uhOo^a)H4feAsT!WHk;`f}n?|{Ol|4PDr(SZ=)cxPuLQLY`P3;kLN}Do$=gidj
z(=l7+WEVMbs_@$_nsV@7(6@x&4ZfP&md~}8tCQQy`eWX!`x}~><XOC?%+z0_H?!C4
zrRS4{?g3xVKZv?)bwD78xo5ejU-#D1E9)MAuwL1$d-|SZ@gy_j3q4`amK-hhoVT9!
zQA^4-W?n{~`n{cZessTHc+T`Q$2S&-=1u);=P!}ky4|Sq#=Q75OGM_mPT00gH>4*z
zn2W1H{z37RUDrP4&CHtrW>QR1TF?dwW4#|`D$$?s8^rQfDpcE?lr)j=JGTGOM<va#
zS29k%S|q7Er#!~^4MW7bc$O(0i<U9)1#&!FS>$l>^T!*>1@5}_AF7saf4jDAy2{$G
zQ!>40l}~(ku3*={mnGI;3LIUPrlj5Rm^i~|gIbag)9hEGFAZ`;MXx_JT(Z|bI)mll
zjSB_pd5?20v*|@>zVuq>ame@N%S&4(e_cQK?$dQ5LMN+w6lOc@x8v9p`@F+9lf`$s
z0{6bJ_3~^kz7`HWtiR8#?(V5yqauEFMw9JPlkDY5_B%G{h2Bo#Y73pvx=Q%#o?7#7
zq3%zQZoF#vV&WFvV|JG6lgjt@%TyFHNoJSIh3^aYb-d>n&V9Eq?fkSC<;gj-P5!Qr
z33uzd`ZRLsjfN-B`=|5WZkjK#y6kN2`HRI5H{L#45wY&R?Pl%kcD8I1?*8*m@^RXC
z&iKn6^h2Z*+@fYOF`vk<E@)_AXvqcJ;cjGM3BApIZ}jOt+3lit&W9Jw%&G94$L{H1
z@PK^|iwDEuONTlav?}v6DYqS)pnBlv?~uY@cP756h%$^?+uBy%RvY0v&-``R*Lhy6
zZkhI;nm;dVzKloK*&tKtl`nt!`fvR)%Oq%Ru*D(yB@ZQKr!?)9NbEXW)g0Ko;aDZ}
zf8OZNCRZ&r^6MkAwwm_M$<}nYHI>Yko3?e=le1Uu?0BcMvXtvWWbo{*$-Orxi9CM9
zpfZ*F<rS5nUS;n^UYeID->5ozbMlv6OL|nCcix)gsTP0Q%QH$le&LlRzE9Z}PYc=L
zEa4fXeQu&!X{3L|p>4i>HjK%SSE!$f_3ud$o!xWM=bGB{tCM_M>pyRpFjM>53f-Ch
z=T=Y3@p$Ml*;l+zr*dY@_Nq_UrcId_Q{yRl^5-gvvro=_-VipaeDR*J$^DIcjdIHL
zr=EWlQ1x_O<mD^3t&HZBT|aeIVZrR6xYsLx-<oa~BwuQ47(D-!Iz!QvbLvZ$UF=Ha
z-E(ciR(+++jQGzBV&bmZcrRXGTQBIJY%$TxKY3mG;pENRzP|C<Y#Dxe(z1Z-Jl=i{
zN2G3D`tmhTi}Uy~^B~`1vvqC{mIlo2NsoRNVZ3thrD+~(0<P>R4tbN5{L=DYNY&FA
zt!T-x4I=4NJ=Yo?uK(e_KqOB3sf1%#WVFle6}PV4Ik)if_H(W8#f=VIU07ktm^90>
zUi_J$nT&1N<H+qB{jP6xnVrpT;eARaE^o%2+p48rDQ}ss3r4ZGnRqM@jXa+IGUjpx
zml2y|nN&>X*Jmdu&pti9eEq#8>i(CWdgs(OTTc06Y8P^AUY>kI%!adnKAcoHpT0is
z{@$9Z-)gr0)7S6&VH7*>?!P~3dv_e1ukqn#echh=qw@RyUVnS`X)(wC+ON;lcX2-c
zY(9N`e*LcM-@l%|_5aS7_V-=>_WQN}-=>$_FMrOuzu<=B{I{%PzrLBydv;`(TAp^z
z#CiJpTMyKJ{$Br~qUh+g@|BSZx$E!!`*2wFy#9rE4@_q7KXh{OpZx`KcC}w$@m-pC
zf49%07`bBUGr0y{^*mWTQ9LSaQq0|r#}!oiC)hZB;yG!oa(;r1Gcu!ivd{e;yhv&n
z98Wl+pmKdejB^q1NmDci_eouq?Gx@e6`?S^J*G|2QH*rj)RMw^QfQK@inqtK`Uz_k
zBb_(3rSP7Vnq;by?Qsnv(3--1Qf!j0O8&I}+|iLywZ)aczRl0S_I!Wc|5x|Tr=Ncp
zS6}|SD$=F0@aN~J`qR(Pzy7t+?Tb(wyZa>VH}YOHw3RE*r@FeIKAK@aUyuEZN$kIp
z?{D-D?)(2i`Ha!`Pwu~FCmURu$bGJ!H*JP&^{pjO7^gFGpA2|-pY7pe3xU$8V~r~w
zA5EOFwnrzR=tqZ*@415wHQN4H*#*uPxu4q3ophp6I?;mnhe&7!%j0bQN~85m%U130
zb^O&Ru`8ABo_1T~<%Zxp?1ua{yjNoqw%%GWtzf|k_D>E=0@g~ZmrU}iIQdPlLod>f
zrT)l7wyqQ{^A@GGw#HMNqQWZTa`{TP7GDu6b$2UT(rR}wq9(=4eeJBHf0rC?_{BMC
zf;NYI$*kQHcE=)5=u~Vkv*np-tUTZTr2Cn9GkX`lI@QIp=ql6Y)f(5UjxC$>SS6~}
z*kMuu>%}U$6U)mTUrgNS9hG*goONNqM5}L(CH4aKE|cGASg@Q+lE^MOzq+bz^NZ4X
zDKZ~CJlNJt_<U;NzJK&Wf5}bPus1?)SKnCB<@2PTCA4<llIgs9yZ13WJ=pZt*+FKf
zaMKjWdyI*!E03@@SX{9%tFL4&e6RoA@P+$_>03C<gbu|Y3Xt!e?>@`z;~B5`1(Lk3
zp{tFhy<8g8rqsvzZ#uth=S5>yjtq~DwLI-?>l=OBC%gPOAb7>{Q<i{IRY;}E`RRpg
zx>s~aNw+;!tT3sTxWfNU;LXxJi2@d{-8T*wWL#{m>C!yI#`rF=hu@;B@P%2z`<r%h
z9D=>2_fIt2FHf%ayVbt-UG|EitojwdJ63kg39VKtzNy7y#y+#&Z>Pqerz~c+naWn#
ztC#ldd&k`1+2~p*(XaZmz3p65fb)vv#ZpPkT9fLwSx-zoo2g#eajfER17qXjLndX0
z8P*>RWYRjDrcX@%x}W`kN&H0TuS<%S?^^WiNvl9Eqe9hrErx@^v-+n<?UkGP^fFt^
z^*HT|&kWa`Ufem~>KvDpaJ{3D;OUwELH616Iu>qqwtsGOGWoEnVL|xe*`NRMDsbsn
zF|2xNbJ{}SV5O&^!h_8>L+-IIbpOUAVi@y>k>%5wm$mXoHg0u0{d!khp!c&=DkXOp
zUA=SOs;4M_1|#D(!)vL}77O(Gte@$+>B=4_2PMVbvkRVBa_kX$KYu%)*>9yU_2Ro_
z-&8(u)JR(1fAxTwiiy>S$!8x&Zk~5VBWC@7hQz)9*d1Q{{SoVMV+O~g>#;A+s65+w
zdqd)myu)&B&fghT*>*Cm^7y=Rrl{kb@6yL?;?I5L?RpXLmy!9>uFj}z@xv3Btz>F#
zD30h&ViwbAVK{YWv0d5P;wO<0YPIu)%s6=JAMEkCakwCbOL;|c`e8GJq!86c)z4w<
zjLyG2cgp;p*mu@_$C=HK1iT{O3T)d{eSNZn!o-{$;c_$2g;P%CMRp5^yj2&Cjxw3N
zS+UQ2{cAsGvF9B7?N*B~Ub|NM`~iho+vPqj7T6_|Is5azpPL*Lw62!OAGWw;AuYqC
z#P;b&%<1~Fm0NE$e_q1FwN=Du#jl0~6OQe8lVoAEemSR^8M~nAt~Ixp917!k<u`e9
zSAAA<b?o2yn^qo9dgB=QJUMrQ^Jb09KKEpQ+jo69DRpBZzs5e7SDsvg5^TXQ3t2BN
zds-Lv;+^Q%t+ojgv#e*ASW8^#3+ZSqPqMSWR;M9URkn;_ZN0DU>EO=~Hh$;&uCb(A
zX?ybT8v>`FWmZm6R)58>kfE9TuGwN!;+lv(2W{3XY^a#IiT}}s9KMM~>(XRG8DFlM
zawj)YYxBIz3Mp=yt0lK5Hr&q({q87pb58J-yXT}u;$E*w5whI6?%tf+p1xkU(j))A
z;$?pIF4B(S$U>=wJyM&b>RYBBZ8gri!4&#t&61$Nn-eC#W{xzS#Cf=H!fWqKQ|8PG
z*`(~sbbVULCPmeB!yAWE-L=z-Z(6UN@m+AjzSHYPVqWf^`~I`^o4fJ;(@bx2bq2lt
zdy+pU&FIe^^Iw|`@BfxR^6dWU)Nj>6Ppf4T_b-q8r`KoT`B3`3(T~}3Q+)Wn>X)(K
zyqvr#UY-5s<>ogp9lyPSAjO^SPvj<5d%RP$JaJm=Nh<fJO{|qSoA%^5#%)v3kDf4H
zmw4go3Da#)oR)i%%KvE-d*#jMJ#QT2zA5N~h3j#MQ(4&j)2HsoRY#dSWGZuCf1iGC
z1HXGz^iz{*m+H@mK7ZdM);nd&E{*MWS=%-nh^*oL?L6n)A2V_Nq7@ZKLcT0n-Q0Ob
zFx#2e==EK%b3y_Oe^u)Aep1#CxFO%Ry!qGS2d*>QAIZ1z@*eHnGTC6kIq@IX77b_g
zxhBNj{-L|}7=xaABgbxyiek0xvtvU}I)7F1;#wJ1us57%N!G!u@o$=bNJuwwO!;ZM
z<_1SX)s`23B%}+E3P^8ce{`Yu#vYL~%KZz&^;;$8{$6bE<=*rlRH#UJaqkA6=b=JL
zhK^TXKL65kOUda=N|*Wb@E~zPCaok5Te-#7_6<Mu?a~ZxLI!9|4WP?2jNvVC6C;!9
zf<HMl>)*!su20!sc=!DJ2SzvV9Pd|(WMN_UV^L+?WT2xvha>LBIR%cS3?4_eN%ixK
z{Wku-%kFu(>*~&iiHyr$hkpJv>1a~zWZR|Zrxj_{Mro}Te7UmEF=fd%v57OQg5~{_
zSDg1ME>)O!dDUbOPu22o-)4D5ew8&S$ql`0u%q<r<LgK356TpuIdxHne^0U3_mFAX
zQ>JFEG_|^Z>uZ$f){VvSrdQ*PpGELqDf_xPB%P;Ubj_n98(QvgZ=4yWC|O&XwYI=a
zXWh)iZ4-;Llxm(#x}`HW!uRai`;6HMEMZ({CQV&bXB%nyRr;iq1#^zt>!kvpQx0Fr
zSDiiiub1Dp3#<{Iw$k;-4+rc$(`M<V+|Pbnr!;#BSIQT=tNAJlGV2rc_hj1mN6bGK
z&H4F5@2tx!dPS~Ga+7vjvn(+?iO)d#_VJIamKyGy%zWE;PPFAKj~Pv`548F9c%8Yt
z#(QzX@m}k*jA`;RtioqET6nF_tdgC<ti*EifyUWM&yNN=th;_H@Ro-{T>auRPqvwK
zsjFum2>Wz$u3SQ&b!%dTr*?QBQ`x#pC$+N$th&w{c%SA9?^_!&x2R$3GSisFJzJLT
zU=)m4SNpnG!u_3sMtaxX2XidDqyNmyExhfS&KLQh$?L2X*JjZU-T<S8JH#CGuByfH
z_y{|x$7YI%F1XU5vx%)CQPrjWOH+OKBfoD-nKB}GmE3q<F&$mW!^L!D?wQ%Qq~HGS
zah=$9Qt){a^VCYSjm?|PmoE|Liro`h|NUnA`?!6--rMi>*Wdr=*=+v%d#itbI=}zF
z-~InT?f3mWU#?&O{o(EU>i=)AOSUQg|MpZq{@=@|@AvEd`t<JU_4ofj#QxgVS2RI%
z@7BfjN#U=z9NuvA?y-r}7vI;voIZc)bp6Yx?Q4F#a<2Mm^Y`rhy6^Ab_dl(lUH7rO
z{Kt0}rBhaHZw}4v2<y*#t)#R}zBXv_@j!*s8*JJSCVhEyJStr9;x)$AN!;A+x30wX
zvDUuaDSvIf(n7f_0<&MAxR4^@{wH?<=awg*9=r5>by2FRm*opiVCHTwJ^xkWLtL9}
zlUdA>j#PG@X_@>Fd_UP3ePjCf;KQADkC-zS2xmoD%zdgPxM=0KGC}z@vSv@!HmaB0
zc$`r(F;~v`wrh{X&xi@ftOYmA3g7xQq2p)$g1M}B()VoII@#plsrXdw#2F8prBxDV
zIW28AoIbTip=GC+j$*yg2LEy;F&CzHzZC`j@A95M-tyk1pj@Q2>urFBhwRJGN`48O
zs+1NrGXGpI@X^Ol;g*HbquFdrGq_Z^rnI;m?A_8Y_|eC&gi9^yZQoSoxb@9VoQ|@u
z9TY03exB8CuEwUOyHb{k(@kMk;eId6s`gr)^(GC1XHLio86FqzT+vbg{Dq}rKlexF
zq}|MQOBUWdef&&n-M)yh_XSIy>P;&xjp(gAo2T%l?R(UE7lk#MKYmZ>h@79l<@FhX
z-tfh~)?7^MO>dPeZM#_KaU|IC;@gBorejT#N<PmI*6cmxp`g02Lr_>SFLS+%gUP0^
z$6aiu3U(AoUb@$j&~ba=!v4;P^Y!N|B_3V1d1u+5^K-|kH0#a-OGLHZ*YVxvRN5fR
z)+e(6RKGJ@#44vx?$(_N^#^BO?Rt_QGxd+I&$W%xBCUK%0_lG2$y}2btezxiuwXL>
z)5kL@9A>Rg1yWkt&ld>_awr~43SA<vGvz|k*Ify_Wgq>Ycvs@{%v~2ZXoyL@zL;TF
zFZ*uyic>D<t9rRpZ!PxH{A8bQ#J5Q6b&7|r-ll0`vy^T%CTucdUw>!HBsP;}TS^55
z*UBHZ>E+{;IN^Ghzi#eRiLY92B|lCE#b+)knPsc?XlCBw1zcx#v>DEEyv6?fER%ib
zsn1H?xvVk`aeZx5`NNpFde~f!^i)+%^|-NdLVEq3PJ@<zSLKBbPYZW4{C=o$nZe!b
zV@d$mhlPqS=84bbI9#QDse7XD?1VG>73Og$@nv7X;pOad^i!?-p9zud2^)C*&5SPb
z>Wd39N}p6-Y`3vs?gJT{7caQgwp{JbNO*9>>)WzMO9Sqk{TUVOIvYG4-V`lntXr+f
zU+>XuAFA-6UPi#~3#0lerB(i-fr+amF2$rMCTNGtuKd1c6UWq2rFBYy7iP$-FS5NH
zrnD<}-#eEQmLO4?N{=JPxh&`T_goKGN?6C1H2b)VO|iAuBCAdN6(_8+i8#6DZTaJc
z=Ur1%lFwdH5Yp-Qk;}SJ%jUcE>uM&>=BX^-KQ}#+Uc(}xw5Yz~m9gF=Zx`KT+>GW*
zclz9VYh7Ay7Eg6fOB8l|I^)K)b{Cs)OSVsEufKhusnYKxFZ?m&V9V4pE)|xE?Yi79
zAMQCk)4Y?q&`#J_!fQwIyh`a!_iy>W+jG4x(586@pH$}Dblqhe`mSqhtj~^HDs$rJ
zs;%Kl0<Y5Fol;iHu`%9I-^}rWXUb0hX9ts61&xd57Y6c9-<I{_4)5ghf)s-l4|Yl~
zdjCmqVunATKDT9oGSjv!(`ug<TjMpWd>khhrnbzqX?ER_DRL#M&rHwi@9v)$wr%)y
zFW>IUr<B}Bt2Ssg{dMDaQoVVwZZiAEZl>Hgfe%&ci=KBKIVUG<c)R$li+sJ+$4^&N
zR4Y90&shAuE_T9fLEpQbAG!k8+p9fV`OxlAb<I1MFLO$_e3;RZ{)+97g+BkMJ8K<H
z6c!sW+>oo7kQLtg`)b9z-(D=uvGM(#6|XJro*xvQw0%z9+_<{W`u}H5@R8kf%3OMl
z@3${!=l}n4{QkYF`i~E1zc+a$zH9rFkGJZ@t!nnxYVPq(`PH;NuI}sGcKe#2axBZI
z$JhRIt@`=uZ+-1_lLyzc8_ukk-sB#)m4$zznS$JpNP}aXFLWaIH1-_(y>_XBr?+sE
z@uiZm;FxeR?y56E{nO@5k1w-#PGZ*XV3_qj{94?ECs(%!M4Y>;eymr}tnWdW>1-k6
zgsrt}>KA|3-_~#VLH$QK<HqF4;fIs-D_afED*hCVGphNr!&X3sM|DB3Z{>3#vD|aX
z)%T2+IUE&fZsoR*k<e!`U&dP1uWR$-`OAk7dhZ|pRzBU}Rd2O_-K@04Ee9kH^<|{a
z@&DMi^~MebF}CNEe!MK%elqgM^V)PR)%-`fHuL_;>^NR8(i3@Z!|V{fC@0R!$F8ef
z=lR;q?ch9Fx2ONhuD5kzoyv`es%l^PO1x<GUAcW>(v6B*|3J$J8Fwz*9=#Ur)bi-7
zUEP6=ujc;xT(#)$8PjPQmCtt-hjv$+WWDi!$`_r+y*}g3JVj2QMuoUDfsv1VH=jPS
zf<4M|+CBan1wLu6EA{V-UHl!TG_1ELOg}zliDYkX`nJZ2T2GHxirZ{Xf3~^v#pH$c
z%RP0cEIcS(I6>vn2fj&F5r%xRTSa)C*?Cs9Dw!m49ac@+eBwEmnchlPv#CzcYcskt
zm#hEi&pfhWW#O_L`{&p3zdvA^d{Nzv>jZOITyIj|U5}If2WGUIhV0*3KPRno8Y^dE
z+}m}#E!p@bVv{Zz*S))WZ4#g0JI{0ey^G4_-abEIoXeQ3*LEiN@YzEN24dy$TY`7}
z%y}?V{d`pCFH@tPUUHG@7t*#L+1*h+r$XP2Pr~M4b@i7Q>JdhA*UWvLo9EwDnDgzM
z%?tmAfbTa9{{H-^p1y5w?Wbo~x98S7rXA?t6H@v7`M*9Es|S-h*i!<^h3{4Ta$`CF
zNbb(nHGI{5|0XM!oIKa!w6oxg%NKUj$Fe%N9By*mTDI^(TUgSkMUGlFY3q#yBsP6m
z8o7e?-ZiuR2JE43)mwhIUG^(_m>Og>YYq1jwk`W2pYk6NzVCE*AHTo!p#vF{9DZ5a
zrPoKKDNHb*xLHT2(@0(a)`ef;Hx8&uuP9IbTV7ug+EyEsJwK>QcOCowl=Z#Ef!_?B
zCSUWh>Y6y6r~Axow~RkK8~PIKUAVr@e;?iTJnP3zpSd6N-mZ%XPBcvxw6M6m@93<h
zO?^8UX7kA<#`i>@zc7ty!uwx)!a@ULw((58z1vl>{__%csf9r=?7xHw_LU#?O}}cp
zXY!ikH<j3GPMbe7`J+4ePWwcmd6w&bRJN71vd`C>VJiN8-^Z?|MGXHYEDknOU^LeK
z8T#)~=TV+_ElXBT77G4wEc)NNGy7h+TwEljmAmMT!)d$LSMwkE`w6bG-kW>CN%GEw
z?+o<}WlJXH9xkq~&(3<^bx`H2w3ZT|hor9bw+n|FmK&Zg`1a>n^MPYeo_$GQr<A|$
z#kVil9O5?DF;uDL-fv&pb>Z)E?}@Vo=fuu8JTbA~x%})$;Ro;bAK!O=p(OLJipZ{g
zIorB7?q2!j$LEdtGxZbd!(ZRN_v7Bp1Lr^2id>pCWn1mN|8kdp-EI@?ub;c{?jJq7
zWcDk1vvvK~<}}sy+7-6^Ul-$CI`^)!z>8C&#!jWK?NwIF;V&lbJm4O_!hikA`7?}e
zOI4pUeO>!)<KM$cOEapS?pJJKzq?T`ILUFpeB;mPKVp}D=RM6oI!kY*ZfMHuyhM-S
z^7+O88+wmEK3cx*Y`>&PaG~m<9qte7gRR3QF3h%>pU`tVYybL_Pb1I&n3LVURn6br
ztjF$osrgd>#{V)mf2b%<_dLOSYsdQ+ng2EH&-Kif+`F_Px=ZB!C->XA6QYlt3;H(Q
zvA5m7r>;%bP|&tjrzUx7%SP)2KFt)vl9J##>qOnoYn*ttf<fbZFl)p9Iq{1<cHKPu
z`BHtv(-!YMuI>eahj*Nf-Xt_dTCgQ~x=+aT-d2wOZ{cC3p;=b%9e0Ifl;mclPkgh(
zxZuM&`@<<;FFO6OowTs-)lq)tpUZ;xEt3y;tA0@Iu~LgM_tYq#Zl9A+U;Oznm&G9V
zL2y{*a`vNv*Jg7~^v!JXe&f5c>`7D*kLKlLqCfcl)jtt9Q#N&1&hi%RKmOk4L5qI)
zEZZU$swym&YiH@9eX3~Ir-hzOi=K&BgwMM%Mfb?>i|69|MgD%d9HN=E+tvK^qqD*9
z8+LhLcoMTYX`*fOqRAT#je?}Tc7!AwWjvb1e%|_c>~BqDzOY+M0tKJ$D9P~k4AR`)
z-Cl4l;Pru{?wY#w^{)+LlUA<up7yzZDf8?VJiAJRWkZAXZEneGXS;?(g!~Oz==#hg
zZ%2+uecsk@zc0p3jQx<Vzr8E^uI|2^;uH73@ZY#o!g8Kj^{Mv9H6@~V%$D)oyu9kM
zO2wj?;n(tas4UcWpY<ttvb*%n&{gMFwZ8H`km&6xEWCEp#*EKi$tUaQ>xgjjcHdkV
z()03xWPWJQ#org>cF%Yas`=*D{ks_@i;nLsKd?+loqy)f_)M3T&c#12DgEM2ciimq
zY=zWP?cc>$!!nN^<K4cdW2&qA&sD0{>aU|W^~Z*+Ge7bF(BT#Ju`BBy<djN!&(jvY
zIcdkcmyb^Eco^EZc>3S6E!Q*)&jr<Q^E2$9Hg)NQkIz=tJ50OxT9;F=EdTwV^=2`l
z7qk*DXofs5bd=s+yuxDRq(jF&BOdUyo|djD+qA6h;CF#T9_v%DPkHoyIoD!lds+EE
ztp>+9B{t7V^tf{2<1y(QDvwNq6mFGfmD_N8-urU&_i2^&f&Ztc^3Ke!U2gcfZT6w5
z_d@HhO|qQCbo7L`dS(8L2kU?N)o{hAJFEB2bX)ZEwN~;L^B;P@+5^L?a}%vzTz+Jr
z5%tV!Z}ltr4UwG6KD`$oPW;uo>AZU9OXsBt0iQCj|FbIV-6i|&qwpV=dWm<xS#n=b
z;jfz5aC`E0kI5k%or~Lq&rRyheV=E=%)8_FoErPXi_D6;nd{8n8u}fW@swvbpVaw}
zC;Nhw4osZ?te)-Y<5RO)I~_7Ei@)D48~1lV|I|Fj%l{b!d;ebp&nz;V8yHMaT*V`@
z-RCJ+h#Zr-!SsYxJfhpTGjnI@Fq<2gKqM^;xSuF7n;V!xxW>WU9V*P`1{M(RrE>1a
z%FO15P?OHg=DuabWNrvDNo@PRbKJ9JKs<$$JYw4mUULUXGn*Si4Z6<8b5@br+z@Ke
zZVjG56=riIs6ooUJe6w9=0---6;JYrZr@VOqbUu#Djsao*FK(1X=ZaHv+aqic=pOM
zn;ThdS3Jq1&cSSMY%o1Aj9+AX{6!vr5Z7q?#+y7WoXqCNCLjsX?PnkH=-5qvB`L}`
zJtmBwYrCK#ue>m`xv>RUdb)=RFAs~Uxta0wjf#RIEQV&rCest!_%-V*k_*<|-ISXn
zt$kAZ_O{&H+cqZM-j=JbZ5Ebudt2%Lz2EOXzqWGM*FTx(<ZRQf2b<2G5^(0;IoGG#
zn>Cenm1UX59U^@qW=w3HEPBA<IFGZJ)|-^97fG4<>Pat>PO%1<n=)$5wqlT&$>77o
z(_^rNA+fsszTdQGVtNc*$*1b2>lw4m+SI0Po94%0S}k2|?w!od&_8?j?1tH!wdYRO
zmcMK7d1~1*2667-hM7xyH60@29D{@WWE>RrmU9W1Z#6D8+QO)@L+WOP6myDBukYJA
zzM70_-~1S6|JPthuC^9FU7uLA?6*0CwRy1m^!kRGmN#!RrMQN&9DVXMgkjO4FZEi7
z7@Vzz8+wk|zbw-`7xUj`wv@E=|JBw~4ZRQld$|2q{@Z{3<YRjwSsrEO14l01U`<HL
z%FAST{;$7H<?Wd_j5+@eXYa83bNwqn&-3~KMvZ@oeL@LIS>OD(tnTfdvv93ugVT+B
z*A8AidWBOVJ3r}F3cG+=Nx?sJtJG*`>Dl%5tN))h+_H7c&%giA{@O1%Nw4jHfnrAb
zKmKZ-|AvuP-H}x@W@$w1`s2KP=EAe~CVy|Q%lkEd_e4|EjU`+E`tN&bANqf1sBpFQ
z?EC+>Ke6}yyIW!JoJFfPOcD9|pXcEIyNk+>eN&rO_KYEQdcA<O)yzNr5AWx(I-maU
zbD{p=pYlZv^*#Unr<;}(Zu-KIVSM3lwu{8SuYbcY{jCpla{4A0=fe=C7RJV)tgX!5
zFuC>M^ZG>7veF`>t;IjhzyCM+6#w`B<dm#eiCH|Gx8>xYk<FQUO)Bc4c9cmpryr|M
z$~`gt>sPj4;FaDoiy<fY)}mzfxW_YR3T3))>E5B5J!!|0t)}&T22bTwuBGd(%bQRx
z_5Sncy^GvGr^RSJey$>@&U(nNR;J)u<?NZYAqOY^IV0t(WUqQnzpy-UgYSvDJq$CG
zx1K)h_i59m$Ty}c77xB}{`~FX({q9Qq<q(%Te?U8(Ghmbd6Q&{UAr!Fsf8D(noNmG
zx~ne~^5sXXWkvS7ro-{>LiJ~)rj{kSalP$3BD;LubS?dyFh$XCaY4Vda`f$vx!g<M
zeSNt`<5eA*BilE`{8yV)e(3$A+iqV!8OO(Hv#5W*IH6WqYw8*&wYSQrE$a=RYb5pR
ze3eyk;9aNr{nmv;U-#}TTy;L;as3pXm>sL1X-l*C%5I3d$b7{9x6c#?`@jXW>s8sp
z?DE_>9a&t~6-T|8@;OlXTzcW=OIj7v)L5Qn#t2z&3;TK2_+8Suk5iWhtg4vwOo)3g
zx6bWfd>rq#RGR!=dS>gKlHSWV<JVvG7u_)bnu}^%)dKxj7t5!_icLL#{mlK{G9Pmv
zBvuv_{OA^Ax%BDv``=zSn{?mLT$W_lcQeYb{?6Up*|i^UZ2SCa(Uw!DVue$=9x(Y_
zYI{(~W|mj(uJy7}fU#xucA;XGr73zbGmR#%a^ZCKFkpK%_1WL^i+c3KmX{w*e_<1+
znDJ&#;+xPc`+rF{`|pP8_5HEBIQIZYq+065sw=DCP71v*d`t5x-;*7wiE^<o8`F2C
z{&D<pYtR3Bf!mwjSF5+XylakLm}T<v%8_HLGuM2nc)sFmvt87Sihy&Ek95W_EK%FI
zbR|!svGwW$&5r)9rHuMFmrbg?CYe-IzFF?rj`x-`CP<VTZS}tqW@B?IZA#{(vzzbq
zUvcmLUaB{1uJ_#Mzn`9ts{5|*UzHx=@*z#YRxabL%Ixzw96Rb81E<ejB=N52iqX>6
zGfnH(_c9f?79~mFSs6BQzbxxARcFV7_3Q`EeSNz<_*%#}F%hfJv)-kC$zNObcGum!
zYOblrW-Tzh<bJ^OEpzeKM8T5ob6$StmY1SVt5k69Em3^nX(TyyN3bO4`qO`+?p}00
zoOZ`Hc5&e6OPi-&3b6XleYbu^LdMDF)t#=3nacbsUU0dt=;nE<vj6ezFJ6T&Bb*$*
zEIF`pvk<$*Z@)(6DQ?+68zaMJPMzA*dXewmt4aI!G_mD;`Eupvj@4pszVz~*QvGH3
z>mti%1Gcg$nhQe{u1D*NS?c&+zcDlU_ugrf*SYQT-YA=U(uV7b(h`%xi=4+kMAYxz
zk$>oNicFnd@X=)loqI(5Pq06X*l+N+S*3qtee9H%OR^{IS$zD+uJ|{qrCm2~W!Jm6
ziDXvx2w14gHVWyj)@9+&;XYcwsw7D|s56u0pJL-4*$TyvJF9N-JzXAeZvEKrum|Ua
z=RfuQ3d9R{Gv8f#B(P{jxu2V%ud?nN^G6Kz`Wq!Dn*G_jbc)0I?m0E`+r{gZ5|^n7
z&+94wQXY2gg_L(z*taDe;xjuZN?LFAsjOsdKC-I$S-MMy`*TOb*zL<YZpL--x(4h_
za|zkAdvUZO^Vw64o_)`c%jyYpDd+EwS!Q&(?)%$Y<}P77WBX4&`}VzR+g<+ayAEik
z&;FMw8d_hvQg2)ChS2-ZBH8+-w{6~cae+p~H|Z~1|8umQyRq^abFG6_YuKd4!i^Uu
z7&ZUOEH2!Ck>Bm*;&P6{wgn;^oL%gM&NzQLImdX3vhi2lP1ajipMCe~<*`>yB^Ns?
z-oJaw_t7{0_aj!*4?#ya_tq@X43?YQGFRoxq<?FeTosP5{#bvte7Wh#O$s{lJ0!~T
zW*)rqHN4s*cw5g2Ey<qLC*0SaC#Wo(p84=Zq|~fi4EI&@A57)`>*P7JsCT;5@h(m4
zi>-Sb=hjSGT5R+8T<aq7zZvn~Q?8nBy(OdjIhbvm$c!fkQhv{P%v`)acUI%(%u8Ps
zO25o}_;J3#s**b!R;sUfexiP9_;mh&;$6S~ZShw9zT~1>+L_Yt(_ZeHQ*(YX`&YRR
zYuEDhET*iA(C?`cGjdqv0+tHgowqKi!hIHBRKmNNYeY6J`<s&U(yj00sg<|BU0)tP
zYw22<-Q};M;>?fFsyJwza&EDtbkL&0?!V2QzqOlpT$<pvxyDCX*h{4D>#q4MZT0@D
z7T*@DdpucEdn4(=Ogs77z`ciV-{P#fIe%w}<KHwdIiUwuE5ow|zpr`fYr4w*hRBW>
zp@sJrL{~q`<dphrs^<LOrbvCs->=i27uMd^Txxgi$ZfUDzq11m*)RBXF__WZdNtE_
z>6-0ELgBYGE^6s%{#m+jB2Ro`!L398K4|vdufJjCQP3YLu5|8h$*!H-?_F9UqHOp?
zv>;>`=e?zJD+;;WV`3|3R}|zLP25mFXNt?B39tOGPR*2I(pYk!qsYYT@7?8*=~r%U
zU|W@Pq3Ogy`8{(&Y~Rj)wq@5G^S8^ER911crylCrdxz2X%+;;YN5qBph~3^bJwGF{
z^WJr{w6vbB^)sY5?dN3Ter=q^({WGPkLSs|i!v`8Cm7b2&sr?|y{Ogyp3MI3p8Tg*
zF7CTh5b?;I@rzL4&kyfzd5g07J@37qASS#*^JiA`MY-uaGwK(3O*<H=$R;fF#o&Qi
zsqOCD5t2D)xRY7@Yaa_2RBwI!HfUPmR8^Zz-vk#sZ~gV#e5qD_bo-QbkDt#@idw;Z
zW8Q4`<Rue5i&|PWYgXD#@RVNn@8695op)sq)^WODI{lt|*ZB+aziz$Ru;f_Gx??df
zk}b1qW<8uGccn`>`9qC;CU@?E2}N^$GxQm7s!uq@^h{@s*|u*6#k$R%v*+9GP_90F
ztlQN5=kLZJTuJ5vyBao}ed<)tQ?@jR`O3X+xi9Z#S{s~`xc9WOaL3n@<G;5*b2_Jd
z<4cpn{e@DwGHYa?72BQI*87`_*-!oJvI7D0Im_0aTRAIy%e6(mK@ZwbPYZv}`Xef1
zc4B4*SN7w-5)pFGN`+aLud@wJYOlO<XM^0CpoLqaH}v-}Ozm&ZUdOATB+I9<d1Zam
ztHr&WHgA_UZw|;8-fdI!n}MBUp}^Fy&4L!5n+}@KZo0NSqxi78MT(kXarw^o9}iv1
zOs~JMC30!$+S!lxpH|?0t>ndGwqV!e7lq#H`m=mLYTR-td8~g>O|GwGnbO0Tz3%q|
z&k5fSP?vVH?mx~ivFynHh(i<JZ+@&kJ2&Ca&idG0<<Fe-X52da(omg!j&R4}WosP7
zC-YXwd>2`^AkAV;z+q7_XTx`sZ(Wf8<-T>l#%ZUd2xaH4>K2tw?x6aX86W4w@BVT!
z>yhCFofi*ccQ~z-cS^G@h%JBbu%~>=nRN#Rw1W+Le{nVVH7!uwynScb*7DU~Z_cl;
zbqIWX^p?=;`tr1k{Ps0P4=&A5`|-^<ZrPXaUnhlSuL-^0tJ9JDnelwz%8o^GQNk%V
zcrSTO?%>Sqmux%nv}o5JWlpt(pPTQ7eZ3=k)-udQc8y}+UO{W#f0~@kr58C@)U;V^
zivQ2BT<Z4Whu`&xf3x*pA1vIzsGe8SE|8nO?QS&NmRVObb=d2@CGE|$M5aYgIOXuX
z#Kg_!e+Nfo;<nO`&G~$u*XM;VG3fB^68dv=rTCfH*PbkAUft`7Guh*?WpO%3m-zJl
z1>ZajSj5k`T`-B=ui?Jp{IT*?QM0Ab>AA;Pd6(>1eV{IR_NUbLn--Z3hVvE)Epyym
z-m9(}>RjAv8|)kD^YZnF`j(<3hU|G?U+lV6zNc^JofW<-jc=u#=8<V@EajK0SP_*~
z?vgb*{N>N;2Z9rnIpi+RpB<m~>A)QB&lVGvWSQBwzOYv)D9GNwbY0pVi<>FCV~j)B
zo>SP*qO!E&e8AQHmbY)OS2SDw+JBPZ)Ah&x&Dg2FvRh^4u_gB}UwmJ%_?_>J`j?-S
zZkld-e6e)v^c#z-JlpQiV_r93Xf<OUU*m}eE0$d?e<kuWL}b{6>Td-cx_>}Z-gVx@
zh?SQuH2#=}WKTQUt`_~nBscWVIWcp_S@z<S`j=}6UcPZ@!-e11XWY=KXo(I!a^&GX
zsp<*Jzm)iW0wc~_@0n}K?86xr`1@YZ!}Fi(Pqc5F5-HkPy)|}`jYdAJ@nL~;e|A|)
z1hJhwSkj@rabNwF<J!AxHMK3Pg_x3#s9#Vkd9c>dE<k~8<`%}Ox{fjn7=&)F-B<Db
z%LK#8zYf_?UF96mxzPVS(}T*e70QLI=T05Id3{pzlV;a5k;*c1HZx0PI~;=)-UV&F
z$e*&QXj%Pvwa>GZDs%3fnXb9>UEqi54^j?Ddn>4xzALx+Ct2+;b={-(WzvG_xwqe!
zvL3$1crnV>ec6i@KU0M++>h#&cv)XC_ddUIl_C4ynKE&XR)^+J+oB}7<~7?73+3#7
zo!G|xQx&Q%dh({dQA<m(5}ql(JkL#at;Nay#;MmBzwG7;u3y{SZJk@wS1)<sdB@+E
zvK_M)-QKqE@uA;QLT-z<2q<@3zMsVR{_t%3Jr9naYgk&|vRGi<H;zqPg(|F#H81*i
zZ1Qk+KhSh|vvkhOn^HEu+}G^x_!fmV8E?5}w{z?McF*P8Tv{KsY}wHI+*&R3ZB8=x
z9%qH*OL`Ne9?v(8Io0^9{>Om@;qAQ>+@Bpj*m2ur-#)Qdk7hXsm`3#d(EO#M?ANS4
zaaGv4UkVmxijSTu{&_97yZ@qC3-=qf<yi$R9RANXTYM9?+f(qUV^YzP9)5+NUS{&O
zZ`k!`u*+t2Tcv&YYJYB0L#2?XseOP}{EvBGAN;7vzW;aClZ`r04k@~B5)i9*%6Q#u
zu#P)oWw*A(T#-x1JCbYJrfuP^(s!`ynE5u{Myxb*wGq>eK+SEtBg(rEnD2UdXj|FW
z%*Vdl0*h8nu}EE+$+b6i+v>%WyH_NeUDmN>-+$bA)@{iYx&2#b**7J;U!bLQu(p*;
zNL005$#LO^cU8^znVW7NxpnvT1oKmWX4RW93;Qbl)vcI*WZfLz`&OGSto*#X_K0zK
z|DL*ik`CAA_Pp3IamnJ%nxW3}lTS3e1*qOv3Vi=&``opE4&KW<rQ&-+y7b}kzq4L0
z-~2LG@VD0n|E`ql_dje1+Zng(Leu5^r=9g5V%9%bKHYODJkv$Ro_RV?QU#xmsQCU@
zU)iM>&8Y8ZpDfpW=bKSI-_ZkAo`2rF%1o|vP85H%+)_A|S#W2}RK2A?)SVOr_6U~>
zu`Szp{bJFlX?n>56?H9^b=slNCN&o=EPWZ0zAgQ+;vV09Sx4fSZQYH|Dk?b~%1E7m
zY@?Btc0_f=yVh;<zn?EzS8BAYx$54v<^w(~Z;a>t;WYQEZ*4wtbneTdKZl>{{dwgm
zd`~QB!Wwo<O{Zm=mv6czoqfD6CtBRGFh2RM@P7rquUGjte+`P}oF|oYX6IstjVZN-
z7oKuoy0Pr)rM{B+-+p}MK6Q1;B=4KrTcVx2IP~*ZOug`6m9SCpSHUW?^y7V%eE%|c
z&S{f=c2;qb!O{gGlI;QYrH1EpLms3~kN>`o{i<4hKmW=doYRXo$4pH*#icb%-PbWm
z=Ieoug(>%LR~mV$UeO3juPIvRYv*>nnLSPG+8j@RJtp1oT^}1oS2b17HZS$RHQVmp
zGyV<JSkpRZUoedRSC%O9&0$6W>%?<w(zrRER)~t9%CD+zvYGI0ruehRCiN-F6MB=A
z=PJ*bx!U5)0>z;4<yY=aaNMl@BPmDKTtcRJwb1LvoaCYq;p4fbHdl83`2H|dKJBc=
z(NL2Ei_2`Q4{UDP&{~o8f1QfJxA(O&K^HiKx;!7SKGQlfWv#R1F?QQ+GapW9@&5Au
z{nPjBKP_L9cKv)^PR{3soAdse+~NP~UGMq5|93R2Rn7H=llkd44S(PM^0rt)sJ_SV
z)Fy*3OE#JP+<jA7^V>b4<i8xjv+dW09A?>|8_TYwpSH{DqV*E<=%qg<NUq*<ld~%-
z`TE{x=}*KbKl;gJwOHOgsi;50oQFlIj_2W?PnO~@rfbhiY@2je?^MF%$sba3RdS<R
zt`tbt&(V)^%P=UPV0eCOxx(>pLC+&C@(yWpB`v!h_h8k^O&|UhJ}DH8`SAH%P@2|3
zm!B?&EV%{tJy@)9YO=|jw&E$rLmFj_bmq#IJ8B91x?pWOslr)O#^j^H**){O1$rs|
zN{HX@zQ~~}=}Lf`{l<M^KMt6%uI~Dix$3~t+l>YMD~#%cuE&HWhsaB7-#D?6JK+5J
z$F)iy#g|{t&2ttv_%L5BbVmc@ElufXUHZ)t%9fKjeAnJTEXu-?l6FC)LUDcQ;e`qX
z#ul8+d^@6fey!S{Y^u6NL2m+cbKE0a=HmY*3tje3Z9mqnQa#^6-qzCc!3UNIt%QTG
z-5VUlS0~I(E1R;i{xk2Y)|aIVpPWvzNV{-nR@~(N^*kZ1{ObF@&wusiFR$X<*0T=^
z(jFhTdM;%j^)XP_ru(dd>&gB->LT-eW>^WQgcQwjUh*va)f97MW%KUJ{pwr3g-*Jn
z{``Y+hlI(-6+)-3e$JcCt6x6nTc`12pBcMkVnh_{k`fn~?5L4{&*oaca&FR99r4o*
z^>w}i*(HzEX7nDrDZ8e@=x4UWwW+ohk>dZ8%6z+9wa@lEn(gTL{!f=r^0#Fr=WopV
z-?`}R*~^Op6wiLi@ecSa%OZ2T>DI)T|Fis+@46*AH*aciFgHIhHa|8mV)D6Jwu;xU
zrSA7$AXWKv;U7!uovc5v9Jr#Ax2k?eWmm8!^VQ$VJSk7_hP)1BoAfHgu!`lV&yt-5
zHwDC|UX8U&dHCT-<tN|ocjjdFnQoE&@>h7$sSA_U{4_S+%V|j4Qet5s+?=~`@zU#J
zG0sj(wMm!twcZs3M6I={xW;yTis{tYP0sRrqt?p?ip6XW{3Cnoz!9@gv(;Yyd9nU|
zVtu&u`=49h-ZFC1={ys1q3Mb$b4c&xt)^my+DR?jrzMIBa^(pumHD*$RASAFaO?Sp
zrWm9sR>sKRxA3`>((6!SZMkIKB#~b``d#7+JS#$2kDS{fwz2ZGg^xqa^rfGFpL&$l
zDipf!bJ?kDvK79GMb$H8PORrS{H*kC{M$2A=FKRpui2s!-Cij?O`xgk;k(j}vqNU6
zxqXj37NvWmZxi#y8Jl9ZKW3`XDXe4l<-B$0$1#Db8G1r<o~swt%_?Nj-#m|NgX*c+
z0)_Z%-i8mn_}|{rx@lAqWbS>ERhdb5A8#hpiZZT=8Q+d41=f{+cb{GI{mi;~KbR6z
znKb|9%<TT^VqMR%viYR$#pv{n`j<+-I-l)eJU1;j!>(jz{A&{?^GtEIV)mW-?~^U8
zVlw_7jsFr-aAoel^wg@&PSKB<E-I}m>bp8+^3S<TzdOBIvT$d=&pES}&s{~AO9LFL
zuFnyFDJg#DqJws{vh+T$>FLJ(A=?a}v`XDbeS9glznQDkp{7ctzWkQ*RDn>DCodK}
znK!AlzvS5}=e_BCi>;c<eAeYJ<YhaoAFAsY=e>pLNVvMBysg?#SuMdxN6pLq^N-pY
z8zxWb^jmfHxue0^B*v)=CcId>!e+l_wcx^ePN%n?R525NYce7GQ~cd88&c*rhi%L1
z+`v+9wZQ9YJ^#f?C!T#Vnv`0vV4Zia#w0w!WNW+YJJ0o2mv!&9-SKXCo9eyx-p<NX
zoqkKsJ8bun6Mp=Y$L9J%x7z-@9rd$5ZtVWY#@hY)zqD=K%0Jq(e-(e>TEKbkt#WUP
z@iD<wo^!Rf-CSSIu*>DT@t>!eYtB5JD=jp!uKI6qWTOnvn-Uvt-EH$HE);NMkf=Xm
zsn8L&%7EE;c6ElJ<;(bKbJrCWYTJ11DU$l8rOWR<@m<$K(Pw*3ZtfLylK6L+O=-TQ
z<jM)YZ#O#_zu|w${3?3i$rl<|ZGv-|>}Efoyef6h%?pfy+g<FIMl37vR()&qcVqi0
zeV2^Z8hidv{V$%DFWB4pefrVHN4qXeb-88nuD(L^==a=ItCg<{*6y<7(fO-?Nx;IR
ze{YfF&I<*{9u@k>iv2aWOsqEf)VpD21<%a`PmV6+3e~;%?(?OV>}$)9TRbsfvpKIY
z`|I|c1(utXYnHeDzaQdcCm2%_vi;%2-Bms3Cb8Q5yuBtnQOS^Z>5seidyK9HhY9QP
z#H$?Qz9}nOAG>fytKpVy-*0OlmW|Em@O`exE0gB=`YF!}qdRQn1)*QEW42fPUf`4w
z)!2TjamHH{lh{v&t;#|(3nuO7*zIjOi&^iCRpYHZzb~6qKers1I@RU*^Q@JdE15F{
z6a9q!8aCDa@Vc`xc}4acFCm*xk9Cse1-qZU-g1O>qh9SB(UN-0lMxoqT85&}@197T
zDVVVR@ZDc_-?wyq>3{S{(r=fK;L+Dd!s3}t4;CMLSloHCQGP~wS!wu!l)`Y8TiYc(
z?8-Nm{#aI3<?y`JxVqP8N$KP7mHu9TgT7C<ukd@7Z`(C-Y49HRH;29Mt!EXy=KK7E
zbI|g|$AfAM^(N)Mztp$EqyEl%%MPdWFQla8KP`RJw)eH|*<HypH8+!M)%`WEYv-^X
z(qYmqzbE`h_IQ2z9ZNfg2%#u@oin^1y4G$IE~gBg!qxXb+bQ{yJL-@64)(wIr#%0?
zi6@@Z{;BMxM&T2Jd{)IXy0`UrO)Oc-vSi=1$$Ojh7GHhr`+#Zh!o_p9|1T4%FMGB#
z<d|mzUx|Tu@t>n7H!RK3bLMa`e;=%tY*VbmY~`45yf<&hl`}KU&)<%hTu`J~ez~AI
z(!#~h{%o<KSjWLNw{LOgOjdL1+iCx<J2WTecgXIl$gPJ?&9eG5_l>7!(3=yldRNWL
zJ@e`(tCEDnoX67Ms}`3&&q-E^`y|Jz;ap!`Eha1?;I#9?wL1HQLL4t_pJ#`C;I{gf
zxHe}=3CrYSg*|aB@4Fv!-+6gRwzI%*YS!^)hgZo>zmz=Z?=_vyuD|DaU1>y>l}A#K
zO#OmX34y!s4%ol9;P+sUeaISl)j+KK;1yBJgU_r#t9u+;tL5c6-SVOF@e`6Swmgzo
z7Y~xJUt?!FW$7AznRZ1*gY3SPMpq_fE{ST_P*<0RciFGcvo#!?EnqLWEApht3dXxk
zJFmameDa&>LBXXJd>i^(HY;tbw%3%)iRk!v!GhbpA(vaqt~4;I^Fhl#{RF)zJFaWf
zFXTmkU;L>5Tk-@ed(Ne~>t0S5PcG<WnbO$hDiNi;vi{a)>*CrBnf9}tOQnO;1a&hc
z>mz-c7w=LNtEjd2wKtWHKIm5R!bz`v^;F{wl}|wh@2@XaT<YBV_T!=DSyv}mHG6Kl
z<Zl?Y^u+DEA$}JBqK+Iq$0qJ!<T^*@A8Se0SvmGdm(Q2pojiSQ`Hd%LF0V`XT=81_
zvf7`=d2;Hm2Ny-_6S|s$w%#&zY319_ILqBiOXy*OqU{>1W1R<r%D%>UwB1NvWAIzm
z!DI8)<%iCuSZ}*}et(iVuXC{3pWk=hE#}%GezfhYbLVW={5zYEI?X%j6@8%dR-cdh
z|4%1BOt5|U(l}O@L$}De^=?%__>P6{>RM7|z5V`6&Xn8kuvi=ZX;=Lo3u7G%6Dyl%
zH+-@Ln(wf`E3vq9RoU^b=iv<tB$)ps3J9bfIkchroUWA49OpxBDa)-6*gva??vxNd
zFQvz=UlH+dp7Zv<zIJk=0<$t+sr-tLpC%^dQ>(rpK*2Ti>ycUMTf$e{pS{E|&H9QU
z>*A|vcKSBkb>oGYIbJrz9{cm8e%|fLesj)m^_dwkYwxKS$9!u3R=x@7E#m8`Vw)Hi
zb};pj+Tm$$J9dT0L^e0~%*znJ9>tmPdsgeC@X}=a)78#vXFYKeJbwDW#*vVS=fCQl
zV|O22q%@s5sBWHbSaPvt_9w$b7h3Pk<2ouXyX^5){%y++{nt3N#On0>)~e<_owh^u
z`<IGO4Pe~-AfjD%TiEG{%2I|C;Wtyac+4wU7`?8(r+JH7v89&s?e9HHG)p&JzTBZv
znjB*L)9R#SdNk*&S+8yEzg#MKv39P*@n6jA)|I@tIVT|W)ct33O)ol4S>8~5?03mC
z5ur~nU)C$it1jqNS#xZr)t5PD7N;K1`zUngVamSx=#3oC-<~&SY{)+^vg-Kq&kx`3
zmfS0{#L7kRtnQY&v|laL(p0N=tLv?s!2T)Vw5Q#Se#@7+on{Irgm#(SymaA#RQMt5
zo6TSO6+>($=kl%jY_;>(@vf64QZ64n=DPpxFPd`pY2d6oM{5q{1nBP<T7G?l$+NEN
z^>_9?IB?K+)z{W~#n}>>UQ@RRI?J8dww%HG#gWbPzA*o{slI&YzNqQzw$;vDtIPR3
zPJURqZo7Am(SsfS-LLNMm{EKE`~J`Gedn+G#dWXkT&?K$gBe`krSC0%puF!+<d*X1
z5kUzHj(^!U;c)KSjY}?T9ZNX*usM?LlEaVv=Xa=OSZ1E(clJz*|8e+#{rBIAaR<M>
z{9ZMy)cNSi_c^hdC6C-f`*M_0%65IaxHZe^&$apc9g0gz9{e@m!T+SB=L+NP!?Ijy
zOLAQ&@9BT_h9z}DtE<Mk3ciYq>*@>FN^I(na#oqWUS_Z4`qUK1C;ycGU9z41SM&F`
z`oFd}ip;z({@vSKTg|_B(jm9|S|x?`J9j_g?mW7Qzx~4+CgC4~7pHAoZf$kb?z*!9
z_tr$qmwidq`?=VaSd|)FXQ|z1Zr5~qTk&0O^~|QwMa-P@r8{ioE99OA{yysR=GXkG
z_cnS7?9+bVc4R{3ug0Cn9ait!+5F<<H)(NwHI8dZb+;_C8VjagOl+5n?G(v7ufKMk
z*oFF25A-&kZQ$tiXPM*fX*A*K*8@jSx!n8cW2CG5ca7;TB_4sVBHVSKmI}mtZk)Qq
z$2{fLcG1j*Rec3<1+On0ofm(%eV>2zoHYy0xh>15sm<G)%p~C*^}*aIirbTU{&UNs
zHB65uRV?24>R{gcvRx%fQChy~&BmpBi-kUN9NT&2OZ}&Rnz1XMd(K%qd*jPZck3QE
zE}XbvMrN#EV(g@V$ZHCDAB>VuM)C4JG`%__+li-Eul(8GMb#@OU45;2LgwKXBjfbX
zpSxJ*h0i+c-h7eeyZg!LjRle}TU+kP2j7jpYkJ$>_D4*_)}SNi*5<KcVU_R2b)9Fg
zID7xB$EG%^z5Tj&^-J7*<Z8aUIVmyx*gH+>i|=dq{20wRpQvIsBe$hut7CUenCB?8
z{)Mb%QCr}?3B|u#FI>O>eh15+nuN(u8N=K1@`Jph&FlHA%umnUXDg%Nkh62k`ou#0
z^9LKb_-w4RYPR~h+1I#U{!_!Ha?vwcgFWEMv~9bTmhbME(cXXRU~7G|rc`R{zL~sV
zDw<q&XC*5#GRpt2R{VchOS5_35(T{qmR)A;TeRQ1PkYEdkHbJnoyTD6oqHb-O!m4N
zxT|@d{IP3yd@NV4X9_qR`AlZl{_aXX-;f9Ex|=UFx6S(VS!t2hvlMYxhxG!FkDQ3U
zv@0apSD!QHS@(5$Bg3A1v!#vx*M~%lcIiJCX$;?eFha%A-?Qb|o%tV5>o)z`W3usb
zcB=a0woM$V*#X}+pB7D+<<HoCJ#N!9t}8ZQ>Nnn)&#rZ&(~S9nLiy6x-WfBBTawfn
zEkpk*ne0{FeC^nuQ>~76p=_=v@@ngMU%i|AqP{@zqsNk!|8s0!J}``U|1g?8cx7Mx
zxeflG*$+;umQZR_&%AZ&Y4*=MPZz7Q&OEb3^v`04-#4=M{c%^3x1W04v-{NP`AZBl
zQnDw%b!$@px*%Wv;>O?aOd9`X9W>v4>esG7*BudYm;SNsci(&1WaZ-Qytlu1{Icbj
zeU~sbY^QI!z(>m&caFdNzN)u%(v!bhQ|v7lWJKxL*L~4#TzPU~x!dy9hc8)tPdq%o
zpy!rO)*aVPA8t14{S1&?HQ8zH64&?qht>u2-1sQm8!`8@AL|V_#al`{44$u;v@T@(
z?g#H@`>#9yNotd;u6V(sqjL`5QaSAA_y5|=M?zmSdc1Bi-kQNLknpK6Pyhexn0ube
z_i9tF+8(%6rm*Q%y-3Y$@lHPJxiLQ;{;_$ZIGMS9Ez9Ddz}w2T8xO2Z_gK=oCT{iN
z+SKwt`CIMG7N5_meyj7QygvNyx$@r|?Y{<nDBbu)`RO~|q?m)*&rbZ3e0{W4;cUT+
zhsr8$9MW^SQ-pnfh+dID_VLC6Gha(Dx$kwCIk`AuGPzm;Yq#u}HgR5k^2v%YscYWm
zZIi5Sww|;Kd|^Ff?cV;nIF<Kr9ZqIGJk4*;@$Y#s$JU}w4ac1CpLXdSou?O^`l87;
z`$9AGi(J*y1~z|{m!JQ7?FC0ZtCna@aEn~K<?gnf^XG5V>#F^I(LcypMLWvzlI)fi
z-E$Jz%jEn^o?e*L{Paclg@4=HUe&Wa6)=j~d{6z;7lW3|WeJ?ejau%@mFmU463I#b
zRGO6ZY(i=UTk*`O{%vp4YtEQ<zGMqc`_kO#;2Ks|Ti%oX;Q{N5OF3_(3)1?%Z|X<H
zNc`Kwnv$?>-Rd)Mv}Y|!nJ&B6>A0=VRLd!$VVd=`Uzr`*{IKzwvi<th)C(Ees&W(R
z-Oeb_EqSo#=%kkVy}w`l+IC4X`B1%Ov3CXYG2WGvo;EIv*`_>Ub*ry$-;Z<KFZC^o
zWqF=(Vg0SO|87a1(tlOjxFEgk>@VMoxyid%eY@dmH2K2hI*sL1(pKdb2Pzm(uG#$f
zOJVBlxovGs6-CVJf33d1;Bw#b_skj2*K<_*?rmCCpYdmz<nr(zvEP}Dp3D5nS2KOE
zq)vV2zOC%GLANq4%vX08)(E=Z=3P*iWPWp+^sG+-_a;gToo8n~F5A5*Jtt&s-<d4|
zBHa1r%D<I^XD>YCe(am9uC0%(k4)-qp{GVpcXb&&SATmfm96CK6moUzQ5k-p)Ne7_
z-}t7#oBu^l{CK_2GtJ5>?JIuz6Cc>JPM0&Eaxs>F)18u%+gBY7?6dgVlReJ<mYb8G
zBAlL9D*JQm>q%?N%GdtOzHgf}FGkSO%_rMv%d68b6RrhueyHVsR9a(YuO?{Y)f7^z
z<15*4FwyAJnOOxl#kO1N9_=<)(eqDuarf!tkgvCO|JU^^9#7+{UwP%PuBCFsTFah4
zF8ek6mRI#{`Wi4Vy0US7Ih#&z6VvZ?f(pBrO*kW(J%_FA{GsH7`~SZZm(!iT;&=IS
z9sVA@$PG(GEx)dx={93|f?@H616{Whixb>Gm}g}#TK=5p*N?Svwr4ovXTFKEI+F2v
z>8s?<v#P4W_Krf{d%UOHsy?ru_d?*$bs+`I|5A_KTuZJ>a0DCIEXbVY!&~-Y&vWTH
z3s)??_Ns1`T4213=)J9yUXLnxcAsKhC&9KvU+135_bpQt7?|fC^(eXGuK!VaQkbK7
z#j&dz(w5(qN;Nmm{MhWRx@gVG3x#)FF08w?G=IwU1N?jR*X;7Stf;a2cx|=R{EhW<
z9UruvGEdz5^w;fHh17{QB3D0t=4ce)Gn8D>QWu+<+|Ar1@?P{+uI1GXp<PRZE?VYK
zRGL-h@lkKRm&x;G<%RD))LsmF^yJ^6<FayYtX6MCS(rZAS-hWKT-+rhED~N(zWz|k
zx`(cXyZ`v_-tlNYOH$<gljqd<9x{nBZ1`~dRXvN*v__po&$M{UZo@S?l0B)<@7Ho^
z@!l<YzGwfkDLN-Nr0`F<D9^rO-PW6r_OuzlXV0;i;kbGJG;Qh7f1HmUbhmgj2xR^^
z=h}bP(yD1)L7weSX4TiaN4sCFm$}+7``=%k+-Z`>Th8>)XL%$X&i8Z62dDql^E?~l
zD+{YbZvWm}FEUd!t^JGClyFIpMH^n&%v@v8tif_`X7Joy0sE`&Sow)OTlnSlZ!z`r
zJx|VFes_4rmB;b{uCGcKReDOjF5j^AMBA>9fB!6P`ohu_ySYIncwKGWosB7K-Zg@I
zw;v2Oa5X%~EGt(g*P9yrt#>zD&Rgv~#*KUq2c8%UKV}Wq+~r;``9-5{uENKv?1%g{
z!Lwp+`9!?GA@29)x7U<+-E%I_tV>pwj@dumO4{S%e9fXc3(qD@yqQ0L`l@&{wG<9H
z^Y<QG54pJ?IqF=O`1`K9V$q+ziSfNBly5}zihTUHPM6`IYWb5t!Zv;{_RT-q=yuYr
z@8wsS&PwT5tycP`kN5BEbgZ9b|EGLG%+lO_M{I6uzj*zj!0GJ8PZ=+-m!CW_!SSeq
zL!3IJ?FY8A6^`#JCz+==ALu)>EcKxErUz&CSgqLq-ODLCY~3YS1Cx>!ZC@rzmHoJW
zF3;0d{MN3Yr@Ex>XsH`$R;Js|?K{F4aVUtfC3mlC*5PmK-L#k$LM?^o9E^&*Q9qHH
z@yP{WzQ08qJTs@BGgY`Xt2R$rZl={du7V9uW*J6nHr}u95UH{;v%SBQJw>K%$>V!`
zhQAt(?<qI!pUEWoP%r)SH04b^EUFd%e{TG|?cxK^>sMJ$#ch<>b^O4pb&n5BTsbGg
z<HxEOCA%|U++wagJ$cvh=%SF_`GwP--&j#_tbT=asrTjDO3m2gmpaM{W(f#h+p8nB
z>+5T7{et5>JI<V(lOFQ9_szxGT?;nwojJ5lqeJ>c!MC)RA20tr@+izTOEt#gL4okZ
z&7WP2ADuDT*c|Bp(md&lkmLGtv5i~PHtsCF$GrTg=CVbMeRu!vIx+G0t=hjcIu=aL
ziTb(gUHA3}rS+fMHe58@`O+kD$3%`jzuNfy4b_acixsZa-4K<T$oBh2|J(d!z20vg
z=ZbH(opQlX{L``p&DZ|zIO@CWjY88t&!)OV9rL(kzMXn9&6rcd+~~OC=HO%29tN&9
z$r`+g35V6+Zr{CL)uYunHAv)3#J;zIYjzy}y|inRw#K8Nk2@D|)GxN(@bHl6C5<&1
zqVKo)M}KlOIKm>Eaq5~7kLMGU!hf;yZ|YQ1Ccm1csZiP&6g1<kaI}Eny3(aOx>wTK
zI9WqC{9(RtdRrwnD#O?7f6ZTx>pSD(^-k4JJ)f%C{4Xe5chBNGEH=;28Wd}b8$Py<
zo$-Wem9+2U2HxOILDj<-^YZFbv-f5@t?4th@)EzS&>&tp?|4(j!TTa>@29b@V@d1Q
znt1TOfpSgeo08B2Li=YIclzJ)nik%evT&ct6zADj%`f{3^{%k}d7Cj_?#(=-?CWP1
z&8@OHGGU%_THejJ{~Gyg{8W!vXC7K?vfqbQcEg)4siXgc4n=$^@3Z>ve5viw*ZL@i
zchk$S-N-exSmAH-<(}I=r<l7R9?w%U?`PWjbd!RnnEv-^#*E@cJ(iV$@~6aRf07Dw
zR6m{c{;WchYk<guf+v|GKKr;9{NmMa{2A-r!NVi8$uw@&o$S@`-j=5SoAiQpuHn|~
zhAXRW0*sdwWY(;0uymASjry8?ukWYSzB$Y57j*FG2)I7iJ`^XHG+Bc?cDi4`WZ#h=
zhpH}LexIsyR;@?(8Dqwa7Y9PG#VU%$SVg~!HF~>7!QGf)3s>Tte%HH|HD!V+m)SWg
zk8Hp4OPi<i{?2=w9X92po)h`(e>?LXH%piO((h-M&WT=fSV7k&!?}Us?cMj0%O@|E
z3FrNL=3@QkUft#uKiM5W6tD8wuv&19qMg{$gcVh;@ft>kfyV1HzHszaBxP-6c<P{k
z;@`wfMny*9X%f+^-@myLr{g-A%duL4SMu1Mgk4PE|MWfPc&IvQ>8Z^T?@~K`-0EKQ
zUYs-McGNK$Z~ymY$K!pPls2ZSPQ85b#P{hU$ya@QFWtUAyFPCAgh1Vbpe^sDx$>qj
zIij%3lx<~E{`WK2!~*aCn7BhqW7p-KLhonZ__|Ji`5W#NcBh_io9Hyt>hJSTVX?~3
z!Fyh;o8Dvn<m`?zvFj3fvhpdrZ!le+dG&w^D|39S;O%WI_Sz`0ENR(4t<<2$@0-Zw
z+6iJA2GP$<SS~FL*G|mpst<RSJFB+kp5ERSA0~cOxD|X`_8jku-2L}Ay$E9vN!7AT
znqfX$>RS2D&RpBgD)siQbsP?#=Cq`H=O=h+wACh*+qVCja?D%okHqb-50hpEGf6a0
za=k3Iyo)dD?W=vOw(Sb6Inq-8H|9X(wv2}>b8haPsKLCFPf)#OLrC=I#5aER_e^{a
zOJ|*qZS3y8*Ri_#-0ymkzTLT8mpUeT{Sq~K<>eA)R`x|}rlwTx<ZWl0-?5k7-?;r!
zJI91iU#>iPRQIzW@Wqn4?PruEE!zw0+{_)i=d(the&x>mNH=kgk)P-Tm#ZG91#^9m
zv(|TJmUSpbxn9VP*}-BGtzYw1bmz7`cj}usWX`<cs@8q;L3(1<vH#Z$3npr=KilH)
zEv<NUz|6ZFow$E|&f4xJ8m-&)F<qeS?2|3abEiljSsGS*Oa5uOp}>YlgPvN+LZQw_
z8tdOU*2ORDFF3?C@$IIUS9gjpH_2a_v@!mk*W1-RZH|BQpJqEN&gDArGJ5lKhce51
z-|jy@U2l2*szB(PnTx_Xe0aX69k#sw?l^}TUvyAox9#zk*`2WunVqX1^@SgBxSH&8
zca@j)?Z+8Oi#M;Ix!%@pedy*+(>9GeEY;?hL@&*`xOHm=<MWgktW#Osnd>_5SzWyr
z>wnWdaoGw{F2l{U*Eu>j&HnJCWlPS6S2CNlzV&uZD4FxLe!0(4<9z2Ni(X?flh-E?
zIJJ04eqt|Bo%P4=*F!b8C^N^&C)lm?OcVpc9=(37EXUh@Qu>fg_Pf%Px7`jWEQ$JL
zyr$f~WWUt@&rCrpXJ!Pv-;}(Tec548b;dn8X76qqdv~2FnjNsPtxv^GaKgUzO>fLz
zTuuuqy>L@FL9FDQC|kXyAG=KazM|rvTEPW{OCs{hsvXy^E;RnKQ|#yardqdE?n^v6
zJ63*Jc1@12$-C!ufM1rl{faEjz;6E&w^wxW&w2PQR(+4pwu2u;tJBtH$p7rM4XrzE
zcs%y}H=$qm7uE)d-`t~p!6l3NpwHZ$><Mo|*Qs7DJ#u5o?-Sf98wKSr*7IsUo_|CB
z$)g{wjp@6NEYP|CYCZ4$a`8_m6}^gA%zs#Ct)*~IA&hyW|73+;)>Ep%UA);RKO}1=
zoI1bkjDu_`_nWq3abJ}r`<5j~wd=VU#r1sM`NQYyuUR~CM>X<S7%kHbTyfNCuF(9f
zzGK(d`l*(Rzd8Q<&WV(*^Uf-4(VQS%ucFpy*|sD6f%dAk{IeD~OQ}EEx54`9?T&BD
z<@3E&F0L|~t0c5tHfqv4`(s@%yo`R&a_4-%G(pqQsZC<rw!DCim3C~qh4<KTIXXBj
zSoPJ@`LJ7V?cK2BPLCp)OI~tRSuj~~^ZfjlvLUfk^|sd~bK}&{TR0E29!iVNzj{<j
zdrSQT50;v9mc?drM>mz3#3nRubBHl2_VN*u7TaXDaYwwQ+f{9ar^=rsHrbupvOYCY
zs=h|<`?}Ac)fPp(oqMh0=2sQHO!?zm6yrCj$BA~xY84v!$u(#jX)Dco`Z(eG5B;u3
zQ!5uKtG-+=z3bHP&ePK`U*6I@wM1sCK%w56=k~#I^>;2LSi2;j(2o5-Cuw!~Jf{y2
z#XkB3&&}Vrc~$+yOi!0~c85ottM+unt*DGUsJ8dIY?aF`_3tW=Pdi#&n^^3Wq_$gY
z?W^?FpJpVbs;vq?r+ni`+r%2x(8uwUS`5DTtmOav<l&noACKLtyK4INhf(W`{XhKA
zU)4VHi^szz{hia@`iDCsP9|u+?#q&%^YgmY#qQrXmnFPj_N4LTgQrao-ejaL{Psk7
zP4;_3!ROQFcv`;65T0<Xxa>^Vs_DlIExc=luFI@`Q13Kl%8Bgbmab_L%NUGHenv_C
zF%eBHIVp7@KdjY;Tip5aQl@ghUKvSlX^*3E6AU&*9F$ysCRHQTDc7=o?VZKTq+Tx1
zne1=k{#E3c>y3=+vIJvZKLrE#Q*ZLj_g{RGr_8oP`&-(w=^G4>|C&}16BW;OTYf{=
z+&SS~rpK@CS9+yn<NUwSHFYn4$aCkksgKkZ1jR0^-~RjiZEaVf<k7RAC;w4;>Fp<c
z+fq<=%O0zBPUVwMOH6Cqb!Ex2?{DiJO8m4h6}p}Ja{Bn6u0-X70=fU3rZ0+AXcd3=
zWU|lwOgGNnH_J}koWgE1sUdLnyPy;GpWc2x>v-pXz?$VJR-IXp88GkKm8g6{`ODij
z^0diMe)@O`XZEMKXGy7h4mWduT`)t<VEX;9d5^!DxP%Mucrh>Q4=Y!q^|pmK&Rf3M
zO=zfJcjesPfR&5f=PdlwC{_Jx^0AVJZ@e>8tv6gWd9bZZIr7lCxf|4Yf>!@L&|A0Y
zL94UzypHVdo14uF@(udi6Z%Y7otYW6{!rO!`ChMGotf88xaMh_AI#IQpK|EH%s!iE
z)90&(3GLDO+IpbzkHih1j<}159tCObei$7iKHKF`*V_87J;nzw8Q#+@IJRPmo}#DJ
zcl`wU>#ywZ&$G;o)QFHMd3q`6bYRh?m)k6Ck3Cm^&3e__?~_8E->T-S=k@nLt=e1v
zt7eaBFT)hx-O``Uxcxrx*KhZoIe*!oX;T-5Ot|we>T<vDwT%b1J!O8c)!;1f_tVx#
z434o6zQu4bP2oFs!KeOTphMC3u-hWq-HrK2--g(x1*&HK|M&dK%P?iF?Hym$jy+C}
z-2H0b1y-qo)-Q7UD=dnig`C{fJu!Cv*8Y_Jh3VxwUMoM!aul-ux^VSKhh)@+&Q}`G
z=Usitv@e|Xed}Ze)^%P7s=i&(HOb53jof}~%?B6bj;mG5?zT%hKWV+XQJ*9BjV0^z
zh69NYRwOle&baxGA#VPB_O3(xzRq@Abp>{1o}Cw(cGy?Tz4_?%vTd9RuXpS(_3oc2
zTDj|(3SZ#A2})7dPQ18S5@V@rFCurGIooNC&duv964T^OnZ;cF?}@4fzUpt?>>16u
zNqYXw_4U5a5vQMh+&-^%(V;TsDIvS+*WSGG=P3*KJ;j+H_X*wA{OMftIa2te+rpZ#
zV;tH((;^k7-CPv&>`PqhEzxWHJ~(rD_TJfTt2klNRq=^48@BIoW#0H<gUwRoSBtjy
z3)_Etd@4vHeaC(IFLMsr6q$e3H{Ba=b~df<l~tIl#96!Fxf%Nt_6StUf9q|TRA29Y
zjAuc;lW)?a2?41q!n)pw)!&s)zjUH(-JvCSa%`5bGM1jYS$@wU-;LX@KmFU_dGXMW
zDRPSfrU>2;JhOE|`>$hXcwRm6i*z=BQl|Q!DXMSfO8%5;7c<iZo_A9%Q(N}Wy5$=F
z`Nb)z9Y=2O%91Ygy1GY5qIc@NefI-PQy%=z;|NhWH8G~%g*)t2xbjb?LuL-nzpwD!
z`#Np@)zBlkS^i4?=OcypEq^2Ud`*ky+cL3#w|+bBUeS>`;msL=H?{qpd5Nc^z8OD0
za=<)BJ}`aV7Y(IQqjM&D?_=+N_Na~YH8XRuySZ_9aKsgjT!t<I4xP|Ck>YHHV+l`>
z<bN$by5!`3?(3YnS@lb5e&(!dXJS;<U*MDS+O$5b&?07!$s30y^WA54#eV$x(csB(
zku7gbT^*!#E?KkH@yz8nC|h6S&v{qqaz#qy7Ke#X->fjPcTirMWa58+ee=1zGm5PT
zc_$bz3GTLhu-~kD#)V6h8yLUOy695wp!LiqUc2_^x}}%zUQNF_Sy)=I{-C1L%-h<>
zYw}b4V%;`)Fq-CAt>EPRZ4${Z>^EhqE7R454GMx874dTaT^=d>pKk9Kikf%ff%2ub
zTJv5Uo_E1+Z@AKWx74%j5AwHlpBFPKR9EnhaEdW?(fXUfKdt)4WS%wuSDKuU=h?U5
z{)5=w_FJs|d%KtQTY4`$^h0OMuOIch=f+i5#c!B6UHf>lFH^z(KF$>rL(Z-(@{B(r
z6@MnA_h9cy)6A&Gi53ODX1;>w{-1fZPU*`r?&9(k_KDvU7X{7ioqE1eKQdaZK&jgP
z<+O8a9ecg@nOt_Crn7L9$AgWvbv>ubo(5NOL?-A6Xq_(NX<nnUt!M4&kJc%Vj|W_p
ztPiz5k-z5rg}%A}wy9ZWP8Rfxtk@<L(*45k*y-BR$M@v=*Nfe1RI|7!n$_Q$y(D(~
z7Av#5?zJs<xTc-$Pmb|BBvt-ExkvkQ{_kC`Jp7joROZ~*m1u0+a!~A3{E8p4chsw=
z3*6I^W;*fcZh>@It=#n5u0+#C`L$=|G`4u%kk74edSfNSU@B~>swAtsCsEXPk=NOj
zO=_27TinePjW4}9`l@oJ*X`IhD^oX0F!$EoUzH_i{K+`2BjADb{~gbdxlVkk|8(<D
z)p<sJqHCZ1n|vxbn0NK9Jd+#Of4vL0s&|PF68!T!@egBn>#A>SB3dSQZm4~FdWNC<
z@9WL+3!KVpj@B1_`m)oPNyhwaKkJ8DeXC1#57&w2Fq*jNe)F_{b?4ut+3YLa9IpP&
zJ$U^1aRF1^;;OTMcKn=S`tIWjuF2wGzc12oo|tz=^T*1Uc08BM>s33K>ZQpvmln%>
zoSd6nyC6CGL-&!5Uy8om(mC|i==nOeeL6XNJ1;KX;gO<~UdNR(yMDJw-`oee0w3~z
zeKVdRt~sm8$({2?t&q-xnU&`fIJ4I8R!MkyKACfhPx@R}*P;!o@u}LAq#1-(b2><-
zJzPF*$_KCcPn*j=_1-I*{`E93^LzGlj3RRw_g|k-8yIUOnzL|?a_KgMp1m&K%M^ld
zhw!fE=6$oVIpzPOPZ!f(>#x63&vW)qZT#;|)92jVvhUj&_cwFCu`astdf}boX*s&P
zWqR$TUcNp%)6+Tk!ZN+?&%7oM=E}(jHc0+j6S<}^o^9Ti$h8)WMK%X2v1`ozaOF;M
zQ^dB6zs###?RK<k=9r!1m@b;$`y=S<4!hTHb@%bkQwd-Bszot>;Y&AxG?9%VQH~z<
z6&#k5HXQr!`e@hNFPQnTDrH^9yz>WRnLIN+Ws1(I*A#c#PYeD&Z{3NBrMuM5UsP)S
z!Pt4=?RwpR@);uMeB!rd3EtOV^=EV9lvy8)FUmJn%l5w)UE1+ICNl5*#bR6Mm(n|q
zc|=~CyZA|6<-5+Z%lWy7a>VYlZ%NqM->Pu#`;q#u&eQW*3%6Y4x%P?u2S@9pu-AQ;
z`O9>UL|5IF@fFf&s#$Qt{_PLp>#BQSzM8w_vai7VtWxp4BA+HsWxlcOirdVuKB232
zOwsykC|`eR=ld-OZ+3M)oHEgVqx4?UV{NNH&utH8ck!`^Hv2DCJgMqLy^_w2u0M;u
zYcJouME}Xz!zK08JTzwPbzQ-}ahoJZmhMH#S2Gt{{9oi#zGQ36*-Gt`7xrzHZ4RrS
ze)GF~%9QJ?PRz3LKcjfwqv`0);=|8NC%iZ3EAsSt-RxUm_*w5S$J2;fZ_9=clTJK2
zDBk;X!tNju<K%g)0ablkVsrc4^z0t~I_Sf<`_r$ljvdBQd}}WF2h^X=YxWR|c3&BF
zTK{>ZvhKUiiMv)SpZ>9_#p96b@+%KTKHgk<lxM|>S^s(>5>>6kv!0p@96zVA{?wcI
z6Q4XN>+-mtzxQ2;a|q}C1_KN2Hod;;T}oo7CoE(Wo;J^~^s#w_M&bz`t7yaBIY$E)
zAF2q~+L+>TJVB*jbJxBtJr-s0_4l50H{V<|yF@8*kA>E`txj(~J1tzcB|dqU_u=67
z<GXB4Q<9Er&iK#ZVUx;RT_*J<-u?DeG4}sUzJ1vI)Mw&PwVKaaxmk9?J)Q-MKkF3_
z|9ok&Y{g}Lu5UiIDdqg<c%?*RR;J$KsO74&G~4RG&ElX|UXAqj&!?Yhe=6&b{b3tm
zoVenHb87EzFWW-j${8A|CvR`N>S2)V!oz9%Y?tcOJKd*vSvtLJ?k0U{Q@Qk1%2QOs
z@>9_)1|60EHpR!^8?H`cdhopE=gN8KtNj1*N0=>{zVH!`2(!5f<h+9E1p$0K+h>;Y
ze%D|$pI$hRQ+WD<cLFTa`$~Daw;$Nedsvm(+ys1rfe2VBtD%9Zxdr%)0#-vqLkpwn
zf}CvX^|>Xf0kS^Zbl)9Rv|ukUZ(=EL+I^Uj?;Qy69lXowS5VIT?w$GPvvYTTT^09r
z{?@hCZ?~44vUcuR+dH{yx9o)0#@2~5#TV$T(>Z$R%o(19v=rwB3j_)oq^ufqa$R`m
zHtb<2UBKxenZcfr$hyJEc(XzPgG<iaJF*UG&-@tbvyx}k&tWjtb{3vsdV+C5T6XGd
zCL=TU4?B14s3|WjNh>K3OZXGLgolM`&Y4Dr;0dAv3ZI-EgT3OI9CQ`eb4_5l#URVG
zmVxV>TbM#}gU$(wjK>^H7-!tFVp#Jpm!T&&*T>=iqbDbR@H0w_FKE6TpR|l`+cgGD
zLs7+#@}IOA>J0_eL<Jib_HsIeeahe2J6ZYt{hS3Gm0!f)y~sT0U-ufG|J^<Ry8lU+
z7W_6(a!E*JoYBxTm%+`!cmgle<^3g-HyLhaE%<jk_fgLG`4{4y`s#l&uK1tj!EC@d
z>)+Y3ZJQ>UZ((Cv;hMAd?VPy{d<>S+!V8*t9d2GY_Hn%upF(hb!=|YV&))a@7o3#A
zyQ%2^f3d&$ZBr&cj1O$dIrHz-i4Wy!|1BK*9x0eF=wv$aa{Z@eZDIAIzmKoy`}2Lq
zlLj?~^w;(G8UARWzt1@P#;u5*|KBgJ-~H>kr&?&HqGh1#uK({2+b0@ICr1lU=#_N1
z`Evc1Ha@lgrGJFO3|RhF&t#}S^S}JAz1iviH;dZ*_!P_=%#0uJ-`4sw{<*!!_y3z(
zT66E(NJd!PVC2bJqr)J^7gol=Z`}R;zw`AQHxDvqJpR)EufF<c|KIa*jE#8?$t_b|
zqaWuximg1W_|z_`^|I)NlFO6XR+V(?Jn-JXTYu|Chy7=KzkEOcF)!r9r<jQx%j^I2
z{@8wg+mgIl9=yqo9`(o67kL~i5&t-^>!jA1nk=(8k<asAANr!V;7Y;T-lq%o4zHhk
zDLkA>Bt!j%aj{?4lDFPJFRDZ=;yHEe_kuw4$J3s_%TdWFS$V;Di`|5V-6dC7Tz+<t
zRotz~-&$K>VP)fOkLe;iem!G-`mgNw!dd2N^7T0#TyYVXD}o}s-MF8MPd)a4HGX;h
z(S}~PqBl0$$AzO}SN-@Z*fRUqqDiVLcCR;D-;lpmm{`7}P~x?X@Q*{w7&UiH`^YkF
zYKftWbG$-XFmD)}w$KZM16&#R_k=xUxGQ*Xnft2~^A~alpWU9ux+{ct$DSL(N9G-7
zi7-|6ICEF9euec9yY{bf`oSvY%m28<>#_+MIjs<>KNQ==w<aueQ_EadJ;x*s?awpw
zd?byxy%lizJnL$C@@l2Cq70j&?&&e97cOatth;kea%p<Jzsj4XukL71y{FgC`q3<v
z)h=`GUZwXUOdnDc-ag`ezB^j^&6fLze$8N>CBu8h<@F?Xnb-C8kFH52nudM-A-Hd`
zxL2L)idrRit#UKzGpiKco0@#{SFg(InAEo?v2gwW3u&9VdtaZ9+jBnmnN9e96H6VP
z3;Jr`B-<KnPnB(VU6c4Iq26<u<n~#M@+a0wByvYJa}-Z@4>#8r`o4YgzrztNW%EAl
zGINb>SX2D$+|R|K)5Ti9)u-nz5}&H$^shP0PNnUm@SEcoC(YH_E_FqEi_uoOm}P;1
z>%ND-Uc<JJVHy9`Fze5Cis47)jkES_RMx(m+LC!+Y~|H;`tI`Y#aH;+{P1a>alKe~
zXV*{hH<ymymEV}YL(5aA*|bumBd>VI2h%g}_g6n_&se0S`R#CI&;!M{O%D?4FPaBV
zQMj^v_o3vMm$Rm7E$vFITOG9f$w8g-i;w)O<fxQ9!6)`U{dw87Xq^PLqn`wSf0$eL
z_RJ?{{rXUsoX=k^Cx4!_u0XG7!f7|V^DMi5T-c-{EOB3+`+I(x;}pNXh<(R0FG>iW
z<@kDM&XSE6UM<N@KO@z`a3-uWajTpb<5jo%nSt3dJGftb=uhJQv{lPL=hrIXImun&
zYq$+0qfVawx6oTA<;KzFlPa7{I+mIw9`=0U@`>|^&BOC`yd|-mx695RNp-z&=+^0o
zywd_KH?{XOOq_i)Xjkl^3H$eZFIjk(rS*VRb)Rz++iNeqZI5o*io|`LBJVV*Aj;C*
zlWTrVv`hV-CM`2p-uZVA^Th=PUQN)>_3E|o%2}cnVp4wo)1r^l-&7P?<S#yC6`*;f
z>q5pXz3zAHn~hthpW7g0xK8NVj3ARKANNfyYVj|4bhhAOZ=kq}ylVNCHN^>59hVN=
zlrQah8+Y2tDthnpD2~py9WLU+yAK44K0T%uB(|ny`puBN^$C-N(tR>)d0h;@uQyuh
z95=<NUdQKw=mCe&{qHA+`X{p*Hav-IKXB>l-%W32X1=z)yqV?Ru_<jQ__n_Mt{h%E
zIr-<`Q{UZH-k$tsQJtvhIgiz5uFdnAf4jC{WZk&*^rzEn`aZ5XusiC4RpQo*XC}AZ
z7T#FR&?sXY&Qy0yO6t#zdTZvu>|Ys^+RXRQXyZTaefd{V=(b&oKU2acAFKaT;J<!e
z@DjHVQ{Fwj{cTm!?|(}CTh}qo&|t2pkg)uh(W{x!|9#t^Ia|xu)F-@im-!Ve_3N?M
z>8zq-*37XpzG|GDd2V-1-}?hv->2mN-X~+4KS_7>J{D7U(V9a^)2B~b5%%bLy>Mx_
z>&(EHYbU*)74FM9xiChZ?|sekclp<Dy7y)k?TPGMcSZc&(Lalyu&qm*ApeE!^>x8`
zZONmmPpr3bzWnETZndI=7+*#1O@@g-bw26zxBTIIzp^iwjj?}@+0*ZDUhufJil*$A
zl=1SMGwD<Q{{0r5I~jIf`y8`<7kifb0*{6D*LZg7hT2EFKQe!DO8-jq+c~>0=Xa#U
z7#qj0uf3@=Jwb2tr_PtsRsPvYebp<!=1n;9@Y|-yswbk(tQS&#vc8JSJp5KlY(ppK
zJT13LKZ01hHB)<HUhmb2KX`3hP)fkJ6}wipy6tj)Rcsi&DNZo)qQBexv`N?FRc=?$
zx^mC<t!Mp&luh+|Ka=)roLQRRT_WyeP%`7`hByg<A0b-G<+sn|Dc(J{>*DfPi>lc=
zZ*Kj4IKxgRWYPpdkxkXz^N!i&2OoVnuc!BUrN9xp^KxQ~U&}6=?Qwi(f?{%kSE}5y
z?)h)T{x;@ZWLRq*<uIk4r~Z3!uC%mYQ}>@6^EM}`t~9!StNw@a-)kn$J12>XnYfGW
z_{^j+A?#;wj!?<`N#7sb5?C(LaedX5&mt55%$VA<U*e=(<DBZ}N@}_0N*;?hO77t9
zzRBP9ccJzFt<Ii~dUw|w$5wp%aj}?Zox?=_GgqUh^(cOSQg`ppWnPYl3)8>G9-SPn
zv*YrQ)7RL$PRd)GPLuhnQy;qHorCgM=a1qmE|fOylAb4?u95KU+PRGrHh8Z8x<$Z7
zNBdROA*He}=T0$jPk(;?Pe*d~j=I$hm6Aq<^J~KLk68+9tL**zWm9B`h9%41&zG5E
z|41h#dNsaWuc`Eqr&lL&O2~OrCcBWGllT9ulZcOUklSU>W7}bV#bdVOe}>HZpx{ZH
zyVJeCRb+nI$h~aQT#mnKVcutsb*iq{nN=KF8uv8T!C;=3Zfk<dikJf@4?YsQ&FQ}}
zy4>RGuJm^+cAZ}SH}Y%p!^OJY(wu9{@^+qgKeoj%QQ<|VQ{?8|f)B$u{<);RNpvxO
z`O#|<Q-E43>)|4kH}hNnzLB3<Y|n90e^&h#FAHDyj^2l>4vF>TNEprz?v<Ua%gp`M
z=CPAQq=<3$!KOzFE4r$cjn1f7iM_hbeS2$R&crh!+n;_f+j&0UQ+eT4W24@6-q#f_
zy?VQ(q4?Q)75Qw}9)qn@UM;aYr>cE8RHTdZNl@IKLppue=k(rem5bz?#w*wUEK&Zx
zV&A&N`qk6-*d{VOp0@AR#Mp;_Ke#UuaQ*V={?`?;1>9%nsS3IKNGeF}p76$%!@)2(
zW~a*0*}BX<$_r*#s2%&)le%(sbknPUZf?h>PO90VeRkdZHLEq5a*g=&FKoWTeqhe`
z2TzowIO@YT|JY>S!rCQyA@%b1Jv}n_Prq8U`SeRyxp^5Y>TQ$uihZB5{g2tRW(~Pz
z*KZ%o;tJo~Ei@~}Tx@>Ao@)jtOzJ)@58@Gv&tke6svzb%Z-Is0?b^fJKmI<~{$bh2
zrP6=JSN`=pyT#<sraH!X9kZAx82@Nrw9ELZ>(#s0k31}ioq6>@XnW}sKZ6+Kp9#&m
znc4MQryr`$+sa(V{K0H*{Z$R?lqvijeYN$EIs9B_6dzorwD0%9pm%MCKT;}uu5(Ta
z=T*A#Q`NpS=lqZOcL!y!^&73`^ORbnckCqN0Xy}k#xrKt{HxO^?g%)3iKqWm(E*86
zYbn2E4o9nq{6hyi3~oNXmb$#v_1)>r%j-*ftW^C9e(ARQ{Bm#h;@UrBjZ%Hut9K_}
z#;lk8yHY3XlEm^TD>tS$I%_|s$=#f)ZO7E%{dvud)bQ2*liP!?mp1h0i@I|4PA}$p
zs`TZ!YLWZPy)RyF{L}L#`X`s=m4&m}8cvvq&&r#W`>;0ik;>UeVHF$h8MYqCwn^g?
zm)+GrBiGUO$GQ)pA188L5Z)^H{>d#qz4|V-lOJ=qYTrnlUvJO3T#dou=j9Ve<pSo}
z{!;ys$rN3%;cd0=hg~<$n0}oxL#Qlh(wmOl6w%%v2io>2S*rYxn*080;FR@2GoGnk
zS#|mP$*47#=iNx;Q270EiIQs2l~$jdOrol;`@7A5oKE3)I`&cg#g<jdSJ^LZe0%QZ
zM1$R#mG!?(`gF`ozMT8(^2lS=xnw~d@e|)%w(pHHxZc!rKP&ZY#Eo*<&WD!O8%vnt
zrd|7IY#6!bVe192#~d3AK5bsYboAe$)U4k}w3b**`nacM>r|@=%Y`1ar@uILByfjO
zpo+NS1?N@4#>QX1D)LmF-7gp(m)Bu9p+9KVccXoG56Sy3uFqGyZ}dv=V4qga?}h2x
zTm*}X7cOYlID7nuW6hb0;0J2T*TXfhrmZ+Tr`^p;U+o7I)4pjf9t-(%y=DiT;SayK
zpT%op1rv8$U$EiTU##bL6o2e=S++u1b(zra1N+K-t|{IP^{;v!@P4s~2Y-~yNpaTM
zM)`MTGH(TKeR-uO@>gH|?9|yOAKSdpIFmb%;rtfC1Sg(eX`97&gChd>rk}Xxv0!WQ
zr{@nO<Mp;X9+)NZ@k`Epx42j9bbVjHlAYOka)OeDoKMd-Ha(A7H-9+3eeLeV;#@N2
z+$^(>Z+g4=T2+!dTE8AJZq1MX(<{8&Qf^k7|C-y*TP!Y5d2_0nImvlba&^7ql#6ob
zyH;H5Jg{b4%S4SmPgmUuKa_I3{O|Xh(_>|KEmGMldaT=>>o>;*u9Lj~=jX3`yYdp>
z9-BpbLYEspuP{?Q95A={lhH>Xh7W&ctmt9;E&u6mv)N+Lyg%(TZ)=HLzughE!KvE)
zkM4K5w>HOK?$<j}_)M+3>4Ia_!;4=!%rDh{j1Y4bIr2C0+AG<`vrfL7>1DXJ@}^Qs
z|L>@^@(r@~;lG<EKAd6O`c*~cqxXU5nZa*<nR170&16}=>Af<KSYOaV+1Xp_j%cl(
zaIkOU#H_G@)3%d$Fk7z9xv@FG=)Aj9{4`_B4X61lc-2;F?mL?~-E;f8BVu<h{P<_t
z^m0+a7SsBy<-7kR6v(zU{cfxYd@Lz`+3`Wgdd0jAH*HVK3a2>8-Px7;fA(`mQ@@jT
zzQP+i<xY01nxD;_x#W%bt_q_Ax2`QMm$39%dinXTPwl(Ut}k)8J10ZNeYtK_h1{B$
zD+S4ik|h5=lwBWit9DcWf|7Y9G07?7_Luq0E8lCMVN~P(Q~x;WX4gZzCgqE-moK{)
za5qZDWx<C-S`R;5t?cd1GP-eYmMq)jsnt_%C@_Ak3{+XCZgr4bLdCYx!X=7_Wme61
z<yBJ;^+sjf?`7<tnsTt^#L1fA*{7?%Fz>rB!gzJ@gf~~Y`Bs*fg|tU3-FLeDN9#fV
z7tZ%jcc`CIn!4}tn*--w)o;#qZ$A?D(bekOx!1S;nU}sckyZT`zw1=(qUF&p`gb?=
zzW5?3aLcUv=bon3ccv|6dmnYUZ;6xc#@H=$l>eyz+WP55z=m@%C(dMMTO2KTrD9z9
zQpP8aiP!Dt68XZ(hTG>w_UVi9KbyHRv$aoH@V&rppValO=Ibsl7vxVBxL|RkUR{r4
z(d^RVSAk;u*Pi#hG3ojKx?;`h_^K5?hE8f_?Arov&VIT3`Zk4@#hT4QvyyI4JIc1x
z#9&|6&S&Spi9g*j<7B|=YYO+%w68Y&nAIxOoA~~b!aTmt_mQd_PpsCPwBl0zgT;-#
zm0=62VzTel-pkObeYJms;K%1{Uhj%~a@a7TzWMJqNsF(Zy<3h4DE<&LInSmvWyacD
zH^VRdaC}ofJy)K?G1M(*+7z?dGkX);geD!YyRUvfRnSK#`p~1Z&QsbwW>@81>E2v-
z>xSW%ZI0GA;}5?Lm|iIC6X+i1<0>@gg>L7MrulP!nABaFR$Qjh#ro3LjeVckyuFG+
zPamhh_g1Sv74yuCtJ3<V)4{jd0(J>Wahh`$Kfh`u8}=;1qQ&y!ncV3L-*f9`1f5B-
zSs7Q;9QG>W=V7jb9jOUrR^cyH?moRFxZ<Y4gs(HF2o*0^ziYkDTWdkeZ&jHjz54EX
z=Z;4@Ff&fxy7NZhgs3CuTdUc+Z{C=&-tf}GF6SPW{|eiqKGrY&$b5OiVm-Y=H+LQd
zUB2VO%Fm9vJ-@!jU}4LX-yy=={uozhrhPb2bZ3#%wN5#y{!e1p%ltZ5<V}}ca`r-F
z^qh{gq!~>-F{{6GJhqv+tJvuCE5rRO*bmgs=aXGD-*#n?U|UYd-%~jflLh+ycK7Q%
zPSuJ#aP+o{cg57#oav5N>rF1iscf0o8(RDM!^~aoo9e5CZ1nF0m@bun@kH-P^_j++
zwfCMnCLUONa3aemqw7n;V~?*+{Jf5n|H!O6+d~~o=ejDZ&lIpaT(7TsywiB<rRn|}
z1s|@>z4~aoM`F~b^wsx$?k`XexRN<*Zo>!OKOcU6$XfG!`RjCl)#tny4t<Mlte<#8
zadB~w!e>+S<-$fMk2|%^(JsH%C!F;(!d30~hqy1Z`%?nn{n^MES@FGW;l^6lTMO+%
z!i~PEUuw;eTeyq&v!2ua9TGhX3gS<C?mS=nLE_G>gI}+HcZsOc)Kfg;;B?HmyX{kJ
zp3#AGSyB(;dHE9c?!HdiI6djYjL=)vj25l+`e&EdwY=OnOS9B`&#vXdGyh%dpK|4p
zUdp|X-izOE6ny&Hck(4~N7b6&f8IU68EJazOw$WFkBTC>nzoeXo3j1CT+CG~J-SRu
zp80#*!&7>GQdVo3uVgV_H=LMvDC+0Kpp#+C*8dJYm~Ug7qf;t$e^#TsYV?*+Y5y<Z
zmzb>oqgz#fVVBQ2Zl0z+j#s~|XER+j(R|jFsT+58J(|MNSh#6s)WPqKZw{$$cxIiF
zc&}L@;m)O+xCtdCi=JJHTgNH0anfs5#g|*{1TQWv+i#RHb#}D%F4?JqPg^f=Y)dj*
zpHiLtD)$z<S^70^<wfUrGd{cfS&+ZI=%MAemcyx5iag4bk0#g8-gRJo@!~-9#a~Xd
z>DbK5(L4BiRbiU-ES0G-+nTrkbSzuf`(VOzHJ6|}46{Bliieg8g-%#`B1s_r`MmiX
ztFL74x~(UiH~ZPvw_A8`rZ4y@va|4YcZ2Xlsn0d#v$|7`cwc+;ruBo!*QPg{FVvn2
zxShuLY+Lo>qTGf)29rPk^V;fXbvW@i*1qE_?>M5eakg#mL$*5k8OFM&U+#5C=PsXn
zb#=^#>ceHiTc@O~J^b_5#w$)otoO<*&s5vH<gJ>ij+#o;92>Rrs!Ow{>+<rqHQ(MF
z<x;|Dw9T(I@4fY@pAFX8nL+7Go+a$hDY6w@x6C?a{c6Sedw<KaN-eB4Wm(>JuU`0`
z+3ZyPU)Ig#y64v4o^i5Zqj&jA<4s#1EXmp1@~rf~$mz>W5?*y%ZtqKsbo(*?*d~6F
zvfbPA6|4N5Jd*dUa(yo_CBSEW`Ok?#x&eyUs#mpt(|20C?NuR1B;QN>%(^MbO81W`
zv%C;=3}63KG{B^6ufsYXlUpm!KiTAcq<{ab`qzanSJE@R#hgAbU-3kDO<BdGh3=mc
zl3Tp&45fms&fb@<uL)N-TYXVy^J~q2g}RRybyt<|$&mDq+9UnHu~w4x->Ra0i&pr(
zpE5mf)4#AMQwu!`4Mb+D7tg)P`>yVQ+h*_2UnU%UK1Ir-ZFYZQk<fElM-%&<S*4<z
zKHP{Fsk~axu4><Qp;r3%es#8Lr_-11)`*5(`r4{{J&MQw<I-|tbI+@pp=T|GFA5%a
z-~Bf)%Ku8c+M=^zYrXQXPH<mjQ=K4E=j&TtDd<$2!KnKuQDc(xrlNfUMMl%u?e6;<
zuHRnIB6=_S_OciA*!K!-N%^|g*<xYcO}!KD*MEQ96H;U{tv-lRZ~3_=Is!$Gsv^cM
z`b8_Qu6yB;o%kZ?uFco054R>*q<j5nxwe=m!Mnjgxi+pcf3|}E8~aUa5oOCN_zl#S
z>}ap`H&L$S*zPwmt1@G~Z;Vfz)&1G8)=yh8V?}dvWA8$iWwV^7^=-7A!SY+$JK|~$
zmw8vd%!E4WnGfS`e!Ek@Ztu~(LMsj>9O9e4?RVqpCC9FQ&Rz5`#7VpO_;NF+Y|*R|
zN1@H!DT%p#+6*#BQy%7qC}eC;vp*D@W4_I0r{&sftE2uLd3S2}#C?|>mZ(_Xd8PF4
z*EOzbM;=LkTl@M=jhKIt*v^~-AK5w;^u-<Cn|77Is_u)hJpJr<q-@Tyrr3JV;-$xX
zJW9D4N++}Y>KC8iWKp_9>Eok~&kt>X`<;F3DXWLUM}@v7zF^Z>VD7W>*{o!Pyh$p_
z%RI7e5*?R^+&cQ~jX>^(*Zcn7$jhJmq2BJ|35yF$HXU4dCDTE1(uw3B*Ndiqe0$%^
zdTwme<Xb1tFv!N=vODSj!|YpZ%kkhFUw78GsYxG@oFKM9aeXQOC9^&;#<rQCr_MSm
z8t>=NapkaA-M1SKECt+4_B>7B$A9gGS4zxZ%Zq$hWrLQL9v0#Laqmr7bMOUk)gb1B
zYT`~$_e64iuBoxIi~6xUD_r5E7)!Q-?%w%p-hbM9^*#HJ->u<wbvX@d=k&OjJb!81
zkgI#usXo-X;PDQ<U%D;s2PZ@>dK#^H{K|V56R+(P?tEDrbF|=oklXP&X}4D2I%0J*
zb=9(I(LdPthR9xa4{^RH;Ibv)ll1RLp5hIszpiBd@h6|}SX_6^%QrJ;-;;^cET8YV
zE_QV#8@~_d9qSDi{Az!!zKg0Cd0g6|udVH@vbuG?{SlwE`opK>IZ7|N?_ZH|Gtc|W
zSt)V5W&E3NuUGtRm)4gip*U5>>~(xum~O09kZJZqrNujMRtR{RdIoLVEmAHzZQk4K
z+RN30jqCeU&pq8#q0&Cr=EsEQ(>wnZ3Or1U`S#)7$II1nLf-_l&&JhE6=*qGFwth;
znr-nyb_NR`)QK(+<H)XGH*-e7WOa%1vJJaV>$p9Q+VsS!**wBV<S^s^nZ~jvlQ~j*
z1n+L~sbyUIXD(yxwaK>_m^aL6vc6~Jzva<6rM;iDUrT@WShM6?k?X#TE9D(R^F*uk
z?}sXBZO^KEoXTv(Jttj}x&HM;|E;Hm=S_HZTAZy#o$G!2eCHj9HMV3-464uO_1c<q
zqPWdR-m`DTRV{|~fu$dPR~%q>HD4?kG0)oC@}-o~H(yb2zpo)uX6qU2mZeQxG*wi1
zhsS;)p7wd0oMlbIgwHuW>uh*d6#n%3L!oUu&cuJWm}G0c&EmVkV#C9Y#t+QCFW(-u
z#oFb1zx_mBokN+Sn=Z?&J2c;A@p9GY_21_RefpB=?Q-+OuaA?9%_L?nni9H8HDQBr
z$Th{Mx>KY~p4x<QJ0Gi?$mnWu>B7bI2WFWwCT~c3`S4{6x8c$~oyPl2x2Ut-U;fKR
zc&|#Z%dH|EsZ%Th6Yix7*oM|Hb=1ej<%D0ai|@C+`9Msqw6V78*E3n&cTDMNVO*73
zlWXfUgXEU{E09k9_f#}K>1omZfG4|cZWph!H;cZo>}*WN`lQVQ=JpdeUY{oRd}`{x
zY=fZwhpfde^<h&5FS9G3pEN-<q;1Q?unV_~L{mF<oLBLi$CZ<?M?3e{tyr$}8n5&-
zI`X2Q{xN!Z@XJqoTQ12JELI17gNuI%r!tFfzbU!sL%s0Hz;|uSoqdImEaQ4&S;xb1
z+xkQ5oiyHrKiB^;=&+r5Ymph<tWow^v@UOx&Lgp$GhCCSyKb&}pBb98i6``Zb&$64
z6qO6lX1;VV)!!_))-ucf-puVK-_o3pwVgZfw_^g6%jHihKhtwvo#m4rs~=mRv~j90
z<G-f8T#fS{dfVTrmvM{Tv9?7t<m*Mf$j-eUZB2ZkkCS%9y_>rI<jXftbp;Z1lh&J_
zbFklhaE|mNr@P&|XZ_gq<K-iN)|t8UtIY#%KM3sai>@@BUETh4UENffLmQ1}nD-tz
z6t-0|dt30y$2@&!b#%GJlH88RuX(R)SiMZH!8GB)<3!CwtNukvd)@12rT%qVzJH7D
z`VuD&vA#uTRaVL<mPl=8YY%kYlh|f^(l1SM)hvOIPKzMkk6jkR`Lg$3darBX`S-S+
z>A=jXv(~Qtf6&urHuqC&|EQ;TC0<+3obgWLP_fbyhi|WruYBOnxnM7sZT;8&7ZDrN
zSH|bXBrJ~pxAf;!`w9DguFib@eSQ5cPswT9oQt<_W_{s&LFVNSUX|V3U*GtU7{q?Y
zcFL-56%`)Ne={u7t$OFJF;4z9$6jNx$b~LptMyZ!Tzzwi*J$mwOI;VMzVA!9@iy|2
z&fjMzY$lzP{8#FJuP1S0P{LVV!{jwrRy+)9y?+17{G~Ph7Z3Aam+b3z<M*`tBPE<@
z8CU;mx#YwR^Vy^G*7e>#sH(C3jotEpU!}rcB?%X=ex82q`|YiVInVXJc7HXyyKTj^
zdnarUZni1PefP{ooBQ?V*{?gl$X$#wtU2yGi!XSG@xE8f;;myRuzxm~U*}uncSEB$
z&*pZ?*|uo;hu+;5+}S&glqFaz?q(<5VP8G%Uz}N4O1;eag5Z#aK4mtpCP$Jlhi|;R
zO?J7g#i_F1;1@H@9w%@~PjcKSGIP?=tr;4ZjY1Z%@b@uXdaaaSXyf`;_3?!BLZRnQ
z7Ktpj_gKla^6~u{CF&DC_FoJ+@;2A%Pv#rX+cE*&{r3C6wx;GJ-F9`^w(Z0W?kAE8
zmU2P2gVyUiwBKN@w?F4@&2_o@tIplhRf{(Iy?wRT>Ci^*2a9J!+T2f>`|r$k|7NAb
zDpO<)YtFY6ortl#cImo%l%LJ&={r+5@NZc4hsC>Pnf$}j%@;F_Py7(gF${5^b7-fQ
z)x`ZLj`ecs%KQ@8I%#=rys=uMK;NG&PLgUdf$N<uLq9Bbi4e@SV7gMT#dzZ9Q|}jM
zlKIOvJl5v&_*1aS>{O8Rb!RCaree336TeLrj@UZAL3DA6zS_naA=-ATw_>Vi7QKq8
zpJn~)Z;2eE`ybI4oLyHZEcs%xi|LH2bkk;s6Uw{(eYhe2OV#9^gP!8u{|;*#=e{|X
zEaoDs*?Q+w;v&7aO<eA0Ub=1hQBhy7Xx3@SRPs)fOMRAExw*rth#4yR>y&I>|D3#E
zNb#vg`();a)|>CID7)_Wz_Efe?)Plo?&Tlu$S%taluHerQS@c$g7Z;RSIs<lFX-;v
zqpoMJoI0>q^vlk+d|O`|Mg7MupYJkmyksd>dTr*iy5C%S|DDY%qA#9pwVpgN<kjZo
zm+JrU?N~MQuB$=BA*tmTg&T5bTV}A|yp{U@xxZ`64^ig)x99iyJAN-qI$GGbyvyqK
zCY!DaEHmvcIQ>37`PJOE5CNUIZCgtJcGh0x^qg06BXyr-uj{(~qK_|CO53q&l>DCb
zZ<=6PlVGIlUe<J3mH0=dVGje_R=M$23RPdbtRx*&|0Cs+Di=@L_xo$+?pn?BLEx?G
zv6n|$y|#9L(bfBWapmz_@^R^Lb?1KFlS-<8T@Z2Pl^*|}ki*SEhdVl#xV<x-zshyV
zblD4wwr_r@>el_sVaHFmoBJ!5S+3{O_R3LiJ~a1PjR9}v?jtc9t4n5{i1RgSH%e>$
z%kq_Xv#QF==tIBj_1~*0=iEPWLN+j^?YrMp*4sxKndY73U@p<haC5b}IK#v2=i67a
zGmmXIVC(7U58###s#f%>Inr<M(JlJdy(o?4VcaF#UFpv&Joz+M`P=R??%I5pSLa~Q
z@}IX~@i56wGq;T_mYL0I&&fY&|BBQ3n?;wsnI7QxO!L{>OZDGQysYQ8(0?`M>_Vo<
zYwFVVdsqBX2?&=yC0NB;TwzilUA6s^{?Ee1O&``ZemWtQqOw}|rFMwy0l(F)B8O*o
zRes2w7ZTu_rp#Ee>U7-paHBn;$F{O1&oRErBOsE&VE%p5={r0D88Thw`iJlR&a(4W
zC{Kx0x$nu5W?B7bvcmRoFC)MDM?Z~!xBdu`UF;QIo$B}g{M+Sfug`m~iG6hRH%Er0
z_?CY^#F+*DSQ(}K7LZY{_jI`NV@pZN+l`;D=q|iBzwM9SmbIaa3*-bCABmiN{q^yk
z*H435`p?{)9cZvTu9fwS*jDRY<`kW4bAt}e+mm_Js+8M_;lAYDdxewx!t0Mu^=z)c
z_r@;7V&2mv=F<<~e|4|lcp~<i{`#$byZH`V9Cp^Oe0KM0+1VMqit>p}Yi>V~P<x=2
zQ}M=j*Efy=wg*2R@bPjkxV!Aq??`4*j=l_?4(9X6&T@&_T=Ac*65Y-zzWtI<<Azlq
z1E-3w?J2mS{VD6yq}{8h+DAS%-Y|L9%2T$n73uX~_?udL*2YU6aSPNi7L)wqk$q1-
z>;SW@&AFAg4(=5+w0vV^sP~SO`D^FO?MaEJZ`!2DG+t*(&)UUky3d&JmV*tKx(mm?
z#m{m()h56F*w9+@W3k1CqT0R>c4w6Ag??+lefsyzF}AKcx$CBXq^_Ho7X4iLZP8b&
zity|Y7OP)Aum3nLsxj(R%avWJg{SAfTOm4O%bt&k^-q#4&&<Dkaoy#BwsZDd@+Z7D
z4onT7|4Z%P4n?NyhN`(wzv`!ayxkdkVS<sfnnuoXgPx^!x8F;(&Dk^|{ba`KoU5k1
zhc2WmuGtfq@0j2*!>c;g`%F6f-FWj!>}*%sW&EbaD_Hc~?DpZSZ(QtH7PV*ZQWnOe
zTjGM9^%T<Q*_I`Hze}Cn`7Z6;(-p=E=Wm)NW*ORRF7qnqao*!o_afrymTB)ZXT<oM
z|2ZV;eC2^&pvt65L;KlP*N?ql<eYOeV81ZSa?_vwHEVV--DT>?yLM>8`-N9NM3%nm
zTf6VZwq&ykH-BmUhlYFAUN_Vyac13Kzwh0mCWe?|>vt!P&DN4wW+LdwcF3|yr9!lR
z?OflcxKGikoy7;()h0fY{OKBfKEY{1h1TAkX(2~$CoWj>uXvK&nxjVhwy3))+%Vw(
z;Ulr5*q?WzXTMe238^z*l|Db5q96Tq^%li2&h@|j7&_F?rhdNi^YM@J7{ON`X4Ut~
zcz$|!|6zH{wd@o34^B!?37#4%mT~I#iuv+?{#M7#XPvfG-I_g=_q5s0dGDD6o_wA=
z_2W{7uN!?__OIO6IVok=-HkU}@A@3FX1ti>B|ZHv&(FhWZ<TC$zPhq1Pa#!x9^1sN
z4!^55=`K8`nxgi^f~&wzL8Bo?IQ5NBcVzH2jrw~hO3klmY%x22WL3ch%hGJW%e6cb
zoWD1fU6{J?FsJBa9n-}Qf?PH$?KdS~6`ZaabEuHvnt+~)jsM$5v*<6EYa^83D;aht
zE?4yI(Vq0zGvuz}L|OS_y~NyR|GcCx8)Oe&f8w-b-<r?1ycW)frY%iB5xYAyvi?c*
z=Q5T#waqs5MVlj?@3^>Loh5knVy4aA=V^|QIv5mhB>!4)?N!zhtz{PTv))K?>rU-_
zCUdy@L#RyD&9s8=drcq7{?DA)`#gPyQ`V14@g>c7{@ls_@@E5IYU*5FNu3{(mzI2d
zKlMZYVYO*74=*fD+UgjuSIoOgU%+Ks{G$3tJMTuf=CAoG7cE)8S$r<z$^*9pPdqSR
z^<@^*%;?2>zRQ;UP-|+hJy)dh{Lzu$=XT$Jx{iG@_tkv;4dt8ERSkmt1NMoSv!(N2
zQ!4OWV9#s6v`eMv(&++|g~b*kY0^4E7EXCPvi9Bhv+$ykXnj|g-R2FA+w#8}EiX`Q
zFyfh3798&z^C&p(yIXwv*LwM-SLU0Go>JW-QdAu1RNXn*;HT;AZ^E<ZO<gSH_GDVG
zR?+m19&v$#|MnT5Q@WD$y?xe#Lr=^*cxUh3er0!zYS{V(ch2tGu*120cA3JrCCBc%
z2=Q%Sw{Y(pnYA(R`V1$}j*@#iC+bphTHoJO_j)#}ScgQZc%}G+8*Dv#d@qyWruv#?
z&Q5`6udlj&VxFg_h<=+#v9_Ew&uqqClXe+Do1fZ`%(+gkkmhH4QnCB?saZ0sGhV;@
zB4Ksv^2SH@e>QtnN2;Gb*njZ)JlEGXPSq9sEZhYT|M^_yauH6xqS(uOPFz_((_^ip
zw`768;3EOQ!%co}56r9!6TY36x7xMT!|HauPH0?BUD6b@FNvCGdY(wB#+H0?-E%&S
zIa8``kF}ick;9#9ZgAaJyf<&^j%fc*);FFJlNp7J>$(e{a>d$m95-Dba#OEXYQv0*
zS;c$K+vilNKDcEa?YYiwi{^Z8)2Q;)AF<~TrZ-k@)DP;=ytT&0v);t()+8Uf`xkFM
z;S*Z*r2aDdoQ}!<dzQy;3kh5sS>a%sZWraZ^{9x*kxQa;Geej7zSWbc6#AJkpFiK1
zf3eubpxcEiBJSUm=b9~XGBGZE%W*L;h*6^G`S~JWgQq%?=T2|$KDTDJ-CT{8iQC!x
zLJC;U%>OX|_@BTdE{rcjHh+{)_@w{w;<n99(*us(zw>Edz0;i+Yb~9%&OMfQ(>bzG
z<jBEo6K`ifa^ha5u(ViU5zmf=dAAGLXFk8Av;JH1)s%4Eq$5X8FYDjQ!m#P9g|pQy
z7LEl|zs~3Qv2k^`=alKvb5+tO*etITSDopV;yOG1%J;W<?g6FeKfXM-@3_#UnWk~|
z%gW_^A5QAE(sQZ)J%91;dZ8d$mhYNkH|D&t5xSsw_&)nF@6R9K9k2^3+R1-=k7R3K
zM%k*kPi{M{xE8F*dAMMq^w+ezq0cKfw_Ej9ER?L!&tJ)TS8LycTWfwzNem8inzz3E
zsBi!~_fE%Oo-PSRzqeN0`6^VPWVFg^=9#cN(*tB0KlSdhC~vF$eYv*sT;h-VF15CA
zOl!E}^zXl^&r%L46bh-RS#h#r{kJ2J7O(C&nHjxRd&1d&lCJS>bDVy7@Rjg!KD}o5
zfcuj}zq0TAY7dQh#ru+@b0pXLyjZrq^Ai7Vt=TU=9X+eHK%>HBfxu&nRez4UuL<0c
zZkSv7<ln8W2R;?97V@!iN|FgM78Yy&YR@w7Lb?L<ZZ{J%(1m8O)xu^b@YTZR29~DN
z3r%=6>bE6NP;;29cMEizS?=v^zjJS!Ez7-awmf(C<!@UG)Arl$R?j=q`)l%=nolQt
zx|GzX6_hZnsI;7EeA(F8;G@7wuN7X##)X@O4GlLOnlQP0*9>XqHL|itdKjPCxXgN%
z=CbOUpUW8?7abp;GX_sw7WMhX>0O%^#-OAX{OZ3%r%C;rp0jJ-u8r+5k$Ed~cdhT*
zjvsgK-fg`Tdsian4vWM;)s?em3p1`c)2XxO?U_y&(WzUOimG(3P!YY-sd85KOl;5F
zjwyG1-mLNMe6q&(tZdBLm7O{=u^n&zMJpPWmKbdQr|+|l=Rf0v2YK(9ez2c8boAmp
zkGL4$2&X{DUXPe5f%U#qPTV-y<Kg!zei!qBsn6rL>|D9}YkjG^JIjywljnZat4{tu
z_22c^kAB`4V&*Y6o;Y)>X2XdicP`yxZ2P#sVshDr0+mNU@;A?%efj^6e~d+c+xt6S
z$+ur|NqZ*tf6?7HZ$x_Dp6y)WBKvmk9foImE}#0+p6T(qtUAWG?!QFg#%=WqL0gT>
zeq2BKe~HBH=-ZWl|EvAI&ym^i(LSg}R_FgkkN^2<{|%#ddqq^wnyneh{Le5yG3R^#
z#{V}=&;GCW`SdL9THd$+waq{6tN!ucICJsfx!3>2{$9UY?`4#=vh$>O=7oRn?fx9s
zeV6bmBkgU1=Mt_T?rS%8-~2E2?{S#Xwtw~SQ<ai_)nEVXp8l_X*B-+IM{iB`nBMtt
z|F+hb`_KLN`1N1k%jL+$%kA@K&h71(H??(U$IQ8{ogLk?Z@>S~eErJVqet&Bevtq7
z|LZ6FU-jQk-MMr5j!0Va)r(WiuRIHnu2{Oi;$w}d#oIq?CR)AKGX8MO=l)u~O<y~v
z&V2aM^jx!4y<a1{%)gikod5q_o%h9AyR)##^3KaEB|3#m{%M`d*36u`wEph7-9-<h
zlb0Oiox!$k?@Fc{xmRozii?#aI@4z9TEAc9cWmbz`N&C@*H$db7Lds_FRXoe(s5GM
zd?8iu=hEl?OxPxtc~5K2i(@Vyz9ulMEK*33e>Y9$_Jvg|j843)w{ZGBaqg<->bq}4
zqUWyZlL_Ohyj^MV?EAi5EC#86P0w69ocRA#Q20feo|VnYD}vUx>ho$DG&757T8O!v
zW+{5<!?42a@u6(BlxaqPq8yKFpRD?J@6pjo&$>SL{N8Z#fm*3tP@mr&hZFl$orRB1
zbh)FOJFz0|vW!Gb-L>OoVGHYj=&jCmKD$=nYxQTwz*LvuNz1n<hU{9Z&@ykm#ikkU
zV$#W;8A9T9+vAp$1iavRt=IqkNOSStb^R_OvPVsp2fnhI^CBn0zP>;InY{DsOIhlD
zy_)fVqTMP>KTU9Wk!2X(w>&oTsGpc$X@J=@!Dco)n|;yW()Rw2mppyM)K^BJUi+$9
zd`ZtW@!9?NEa&~<xV&M_#m!62)?MB^w>kcr{NvO+_om3*TO_@>c}K4JYi+ea<AS~2
ztxb|2IQOoN-K77t>u}b!sN&GYi+=Cdlsjc%HG8>Z!;3E(Hw)SqMgK6J^lom-+D(r_
zFB#05e>8S`o8;l3Pg{CqbI#7F-{iOD->pMW>yJ!5Wb1ilR;G)6!X;+!3A|C)%@<7b
zYbiXjF5zkKX2ZY_y|?62&Kh&C(ki*DFZhAa`Mj9H_2wh`JqtbM=XI}>``FeR^6~?N
z_oh&xTS-c+2R<m=Rj};~i&B`L{P=0k5#@+Oh5<3Up(l%uu0GB4^d38p{o~E<wNc`q
zJeFjC3UI4`dz5L;_7Z-dKkNqoI&NoHxvH<znV#|KGSfp10hyJp5{Y(am&`8cQ{TGL
z`W5GUMfWWe=KV^T$(h5Xp!oc|#ErDrB7XrR`A^o8`5&FwuDORElao78?6vuXMpUHT
zEXnJvS7RI+7e0$qJ)^Pw`ZKNzlfCx_)=0M94Sl8~dNbriQ9bveRRXHfDlQ4Eos$o$
zxlWG1GrcKpnbX2KC)Nd4tnr^R<*<2jM#5>vD%0(jN^bjq9hk<nK<2?>|M<^AR}UxN
zPkObBkEQDCs_eN5D(%N@CEg#pv1ihItH@v0NuSI&C#8LUz!=NRu28k6IklBBQ}Eo~
z@&lJTPj|&_c=;u#EX7x+zW=hpOznlvujI`q2{aTxwzP>caOt_P#o=$4$lr3O|IPf*
zu4{g<+)Sx9n|pm<;*=i60vj0tp1&>kj<A_Z9=gC{c%)zOZ?kTMiK5%%gc)5DB2r<~
z*)~pd`n^A9=TE<r_9YPq<IVV9o%3N#QOsa1oH_MZb2E>WcGad8d$xY-3#<=cZdcE)
z{4%6%TVwvN?9|;~q?U%r*QNAXy#0ALY^q?aT>bG#rEBXJe^|xn*0*wv#QjAlYUbuV
z)eWf%uG~KFZ9>_MHTPG1ZF7w|<Fj2qOmEN0&#cqf4w!73xhg?+#=<LUGuO1<{5yST
zczmwL%r{$3>^;hQs!`3}|J0rBD+C%^#Oq(|3{hL>9OE2RxJo84{qn)2Yd-PwpG%yp
zooIC>vbt(F$5z=AX3>2akA7d-8=2O+_uZLGg7sy~4!C@}Z7WfGO+7%JbLk@w`-tVn
zH>6wB-dOABuQ&cOyJ~Vq!_$VKrMFisVSU2O{Kdg=n_oh&%))smzJ9Q}J#C}ygp_+3
zGXIvi)ED<OvzJHReaZa(<2z-E$4a~TKL%Td)i?&<ijiaV%A226*C`O@8p2=3yT~-t
zIMw0LG5K%vBo@mX$^5-45bQopq_gU@(x%#&=uYvS$|pjkmo~2q*?H&j+v@m8cU_Uh
zqN)CywzsdSaPn#U%6Orwnl<yQ?v?K!K5p<0+noN!TeJS|#Y2f^!5+K&A3e*vty9hV
zbR(B=)6RVF&Vn!nJK0B{|NU&d9F#Ssb?e^$eEJMwpICzrPW5>7CFZio<sCiOI_}nr
zo|h`AYuudLbZ7fyvxx;0F1?D?neDyOkxx}$Y}ey?Ek+Z~POrb0^W}pQw+rX=D38pZ
zw+RO`r~Xxmd-dpcWPSJ{FSiKKMeBW6ci1<Y?Y(*VQuyn-P@(7s*&XY+A98wLPdwVx
zYAO7j)!~HkrSlKs&wqI7D$Z5FlA=EQb&U0IvES#-a=$04owhpE#aVILZ%zFD-GAFM
z&pc1+bbb5jNMlCt)5G_AJQexs{ytTmV3#fvFXM1E@?rH4ZUw*Nq1hMeBMwaKvB|7j
zFQ9HRqsi#@)E5orK4sVB6bh;q87s}nbC_v+XM@Duiy@jCtw(0+-QMioCVOc^((YKx
z+Zr2X_s58+SW2Dhd)^haZmI}F;bXgUe#He>rf)3&;JZO(UX@mIhQ!fr2mL&Eu6}##
zw`#Y+rKoM2j()$*dOC5^e8Hxs&7Sqo#S))YHZOmZeCZI=b=_wd%Gt6y7iK>UWj1=s
zv`=;0<!YI2GyTtSJw5R=c8BuxT{r(fck#FpTXjn8m|MWfE4(~!ysBTMI3F!!G}-0<
zQd~5wKIg#`mM_!V-u=?*cy@!U=*s5}&kJ<izsh~<``7m4)bjLL0sYuTtD4gkpU8Fe
ziPi7C=~7j><;N#mNf*U;dFyW<wk<w2SLETR(uE%;q`PfinRzTXUwmD00qd$g@48G_
z_|GnXW>9qa#m`-OCyd#xS!I<S*Xv$W(s120L2ACp|1Vn^O+)P$2>IG*tjd1=u%CNb
z*XvB(|K8Qp=X$<)T$JpzJ+A9A8+-V(+2vMi6BOqhsb}5S5NK!fC0AM|%E>dSp2?;y
zow-h#QTWH>!~F`3S8o{ne8HG@XU7qii0LcOxo_PjF01)*hfbM*tL%~Hh|M#7UUwgQ
zepvjSjPU2e{u<@|i9Hr?^UHtBZJAqjWpm+STfV$SR`LCJ*FC+wx?SQ?roqd;84R}t
zR5zH_OuWi6H$$jCA+GII(YyU0wlms>%Lu-=fBRtLi``#0pE@&RZ>_-hQ*!I3Nbh~{
zqafFqIpO8m$$@HI+*>zaSS+z_yIrrf|NH_et!EOg`*!@8Cgd-vdj8b5wLjW?ezGij
z>ER|UHk*m>re3%1y4c=$E1C8MXV0hUT-d^VQlsFlR+W*?N#oX6&pqllOqETzA(`!c
zXscQTm-We0XHJClx!u+|*jDCM`cO;j*LrD2jWv^5PM)$m^5&gmknYA_H}Ssuzx$3!
zmc?x~-yF-c(j-#*ck?RiqH`|a1pnSWKg&z!r$HeXul0*>i7)pqdin2BLU)<N2VIBF
zHB|x=Qr2_L{b2U6nZaAE^FBl2rTSitdZjq^Z8eJ1pI*7jblHBHJA>eaG=ukBU)c7|
z39R4=s5Y~d{};NBWohGqEpd-7Iqmxy=CSe8g6pMQkKCEN|5oO$g&%sVtu5^G{{DOv
z-GAWp74s`5E59{;ob-d^+}+|2JU^n(ZAoD+whYf{5cRssajm0m=FUA;l`q1aC+`)r
zsGt2`bzMTxo=Mg1(F?kwW!Uv*+>_q&clLr`-tGU)Wh8E1zbf{uQSq#q)Wjz;&dcV@
z7x5i2@3Vb1=cVJEqy(Wn{}Ap86Al#}vMt@mETJ;%gzSzRoC#v9Jm)vd+WpJ;@|ER!
z5R;+6lfv!I-%i_9OxcmRWcum7&ooSres}r3r}mz9z5B^8hXn*8brmZVe>v^eIB0#y
z`TSCuk}nR`Yuw*={FN^Hl*d$4a`d>h88_#y5cU6J6BF+WvtF$GzxZqC{5NYhyy^`!
z?MqJ<_$Syd9RI6)?l%LUzJ}CEN)u=P;0v>#|8>#o^|9d}7O3R-=FXA`i}{>?`*GT=
zrM~MePPbM&O<Y_5amkVgGXr1jv)DRspYxOHuF1Rt<xS>|ok3fa=9uqPW$h?bR|r(H
zKhd~g>VZ|K-sp(^>HW++`@T@|l)oH@y&`oxJ|`I0sxevrGWD^V+Sv8O^T=emX}*@?
zYPWo<!p|B7?lbA#Go62N)ym`2f;;Q>Z`v>1<#(gW^!0O_=<G(%?)qkq2@hjf-4A6a
zKWfxaOuF}DqVTa(r?1SB+*o(GK>Fp<o=v+p$Q`(m8L~QCbo)<<W!rr_mhfk~TsXgy
zH@VBL|MvH3I~t_Ebgu5GT3#al@bfAql^sz(F7Q1UIG@j#u<1nLgRJrl^PRsUPAzWE
z`su5>i=F$`DTiyOJ+-X=IwnlatLIR1wfb{p<<D7vzq-CJvFL6)S$8DHgYU*WZUyb>
z2Fr7N|Gd7~#klp0ZPbcYn=QD+mHRcal>S}`oTKd`Wh=hFa8>@7skOT;^xw|?u<3Jd
zef(kJ8DFM9K9uUqoR-S5W>?2iN!@1^OJ8pHb$WW0@wj@r$sxIi%U-X%>eZ3`L-><X
z{qil>O&v2N*KnWlpTh6w5j(A0x2^Z&=~;z*dfNq@d`p(GS)^=vIe+I1!5IghIEPPO
z=4Z-ZWK+;3?RmFdTExfl{?!t-KMH4hEk&ytnsYuBZ|&cZ@KVSpJS>7|*YDZvTkak#
z3yX}NEBBtw?V`v@kANN5-@Lq?ajrpNgMYQ!nNRf!rKj}VXWdoU^`mX7;RltBMMvU(
zv8*ptz3$xovH!ezqE3x+yU@JS^CxbEexEL|bJ?ez^D>PsJw1*+SKGCxOUXBRT~pis
zKaubMJpOm|!FOwS!C!xNCnr6VU#xp{szk>2(@tgnw^jVTWG@tdT+=R_Wpw;4*H4z3
zZ*IRPvlqS0UtO=wyLDdBGE3|HYx7=ltyal1XEgkLOkUA-TYve(=V~FHRmX1Ed@OD7
zYIE?m{iP%L|Hclzmobl%4k&RgR-a|5$mwa~%3QsH&u*jk^9=VR5vud&%uEp3qyP75
z={3!B>gQ@_->fV*eRbBgEM!5}XUk7NHF-ZwdntS7CffyxXpt??>v{NMq+SI4n%@`7
zuE}#S@}6^6*2Pmsj_=#2ob26O8kFFhzMu7zkc$4Ff-77<)eqfRwNqXH(w<7W<DMxB
zJzKA>c;nRG@4n7<Y1q!gxo>~^MD8${^C@?Ajb*6Uy2my-HPSzC3YkkVifKCb-Rjg+
z4v&iabl2cS=w?;k)rm^VX3OhYdMD?Z|9mPW5Ma!o#rAx&@>SEoN4iE6>{hJVmTo%x
z=Qfr%+n(L*{*jjZ-D&@~kLwq&^^x1$ptv?#R!QBoFP~%W>^VyBGwzuLPJYk+i>2(H
z?PF!<#}5^zawKYgvw1!{@{)k%pS9~x{A;M#$M5UfHlg;pxcFs@gA10=i$A`GMWtR|
z=c%K4fV%v|nhCYSs{;QiSsNa4-TrNjLW%XPl$p!#rd2(-WHLo-{lbIAbv|v+b0!w8
zP)rd!_~-RySyMl&CzHPHRqlJWP3S{{x#_hZ>Wa5zoL<NZMZ8FKS8|o!@5^&ea9%;L
z=?urIPv3Y2KYa7<>_4$;pABuZ;u3<gXXHN1tQWl!cV)qIbr0#Q=BxZJ*RJ`<cf<X}
z&ldik0@d8gozHygG|#X(`0^`hCySnFum8Pb-Q}M8%1do)D-yI;CcbjvJ&}_(|HF|#
zyewfS?bfJjHuy4na<F>d+dbWxMgMiu(HSw3-ZNMJ&3<imR{Pev!ga@;vQ9~NUhDm0
zm%jP_&+1+EFXleYcL``*vtrr@V`JX_g|pX1E-Ndq&yjqhdTQ|pCYg_HO(ET15~Jtp
zEY$eAC+$c6Vcx9nBQFc*UFG&S(-&4<b#T%ey}6B^w&hPvsw9uTTb|6;CsR}r`py5t
zFYcJE)=RDI6GNAtjov-s%1gnXw3m_fZauCGcAmZQXkktDtDW`VKX>nr`~AbMW$PF3
z)=BSKSFDy%brHWL-2MB#!cj$0XZv>+d==3XkA7XBINwR;Xlnyc_56p=)Z~8r*tP56
z)dQvKAImOCl<cv8U9kJ%`&~ZVJ3S@_J5;#dPF6@eGp}J`#q-+d=9A|Cs(ZdKQ2K#G
zaGdqe^Ty7Jua>$lDo<qnwX^;wzfjJN{l}DM@Ao}u;}*a&aR!5aunn8hA&p%xbI*D_
zG=H>oNp16%ypL}~?j^m{tJBY4^w8R1!Jj|xHmoe?`X`z8=*N;rFK?Hs+}~cV<i4PC
z#qLk-uLCp87H>@YRz2mcyM*qQNz4p~IyZFl-mf}1ePhnr39CF6Ze&MDit#(^E7yNL
zWt)HZ-0Jdxa;r&wE2N~P;%}U8<Gi!q^iC2>ed3<bhcD8VI(_v2Evu8f;~5<nxKml&
zC*nd}N68V1WaGvE6<?a9EX;p<-}id)PFJ<>`(<8ii<v9cQ`x3cm^Rg?bN`+z$?qmb
z6@|x1g#>9F`I^sPrev?~rY>7`*l1C_>HN#}OexbYS#ROpcG}_b)vHGyets*x{&U5m
z>-QZVN&Qy6JU8{v1??$|*$?G}Y`dNv5WV^A=a(mVR=R!g+<a)si9(|jjOkCSUhfRN
zbHyfcSx@?_(|K(<R>n#FVp<;#imluzFLS%xR_%aoac4x&{=_@=X~n_J;j_XQB$+Qz
zzudo2NN#EUS@*g7JX{&8-~E5+=JI~Q`+fH(oe&Y#`*zso``X?8X~u{DM>WXZP)SIA
z@_qHwBOjHy{elnNey=7q`||xy=67HG>iu!c^S`!B<)8NtX6z04X1sjjWe4dzpN90+
zrCV2seRydrS<iSl@BESy&-0~*$^Q-K79W<f%ID~eVn{4_H^-@d(o5Mc`9-tLgc46K
z+WuGc(!cw?%xsT@BG<9aIXFkFcteiKWOMtnZ0qGcKVz;=`7xiL=aFPWt+DvQjk^vV
znRvUcbkX^U-%Jz5g=d5<{>@#x%JheTdt%o=zC_{Wslop~@89{?UvB@i_(!XX#MY@t
z%P*gQyLI&&ITPl?$0p=&yi-}9%rB(n7ONN{<y5vK%Qkf7r3>qFb_gn;e7e7SulVxL
z-H&#ENcC+|@NCtVEOmc&$5iXmcZS_<D=roLX{atK5DtiaeuvTIl+Np8ml&@7opN{A
zeDy<2g@s=_tgDu+_*^#U@27<^!L!Z_-(`O<f6J+;DR`%AutmW2p33ORjO_&}C+gSk
zSKZR~t6VYhUZLH5xAm41&1)H5#pcERnsr>hX#3kEUWcq)zutabz9?-O)9pj=TRtZj
zEEWFEUhzFa*EgDz<CoiS_VdfjJQi_IbAHe>=V-(p?rve*+j5(~I;~&c@om*)*{L$A
zi-Z%JwoR$|b#0~7MQ#nl=ZiGI-siuyL6If!RsFQJ*{l2olb3503Yh+LnrMHnH(`$Y
z`>0QLO;MuLX0QEQk@n)C!OhwSTD|pgD=&O$k37w6cPnuAef}@ZqUtFDRvUK5@7<(y
zt*r6VZL`E#w;8H0zRakfW1^FPT-AR{e@@<}6W=yCf7`1O-~3sYz4@ze8moET#|M*d
z7&2_^KYD#@{c6+SuL|@v8&o#5UrCNQl6s<V`iuX)rMmCVmv$_@`#g7%&EfM`wR#qv
zShVlg-t+2<nx>!4dsC8kZnyl5ONZa+t>FH;@nTC$T#rYRg+WgA>RUf|ipRxV?!6(f
zaXpi=$?j)Il%ql=o-XYClj{9wKTFW;tv}z)vWsjknBQ}6azb-P{TZ*bzb#{hLg%_&
zteMfJ+b{QRV*Y%$IQb>7dETX*c<RScH~;I8P?4LWXHOna-EnM(_WB@Wi<chJ?)ASu
zUp}qB>rTp%ru5lgPhRP%TzRwij_Ltk&xV;HOD5f$+Vk48;#7n4(_-1knSCn+Z$~|}
znG)e0#(3M`Fr|il%^%g0*sY)HT`pdoF?lPCYMRmWX4!(NW(S1DTwAv|#g~U<Z#s5y
zTWGDDUS+J)lnJaX|EljTWs_{-YZ4J(*nRnJr<Y5F?t>zUEBmb`OP(^<s@S@<?p^2`
z$8$4_GDEB5ZR$S-n{{%efBMlNCNkr``tRAE=BqEf&I<8)Z<brNWbNCNg~5T37SxNJ
zed#i3>6TZ9Y34=SZ)rSyr!F>Y!yJy-y?-=*Ih{PMmY>77JO0UK(^>nta;C~A%Pq|?
zG4@;>RPu9z$w5`u=-y4+Od>T36JG@{(|yV3B`I0fQu1`Av-0+J=N_eRpK6|R%-L+i
z&6|vJDLNuKqH208e{k?M-r!#M{`d(VG25ny`W?3pg?qi(q*d4Xr|;b4?Kc>k)gz}(
z^AVrJyO*UnUZg-`dYiyuw!_~<CtCgS7G7<B|NGVEzIm?`!Z^F!PX-D{T#-z13XZVl
zp0==GY_`zCGnb=h?a^gS+#R2A;H=*La~j7S6YeK;Otv_Y%QHhDElMtY`o@Tt3-6rg
zpT9%TeIIlEi+3Gr_igsiWRb}WTl{r$eB<oJ8|^M6w+7glUv4`!RUm!wfvVftf9<wQ
zw{6(Az~j0xW87;ik@;(0O-XpdeJ?6qUdG@)H<zO1-*WanMsg?oSi>7V4y@hL+`Rg6
ze`t5={`-5EoEDc6d#UlQWXH1f`4c9sFk#F3-SupLlX}I2$iMZh7t5>kr}0)bzqia&
z-NIn6shjucz`~N19-9_uW^9b$jAitwV%}SzU%PE%9ba5uLDs2r^NY{)nBU|VG;`fD
zT_<I7R_Iy*7r{l-UC(eFcGq&bygc9BPh{aI#t*Ii_V3v4YtJpqce&xMdfHKI7vn9>
zM{8r!Zco{pbKSb#r~6Z3J(J}nMf0{vuYQNte!0x98hm+$nVt8pU#0=KT&`OBC@HEo
zga(IS@iR$GV7dKU^{t(r!LHc67r8IZ?!8|qe`TA>r>#!c+!u@dIqy|^JX%ZVeW~8r
zuj`JRSHJs^b#G2%yxG2{iF+1KKKsM^^UWRNB6)IFD{fZx+}ZbcLe%}$*L~#c#eyF#
z=Rff{mAhrTfNaiJqpBj`v&N~-&Cef~JX`+V{qbe)B(Ht*Yj1Dpi0fkN{*bb^G;vn?
zo`mUTnhSpv98(vnYWw$c>I$KvSN{xiXYF2a{m)Ily}zGz-}suG9o(n$wc}CH+4{F$
z{h6~nz8+uxXZKYb?%6XBXl;{EnBf#8_fWIG#e_X#ZO(Ml*%r)<jjkFSBhDPX{rC1d
z*{RdM9b8qg^<|)>cHG0X`*-X&t+{pVfJo81ug?TtMjWfJu=!LN$ya;WQR?{;<%!9Y
zO4Q#N%1$oT$gIs*o4b2WgW&WFhu19pQMt@w@`9x~I+2H(-~7qsn)}D1_uY=8B7TqB
z3xnUbJZGw(yg_4LQ+WvQk!8tD<=r;QZ|Wvyq^{#QeCgj?A&DK+m#wL2u69iO_w?nA
zs)`@JU!Px_wN+5>{&xW;>6Y*Zu6DC8dx+XdW$6@0N?)quo>7)wx@hwRnIAH_$;J8~
z3J#XDu}a8(OWj)HS-*S6E!A!#1^FDy{qY>7Te^<=ZDx1AUhidIXsCNxMtq9d#)W5F
zzeR9%$4?dhqB8HWB9nge#HKT;Mxl8dg&uvG#ISUY^7Za}QjgkIFSurNOS^PTTWO=a
zF>qe3=D}wR3lFRn{Q9YP*VR{hzIAVUvhvxJXWa8TZ5DBNSf;;PX!v9HOh;X(>^nd2
zt_qChU&7~|c$D=#qw#0<`o$8}GM}6G>8vkf*z+>C+0=CM=fj)qI^VnxkKkJG-~QlO
zaFg(re9_I9)YRqjH9O_FKD#biQ!w$=));r@Fk60hw(WU`9*7;gKecUMWZJzJS6PeS
z7LonCc$H(0lt0Sb%G{muJiZ{qLuY686oq(s_A>t;p^6{3M!hoOdYR;JoKgR_rQqsP
zyNzcnmux!zu`y|X(7l@UEq&44Y}x0I-WS?B#k20Ue6^mcuV?qUrO_wZt}`5z4>~b1
z?*GX@FO0Qc1a+U{^PH_6?BbuiSG!#NyTz$vQAWSNH+xKFJ2Uy1`loP*x=>cB8LTqx
z+ZjT$#qxX(zB!>J5fU(C*20p{JG))_>K(pTJ`%sR*66lS%Fjqmu2R2ypQLJ+RA!io
zSA98i)7+^0>(w8Nn;LxA`YFxQzsGUX<YC{Ew%rqdeBhLIa6V@6{Axhh#B>9t%*(4=
zRwRD#*|cnPZrP5c`SOmJs#m6O=KG}}=vW&Nx8ZB{?`Gp|4>ncoT6%v8hyF#A?!;O0
z6WsXgOVb!58`S0N9hn2d7VVY$($l3j@l@!=S6zvIx9b}Nzq#tN3-eVLsy~_>yp`)v
zt<gpGgN*VMSl>xGypLUxu|OpBb9!OhZ@nEq_-EF9esX#1^Th3^7;Puj+*a-GoOQ`!
z))Uz+2M<=yeZAj9@Xh88XT)<(89X{ZZ+~YKuiy66zU=xl+P}7)TyyMthtTXpw?2gx
zH`dOv=1Bfqw{73r8O!d4=KG6mKi9)-lDGKU-(987DJhkGv#-~!_hp?w=fpj(yf>zi
z&)uq*=RP&gTPtx~CHEZ5QiY9<`TZegNz;87&0M$o?;@r3$qL=u+U~#NnitNvU-Cx6
z1|6gIzfRq*jk=J$Z(98`@2H47rpAnIM<;9Dx-K?h$<-L<>IcrZmz2uIWZkKsXW?+c
zS&aYuOt!Y)wk#IrtbaajkB-%!C$lSU+N;m2&zy+3I{B!8$#QoMtsN!CLP<&4i+U&h
zF}kwq9=D&s*B_EitaI;9;a)oPvsP;0$A6D{<9@NNzcG8d*6#qTqP?kN+w1pyW$Y@s
z5wTFQZJRp-J6m2xRzOX_wTFQV7q>oR>tedgdE~*iz`fxMJU*Lj*e~Vr=d5N+#Iubq
z*?Cza`){oFU9<h_Tc$Wy<ro`n<rA3?RyUqkDVec)dt9Ve9E+FuxzyUnW(QX`-HR!^
z%koiGY+mi8euikP==fKyC*4Z^e<|m$kKt(QU$4CBK*Gfjg4{P!E-p~qD`E0Ufz$7^
zV<F?GMg2L#YlQ@N{@M}z<F&<pzV0M3)++X`(f^WOpNrY@X1CV?W%H(rh-{X_fB4c_
zXYR=exv;Ku!PBdg9Ren+TvqsWcYB&pRM>B>W)1xpw<{UDow!!7nN-dur|>54+)h!}
zE#K?Syp9-ue9P;U`S<u;UXG<-Y9vJ0{OUbzptFC{UjM!3n>#(5zkRj%;$e}ra-!s?
zsj(H!SN-0JzCQCp*EBTNWaF9p<-y#=my637!oqm2Co!_+_}_TEZE~Jq^!W?siZkS5
z6Sq&b2{OA9aDUee-m?nZUR$xO60-AOa%|H5ZAz~y_3N9=J#wt_k51-|s}T5V>-A0f
z)2`Z*wphtP?frpnsh#C~CKjqImrJ*l{Ogo6(BjOypFH)q^qEeRgS%3$t<x{LSoBPc
zU9kL$$^*5Tvww-qntW-+<_=XUtCSSKGxjt2bk98uKe#As_s65FjT=AoFWh23Q&0U)
zNS{HTz}K=L+#*}*U(dK-G9f1as}`Txw+kIYD`#yn{&A^jzQ>syy;}^%!58nW_xE73
zZkqQ=ym+zTNxt(hA07YZ%0DSq%V7EbKhq9MUt`<;Ge+TJfaZ^5YV(8F<rwqsSrL?U
z=hx?7&tt`|70-!IYMo!uG^uvym&Y6W>)%<Kb8mf_E|D;^deI|0gTk=-<q6LJ-$^7`
zM;;OusBP()(&q8yp&0{f^(;>2-nc(nejiS5jeNDDN2d8`;+N*7B7yT4pO&&;!&WSO
z@l<iE#*4z;yPf8xz5J=xUc<BW(f<u)atfMu8L2(xiXC!+hN4W7EYB7mUAFA&swY-w
zEL0l`RsXD+-IV>%zbARtoB$o6U-cR34ND7oE;If)VfJFyqoN}`-^-geb>IA@@TGii
zXzZy&%2A6Zuo-l(uytM*^rG^{0cGope>Y?$Sbc5OpOMX*^flr8vFsVkoh5XP(!;O3
zR_ponLD2Oq=hsb%@050Dd<xb(oIYuGk@i#T)th?svYs@|`LrW8Dt+E;adoRdqSI%{
z)q8!u!)}ov6SIz^C;eJ;tIVbSg{?*6SA`UfYqzOJXRKhf;plDjE4;D7B<NyrLdEV)
z-=2Q6u}$YOV2&(XH1W!`?NzU~>xWAmx?*THe{I*h8tz14@k^7Z?6Zs6v(>4;LjQPT
zPJPV#{M&0oj?atIIo1-r>%^3dJ1^YW@5%qI*txBK|B=n7Y?YG)WEry_z2(^WeqP>&
zd5HyvVcfZ9<`u5NJ9qb5YC4?%&VBOR<JC78CabtN?$3J5x#sou_qWzXT?;w7dP#C{
zrTtIe!jBzue_gxu=fqxyKRVUfUpUf4T}{+ZuhB8QZr(O;G2g6T-V1VPDHcqMskmju
zt@Z7ca)bOw29x?n@{?RzUP^XPHRNoo{(OET>wQbf57yiwUJpWNIbF6Ae30)e@KXBJ
z9*&<u0du5dep)Te*X(U~IT`%ut7YVeh%5WQ8ir^-_xKxo>3`g3{m(ylbf2HG@O06I
z_Jwnv8F^=fm;H{u{JY&!=EA!<!Mi8!V7axYVcNfvsd~F^U1pWw)~V-?j;ii$H<C12
z_A>Kh%a@YphqKnIJ04QpST$|0K;l{9XhqH^<tdH{EByWHe(#nz{OPZ<-8FY%{@+DM
zQY<A7Tz3D>B)Ta)@4_m6{^zGx$xS@_xcXp5@AqQ0<y}iTg31h8R$P5mrV;0rwJGV-
zUau3aU-Z2*&T=l87`ssJprmS0eS-K`B~}HY(!dGIe!Ka$DDl>KKegjk&(l}63p-@L
ze=RF#{ydJLb6Jg9iQ+P^GfMkbto;>vEa+S8m8=Lxp@tK7J4Id}I`6d2So|{E+UQM&
zeBsv51uuC&=&5ejzS=6hX{P-075umEvYk}@;MKT7W=_KSVyP47PKNu;el~f=TcdjR
zrjy%trMNG(EZuW*$FdcX{8z$dJ+~R(eK2pDr&PqN(8wx9w;AG`-3xj4pTA}zKB4Mz
zYMPDE+)2svxXlHp28q1e9B=R=dBVX>kLL<aT(n?+^5fbof($u7Vwcy?nx=f~^@?L5
zd#-83X-I8IzUC;gJ7MLnD>EKx%+}I)VY21p_aF5?+hc1vPr3WwDa`!x`F+;32g`U_
z8Y^9%=NmK4Y%+FrYb)g2Z4`2U&!2`R?+?APoZEIW<(BRliNcu4^1`2PeF*g2(SOmX
zMJ(yabauNa>0P}->1%U*B_>9#`**=~^O8a#f&Hsqvj0{+p~RNhp5dD?p-BBuRO7+(
zO{>f<evQZ|t<Q|!yoqy7!D9L8mV1_EZ`{cA$LD;e*KV;>yB)X67Me?$zd614<+;P@
zRx)e$KPnE(=8~IkanhRqi%7<oxWs~{moa-51(*Ea%b54`Kz+|C#;GS>T2|&pRrTks
z_Md61cB~=)@Pw*kZMTgz_B?#{)4VcoyYtKikG0?IFseRu;GNv``UTN(eGG>MwO{>o
z6p8(IyY73@e4lWhzOZ$M66%`nOnmM8<}elVpUsl*aoJih`Ng~=-xJFA)(U=IyTkCy
z@_!8*SNuGj<)irj#xZ8b#mBk+s?Cy?dav76Qee%-b;BkoaMy~}J`SrJWx{`bfBDBF
z{p0R~4>J;b%3Txu>}8EjZ)Mj9w*_lY=M;A556|j86}Yhd&W#KIHmNpdFxRbBaqOL}
zo7uEQxYle(xrOGvnyqZA@%qhs!=mhOb!z4WY+lT$pl!wVNby7GVS^CGl)HCC&WSxM
zJ|U%;8n#d668{ckZrh^Ub54HApR+9AFT2dp<4YC$9_=Ux<DM(}`QK}PPkp+oK8t@<
z<~+so8zz6v$}63d(5NN(U2OBb4z3%KJ)OO8xdo2*YCB!B5%-s9=?&a;PqxBfzvK5;
zOXu7%o}gk8F88&+wBSgygS)wIeMDZq*QT!wmoL?+Y1Ek3EM2tkUHZwj%zx&GFa0%l
zsaNA%aq(#;5BJq2v1`aJ*DWttE#;V<#8>}g(bo&S5qg4B3aet)pZ+mvimvPFDTl;f
zm#vNO*glbYt+?OWtW=X<79#DrMIoQoZ2iJ<Ow4)ukz~bfr!Svr<xZYf(LZ&~mqUJc
z`;N|W-9Jxd#%}&QC0@_912lPaufDm>$@yWs{rANuqTkMA6uoWIcUmHY*=Oa}xYF74
zvo(%4*Vpg7^x|9ctyQyYHi}(Z|9Z2;6Vt;hWZvtjy~;Rd%@A}?tk`zmd83n$z6r1F
zVoUuidHQeV_7-uwbu~IuByLPR=CU=<xvcq}La_A<VZ$pgkIO|z|E+j-|KoFq8i^9w
z%|H9{_HW&x&uQWt$2`ekhua0)Ezjhfv%?A|_+`Ibk{+{>tDetmQU1n6rb5Fb0+Jhw
z3}>#5zG%kJ`TV3uWQcHE+uwqV2YC+XYDms{^CRuG$Y%%nIk!XWA07B;c3-~zWOw{4
z))T9A=4eh1o$;Rk#V>;+`#)-NuT(t2s&(qJxe14mP@dTC5T03QgZca>$mq-2n|glR
zH$QX92hHn2_m(d9a?|`$zoK7)W6A8>8NrN?H#`e{*XGLe`E9#Q*%P-pl0D)La-TP?
zJaKZv)YGPsuj1Q}?^D)~5nT2D{aK6WnVqLrZrV51aU$EojP51}CdIh<_EyzlvPaLp
z_;TPf<9huUvv0UrDcbq&V-NjlyLryi{k3aesYZOs6aL_y<GjLi7O$*S_AL8)LH%Ev
z)h}iWUzaOTK77{e?Yvr#)n9%t;@dy@#kIp>*5`QQ6jLY1HvM|JWZr~Hr;HtS^?g2t
zy_Y$>yZv6S#<ba9TO5uW6#2|dVh`$<KDhdz!Y;Gu@;4UMucqBEP}Nnqo-cUx|E2DZ
zn@!ALpGAr-ci1`MVq1{{Kkuw#{~aW52-wxLS04%cy)o*j<(oqe+FR}lu1vbCQ>7XE
z;*?u+@<cm#UGuaV%$vhjw04!Ue)#fUk>$y*{q;LHi!HFXWmj`dX4&cX`e~=GmySVy
zXQD)g`W=Om>;~T(I*dW(bLuOZJC|7<=gkaU>%04Oo!P~8)`n%WU4^+U?70#fqu5`*
zJnFKhe)_GPhfiJoKdv?~cKI2-+0UYwTTUrGPrI$S{1B)5(J3zHtrc^Qnpf@H7X935
z^~soNErquqKjTqnx%)rBu-DN0SKs$<8!m2@KA3TBLBgJlIS-!&x}~4nxzp5`ZNaLu
z4<*?q$1Zwym;d<Q(_U3>)(*SEZ~4A2NT0t?b3>Bd-uK@152gj}>MVH7dSK11eaD(y
zW@nV@6>Kgjz4FW4e`DjjOv{;k;by;=?^>U}=uA|9i2SP;oGb0utzqnu+;=|KlHGsq
z<jTXPaSn6ZmEwPP=fBbWReGhCi7BPg{k5x7?Aey2xSl9AoeEE>Pv-A!*PXjBt@Y_Z
zF5hH(*-B&OXWRI-YU`C*br|mM)^H43|M1%B=L^|ZpS+PHx%yk#`OIUNzi*v$TjKr6
zqT>r?7vA>gdphsnGL2~y=g3OD=kpTZyfav^+fT`T;q>_%85LTxk_wbLd5hO6ZQ1AH
zxWCbQh4^e$Ej9NdsjaF~a(<WOUp3CQ|D};D^))cTq5RZdT|o;e^?m;))E|y?bun8q
z!C&d7m$u8M=UWu4?}%TEc*>}j&?vn8@TCwVb#}WC`oWV6GJ7soO^<936!<vvM~YIu
zg1bS>u5j1jCsiWW@0M5XDi`{&|Mx|?2bxP)i$_N%tp6*eP{n+8Ma_ok$9FC`x1g<G
zEh2|Sjc>xL{R<OkbKh8yYp%BFh_P$^asS}%P`PI&fA;O;vwbB|q4j9~#~aJo4=gNp
zj&NlC9`okGp0KLj7y0><du>|#FDJi0)qKd>IA1y@{nO6tQw1CRbPRroR_&M?IMs^X
z&0Ox@^Rwa`^Y<zzcePC1;;nT;kZ<dq-RzssPWo+-&Rx3a)ji2uH$F)EswsDx3pL~&
z{#CDIwcmg3`tuE(trGXS&YEnz$@EX`#m_H&245fbpZ@IBRwr*gziHj<EBqH-8kZ#}
zIe)s5y)lpLfsV*;yOnuPaeq(QH5541Y4t}Rxm>s@|NrDqRvnA;*Si%d+l6p)AGuSo
zJUQSn?-AMdO>EIhza#QzKij03pmy|>Y4v$!<@H}L)Sqx#?CSLA<=o>PcW?7vY7%Ly
znXzk<PoTB5u-VI-Eh7JP?7Snp5)+rNjIgQ>XiO?_-r|><<GiuUzk`h>?fu*<2Xxh{
ztsHdc1S{T}9rH#xV_U(lI|`W<|9qognToC7)xRsUxLN#uQPSF@a~DkM+cwAi#`ksm
z+c-YIVA|(<`j1b&PBPC@Z|(bHU7np!q@7GP=AM}P=I6mR>zw1BUhtf4@^I@GVWAs0
zOTsT%FZFr8f9KDwddqURvn_fQ_-DDA-t`M?JezCWgi72uRx)X^zD~O9|F`c&?!}bT
z-%sy2+-TPE=k?|4r9AV>ST%aJKK0j?vbnjRejK{ua@FYr{{kNHel@P2I;Tj)s#{C)
zK+EL#&Txs614{PcF0NsP(N7KDuw|`&f9(vLqvKP)6Ta{Kn~Wc-Z@Lm@zkPZ9u4OU3
zQI4lAC#QcGHFFL6;@jqsTW8E8&U@zdYM$)^+^imt8|>?ga@j@hM7JbcEWX2kA?#7X
zyz31<#@CD9?Yz&!>^%3uGv9k_>NjQBcgn9S`=PCw64Y4s{==~^4Tr>A+{)I*F`8Ui
zb<)Yb=eJZTv;D082ZxfiGVkB1N#M{{Xf=xSWtnSnSh1*5M2C-qM=a7bd>Z4db2DdO
zz2tQBXJm}6w7GBEl>*7g9p4&Du1N>Jv*no@x05F?+o5~^y-Rym-22*?6C$VD6<Pmh
zgT}6_`b!t<OU|G1ZE--Hikdm2Be&c1gp{LGtS8$W+V{4<s7SD0FmIaYTGo~i-!6WB
z-L-WCQ^OO_*$ICSUu5QVnxn(gxXz$xS5}V_$IHunjI7(&m>3=28`%F@WQvAQ?c61e
z*~iU`8jh_K)OCN{)vzff{-?vlW2X!{_ia%>U7yW8x3tzeI==k6VceRNN{`oP9NQbu
zwvg%K<JMe(%gI_DtsZRpJI<yp{o)xip)p_RuTY~A>*}zMP1omMtzuR^;xN&0c6d?W
z9G^wMRUGyxtMfGeUp`^gv&*)^|1WobOqp0R@2Tm(WjB`FcC!8d7<}7d(zNM&kA|<R
z4Pf@=xTZ3peqP>&rEP`QPAt49pWIogx{j@!nS)(lR%!7<iT*p>*{2_{OV4QeddOdQ
z`I6`j(Na_6i<7q9HhQg8&#treJ!go7r|juf$6u^B^*<gZVWsKfz_`JpXGz=9Vvb!a
z-rRJk{T_Bqq2D=6l4(oR{&l9#e@d#i*Sk5MVs!ncCFphF$)EZbvD33Wv+K(aY!*IK
z@Uj2cPqq#deyvE0wNuaYW@LLEiQlrXXT`G;zTIk5XZ7XW-{8(^EI8+yZ1w>yRrXsc
ze5c<UrEKYs)p6hZB6X(J9r3#Qywlpt19$XZs*sxNUb!SHcCY%=eF49|>Fzuex~rh`
z`yKJ0mtHekw@>pBFuecjMSbTEExW0i@7mm_*wn5!bG&@PD@@OO^Z%7|Or+etFWAd?
zv#;&M+;1N{pI`p-+CSAm__X%@-^c%DR?AI^yr5)wVTngl?(wUCw%X~2ex6XJvFDTO
zl!tDu9oj$N-ah<zu6@PyfWBCFbMBJt6O*U8iuKpmSjg?M$n<L9^t$cM8uyE>KKa|1
zin}+PCcM7+vNa_la9T*!#)w<bO&{;vb+}}afczG{X*<}DGGG3;?0`(g7RH&y8&8?n
zZM=VQ^Ww~1n{Q5g>GbJe`Q4=k+d67fo-do4%5<VXB&g-Z;#Uhf!|x_UN8HUndQ&T<
z>+|eMdr#*b(p*sT)ArTX*Y9_A#BQH$^@53~v3{=ZPxC8nGRLZV%)-y*&hU_KU%AWV
z98ZkF?40(}t~H@~DfJ>DT^!%7W}UhyB;@b-UjFv67NbvxzJ18s%F10}xK2gf%=nY>
z#N);>rK-C{1QR#E@%p!vjr~T(^=;Q?XLaA;PS0DK$$Xk|g`@ejwI=NjccWaNp7Gr)
z%DvWdo``C_mCPQNPb^mqPaM3vpJ!^_?sHR)<h&?2^7K{Yt`%aIT`@ZZq%FfXzkBI(
zea;FeP4#ZAPP2@{n!p{2DsNkVd=@-cGArTf{g)qQzuxOPJn2VlM!(=}y{p=PY^J?`
z5?oQStkrVzl21M7`8V;mPI0%|Zs5Uf)fzc>X^QqaTalI4X^-o(T7T@Fe1c<kdF`W;
zO|13V`;Ps7@aW!#JNZ7}=IZ=W^7j#Kh>>}9qxO_=(AoE|j;1g%zqk{!hNFXLZCshr
z^s{X@zF)QJo_#jCMa){?g?r_Udd;-w3!J71cYV@vW?S^{n@`KG3DZ|EaQd)jrDLtn
z%Z!Ca{i(A*S}Fa0^h@)R1aEz?>VwsFN)is9{Tt5wKKc5T&ZaY=8_f@XZ+h_PUf^Tf
zzf-==e0sc9H(;mtT6?kN`*nc=5p!ND)E4@_%gB~_9Jlp%ph@YWgH8I1dE7k=`Zu*^
z)L!CA*wbK|b5yOP>P!6c^)mi~@7{X3S>AatXX84-XBpB`D^lIU7g|}~t@zFHuU>n{
zzj=YLqPB0At+CwI)0HuSvuM$Cp50D!4+gBgU;g^JoI%XZ?d)~e6obMx3zuKxio7`O
zt<cKM1j&@bfX>^J*YE1cZ}|O!`R5U7(-(*NC;zwJnDxNbLU~HbgQu_dEttQ2P2;ud
z=QRg<E8bh3Ws2}tjCSdgc$Rr-!ArxaYuf{E)F07V{gpMNRJ5+c_T(>ivkARhlTBVP
ze6qKu`RL;;eYxM7kB#N0Sxan9I`%N=>obRam%80=R~grT)UwcdQ@8l)|5f|`oQO%~
zoAxB<fuCIUnR_;N^L?0(I_rgB@f4cdzpza0WXIk|OXhG!J{RAke<kBp>9MRiqSm~Z
z+bu(W^Hfc&=asFTxoUx&`@efDO?z+u%|8D6+)j(kFN@!rtSpJrkE`Ef?3*rMH>2;<
ztgqD*UWh2|oocDwzwv70!p;wMEWJ}+W=q;f{9xj?mHhGkLP5=e`CZ{Xzu#OE{jv7u
zo|CcO+Pe;myBoA<ntC00zc2B6^BQ};b?ZNzdS!gvF(NTUy>oAU$J=k>U*kJon+Lg0
zs?k2YHgl66tG>0E<uuueE6sNWIH_OZUy%NLmQBbqJHAH~^OU!W=W{%XN>&eUZOfQ4
zTllH!=e_!E{O5{(8}WTPTYO^DzrJ7RzaA)VG@YRQ!!K3So~7BZ^t`&pi38u(@#$*4
z<(|3F({Syy3!#fPGp$%t$x;8qR>&qPOSEe8bB1GA?-Yq{P+HEy^~d;1m8<wwE*q)5
znEAo#s+BK8)^0IM>g3(^d`Yu8kJZfdPt1QU9x_~JIcvbaYgV_R+%EegVa0b({aL#|
zjp>EDRkQ7@X=fEH9vshhxA?!V#zpneq=zii%>8GYcpH^icw2qA$9emR^oHNx>*tH=
z`#+ehbSzuf>B`ENXMDPT8r|4f_v}xlsJ2S%ZtX?Q3y($5mOL@>cd1?R1FP@95AEPL
zUw^4Z=;$^1<3~2_3GCm@P~_QfUn}$e%;k>#yc#9KcQlWk3|XhtQCBMxcyc$NJI@uZ
z)Aq(YZye;Z4U+jO+w|G;MoQ>mizz?qHs*@f&vTi(w)8&pUALpW=Xi>zU*GF3lsV<_
z@)G98J!=(@$@FGdMsKP}iq9+5D>@Xt;Opb0MI8sfC)zfZuqDSg8*+cwD$2QO9`4_+
zYx%I<|Mse>BEeEsCh-S9%{x(F9(iwn4vXmh;F%q<7uT_<Ce4UCp0w_*_&pn;8D_@D
zZ6{W;&Zw`JFZbbOb4mFp@$ryy*ySsSb-fEZ@AOBlUAx;oUVm3p$~FC?`|aoID|N1B
z+ZSeCTe-RRcEcH=gwBLJ*}mH5JDk$ao;UxZ931qI+pF;D*Nz+UN@to|S}oN?8O#NZ
zBX$2Aden4evcL4#g>2?MZ`OEtshXU+H9vf1gUjjj%K{YZH>odJ%{FH?r|4-B#j6{a
zF^bNVV{A#!F{pO@KB=h6fA&=7V++^!A9M?7a=3Bv;h7a{`0lFMJeT`=Zf5q=64h1Q
z2b&KsHD{9DyZ#HOw#6T{{RvL|y=kmwr#2NuEK@on=IH!T-KwZFc<$U|**ijS^fcbJ
z3JnY9b(`#eczVFSCWHDrTXh3&O*?D1OnBB*{S^v7a*P=YyFEpP=B`OG77}=%*6~`V
zS5f=z`GD<P&dgo4JmR#VOErrK`|E{w``XRCvnKyuU-NHz$p*92Rk@E}Hdnt{eL1v#
z#j_~U?FJS*KUqAPck_PDl9JW7!i#@8OQb7=`tB8A35l}WmGewCzG-HmT>bY6oik16
zPVf+|G_^3`Kc{uaVRF%jA9{0K<z<r3?I~yB?Y{D7!!P#8H<xc$l$l<C^3+h@?D6lo
z$9A(@{PfmtDxN)=lXd4r>(n`Ikssy-up6(q^@P7$OqNZNo54gSPjT5Q-M=z#4sDz+
zkWs}KTRHdVs=6*K`{cb*y{r9ppWd8VuX1?K4Apx+cABNr-HVQ{{8?fp>K*#J;Pof<
zhysZXZjMi$9CF(xFR>u=YSFSbjWtiUCb<f3`g(jltA@J1+?nc$bMGg3TwBc+cS?M+
zr-t#8;AcPi;#n3SN@t1Vv){dUr?@p&>DpwD$Yayq6!eIDNY5AGGi>iYV*mP}#pAub
z$?WxqH)@9MEhu>V@^5A0VwrA6E%&o$Tjw$NR-bGAQInx|>zsj;MUd4$4V9$VvU3EO
z{7g)=+w6bea*wRzv=2NWtgFnk-_=jyCd-6M;p;V9zkGhR?&T7zGkTxrElV^Hf2Pkh
z|60p&%@(fmQ!N)9#cek1^whf6%)Ogg=;A@=;3+{O^;R|NK9<>aMm81eUp0qSOv~!3
z+sm?R!Mezc)8ZUvWbJ!&{tb)&vc$~Z<<*leP1fXFaPjC_#WuBbmQw#$sk82Q_;G8I
z8O!=_Q&ayuOt|@Ry7i~;${+LYtgY#{(%GNHF#XN;etq$lm(}Yox<6iag~Ppy{pf+~
z74v+9#9a>RZd)W<&&#}5{t7Gm(dE|@)!X*>87}nLxRmu$&{>YlZ`_qOux*<Bb4kl`
z`F-JemzKJ*MQdB>g(sveR!fX5EEW-ToVPo6mZWD`&?zTfn>VTZc06zlo%QR5xXo|o
z&*{vHdl*l%gnc^EyZK#{R7<-<R9AEeV|V;n*NLwV9x}<#nKotp6yEy9&z>*V^=pqg
zr`EB@v};A6=Kn{!cUYT#7TYdx>GNABf60!yqs3^e&K9Rn2l=*d`t+^L@?q^Mq2upA
z`4vrA8xkurp=(jXkKV++O^FH8yNb^ng|vQh<dTZJx9@GPUCEB?i#aVUKP`Mctx507
zE;Y|4$BJnzwO#=Z6*HfEw%*~2udm<XUV8YGrQ;Re)D7+Px<nnfTv(ZVbDBty!XiD%
zS-cX<!qn{?PE>D<?)~jrw(Wth)>V%1ug?V?7csY}**?>_D=*ykc0!QyHop3f?kV0)
zm#r`M%=VgpPjss5gu{V5o-|8|--zVTSY~C-a{j7tet!13+#dhJ(!*wXVYPO)k~{0I
zvd+Y&yOo&-CNK#K{nOqvVa4jcgl&~=+b6_x{hIgZ;{}HMm8pBShRJgGZ8<utuedfT
zvv!%LNU_1Cn1dA&TpjuRB`fdAEZ!P>BuLb$;p1K916;hXg|5%?xRd;&ceRpJ={?cC
zY#D#t@-F^3_L^@R^9sX`Cq+vZ?RRvQtiEGyQg8n5&)vM8Cm7bK%J`jktv8N&r5d8P
zV^jaq{N0xt@2tG$aqPP8?wkK(I%NGUf}NG8-ByXZJUwqlTIcTiSKE#Vp8o&!{qj$r
zHC@{}RDT^RT)wR#c7um`d{pL&D`x*Tn7c0y++wOe^%>7;z1QJ4YdF8MwQcXa_I4uQ
zX~kO#UXJYj^-o+CZf*Me^!2pjEgyc}=Z!x9ylO{g?<(m(J^L!>U2pW9exbxY^Fl;i
z$T<nwH|z|Ja`PTJw1z6CTlD=ubH~i($w9%jn>a7MUV3Lm#~YS{#^kNu%Xb@y{JME)
z&F{*_kmI69K3x1G$(gitb>#Gy|FXAiJ~Tg#Zx%ami`My88+*5z_4>jJ+a?wZ+_*K{
zGdi!m)6C?@Em8hbyD(qbz;n|25dt$7f4UQW*<jV|(hFO86i+oK8*ZKIwKJ8^vwNqf
zVSn-D4s{-Jn~CSb<~6@xcH@)5Hzk(mCXFXd-UuX5>fQMH#K~9xvVKhE%(&^lRCmJB
z+d<2^)Yy%#KHZ`BPwT*(l9%%JGrM9pyPjpS(SPVw$f2+DI$uco$g%&z>P$EOb|3hE
z=TOG9xQCCqBgAFzDopx)d8U@A`tqgglX)ioo8>h(<mi-tMm2%*yDzm~4ceek{5`8!
zbWZMEd!2ovlOoSahY4w#-pe!UeA>5B-NU$~tXHuqg>%OB`*V~ZE>7NdeVJjc{G<9Q
zZMrA>4qv=+mvz(k5A`0=8FwEZjQh6r!-H+hUd`uoJUC^$puujnZ|~|9sw2H;NhSL5
zg{D|0ovhgv<sb0yi2ho&>dp^=jvK7HSGY53UMV=~*19VpOR+sfuR}5X&I+GLh4$rM
zMQ63GReYYroWJkPel;dh`%#9*BB4_5#gp=j>iu{Z3iJei37(Sh=kz1~`3hIwNX|a*
zXL`-!Zq)gk-CKRRW_55DN^B3Ga)WQ4;Zv;+zS-xC7JM&kJM%&JQxacT-ECfG<JQ9M
zSF(*Y6Xw6(z4hphZ60f9NB@8RbH*FlXFK1DMK*-TR2Sbo?WK|x`9JjiGs#H%(<ZW4
z-tSjYG1Pri|I+?`N8*{+oEIwE{Wi6}JTL8?-0-n?VnWsF;BP^}J<n47H1?hPdh_ni
zrMnq_G&Gi}-Zq?j{P1(3!$|_AGu_@P|N8dXL2t$siOeJSvRMSJtS-oW{50o?Wn|8Q
zfAgO&S!r`dyJvdz#^={_dar1O<)rRnUBY=a%qLY(^u>%-Ce^}Tt?!y<`0S{BWP4S;
zJ!WU!_i4H=`diAH)}Nnck@?=p>gT^h7yG)*gb(tDWELo9sy{2?e!-`%+Hl+Fj&%Q<
zhxJqbRHQIXS+Le@2ix?6QCz~z<|Y>4GdH#u1n_N_V>UN6fN<^d`TqJco0}Sexzp|P
z`FOX-@8$DxW;Qp4-suMt+j^d#$DY~T6nt=p!uEgm`~hN&=F=B4bBj(FIK<Dly(o--
zy*{J)^uRZ)!qeZ|^Yd?aY2)8!&1`N4Hd%4I+#&ulYew_wg`XIq3by~{*Y#&MHv^lg
zw4KveAXbmr+zjkah3%cy0>>qp&CS8?RA4bPGB%&SQBhEY#mvIkc)FkflSX}RacY1}
z#D>xW-gj0G1=AnAljC@2#>``O;(?gLj_eH&<nByjILMS(@cqHNgR*kFf0xDAhQ{Bu
zzq{Q3x@~P<e3evXhj7U4+mc7lo;!O`mFL2w>z5vhJrHCmDEzSK^5xSznsgQ<bWC2u
zDx$)3ftispN+F%WoWG&HyIXp$oC0%U{kJmK+c%sTeZtPvH#5Ytb1U2se8Y92)xyE%
zK-e~hKz@FHPk!@qzVPzGzUgYZ0vrrmSsB+H<Wp!kW6jH~TFS~WxoH=l1LG5xqOAoC
z89Sn_8rCwbO3<D#S-L|qfwz#=;?HD;H41(XAL3`-vG^zU;0a?<>pqUnWvv!WSDtKH
zTL0w!%53H*DHdB(8N~b?8dg2>-YtB^_eU%5rlR8C*;Zx@U-q9k_-Ox$Py1i&U$y$W
zy&$`lxj6&Jwk9SWN3#U=l5_iOf{Qk_G5q-7*!b?;|7me7JNLd|HrQKnf`_4LP5g~_
ze0;CO`V<%@^BlQ&Q<kfUb%kStLb!UvwARVDyOr0~C%mp-Db|<3{{FxI&w5F(fNpW)
zC3AA(-aP)r&b0ev^IiuBUV|@3^Rv0z#pnM!_SNCPO`jA8M_Kuw<?>&WPMzM&r0B<Y
z?|=2v(>nF>Csr=d_!{Rv{p)_+AG>v)r?4_M&COwmx*+bX8`Joov3|O#&Vm1HF6>YG
z7puwe{r}S}v4HyU4dMqnx*xBXefaD3AL*HY<h`S$9z8vMPWJ?R!t<wMECruGaWk^8
zw*2`ozccLJx^)WbFYd3~f96yEzwc&^4si<FUw%q<Og-Vg+y89hQ^um!WKoYb$;!{H
z))?O@*nIe{y4#Kia?uNJJ`=n-(=2kHy4ur>2}^Ihdf0U-Qh2Sa4M%-(b%92k+M$%T
zH_K+MJEXRt>ZPCY|807QzDNX4zjDz__M^%tky#rJ<kuWDIx>Cg=J>U5g0$LJACOIs
zyLPFyW%C>Z^U8-y4&)r_n4bBgg)=IB?IFp{yt)?KrtFBE-OhiWJMyT_LUq&4x*GgN
z_jt^8e(|1T76>i0*l}Xg-5n*xk@am{DSssO6mS3AdZI#2QGWKp2mekTbw3&7IHTG%
zrDDydj{JISt1@0?!K*q3L3X^o%>k*Fwo(lzI1KotGLLj^dUtci#NDqvq@zE7jY$1|
zxmxW@(u%T*1lyxqOKsjdPI0}J@r{FT*3FR3MbSP-!_IaI=UhFl=@GO0V&x=bwP~N~
ztzLg!FCoQ#t-i{`)AW>;XfxlQzVgFyiC?XGolm|DTygYvj%sJEjlk>Fsc}Mw(_NyU
z-j-G_Y%SNja_`c`tgq)f@>k5^D*1WOMfA^Jxh|&e$*zv)tvWYf{`J{!Z{LPRTW77e
zt~@?-+U$eg2b_+rcz!DV%d6WnZ$|scv3{NT@7<63ho@7H`*=RQn|h+?-odp2tB=dD
zD?ZP$Sb0vL_qBaQkVLt}p?sBJJkwq#T28U`^-a3I{+j_?!MYpCuD_$6_tl!+yug(6
z&LDJ-X&TS@pL+sBqy+5CFZ30q&swziXCAYB%FdAQi6+H%Gi0iGOPr=3Zu8^KU-IC>
z^vk<{|5p=#uT%g3sP9HIEuBr;zi;ojX!d^R=|>4l{aO2$N?3k*``T&KBDY<!2d_+C
z)e)dpdwTCv?@M{-=dL=Rs}wsiL%E#il96NSw`r4Cdu@ARvaHoT*6qqu`=|=Lk8fjB
zk{6%5nEUYmio|(+dNUjjIHjF35MQ?HpXzIeh}4O@7jBdg``38>$DaBplh^)uP_dZ3
zL~3qzru44vJ(WT|>+d<oX56e0`tJK_+p+M^f)69s9sBlf0#~*iL)wa`RYChw5;C4G
z+|U$%XPePICwbd0b-tGi-|EegTGzMYtfRSy%+sHzLN|YOHec}fgr;C|l)l)`)!R0l
z?)UO6$%w9=K38w&50lm5wQqw@+SGGoZe-kOR<?I`h1VhLyi(6aljknHcUW!NW|rq|
zYyHn$d%CGKZ`n6LHo@XadoQe=Vk<ZQV0ZZb^UcLum^4|di+3)}-Vz;AaVySk_WVzb
zFBfaNm8}kN)?EF8Kgpo(g<5mue)+cLrniD7yz19Cp4s(QDq60JH(<fL&HhfCzuYXl
zQlE3~u=YX!qvG9qQ#9Y+f0^`)#giw~_>iZ3@Poy5#jihXVgIdpx$wm6pzX%1)QW#)
z>n>8Nb5iwKs?H&qP@55d!QoT#bxZ#9fgJ|b`Zb$A7cTCaz`JHyUG{M`**8jI{)}Q?
zKmOP)UA<jn`y=ji51Y(H8$Vpo`5dVCzw^34m|jo)i*L*NQ}ZfM#X1yD+_F9S@hr6(
zzaw{6bViizVyxxZ^Xr5#d;j#J`fdJG6J!3dx6ht&WcH_Q=BL+hygBveedO*M`A1LZ
z3Qu@++-ai9#$6rnbTSNo%5{o;czyrwtJO-PTk6Vv>%Tr;w%zXf{kPKMKX1RgRxZBT
zEAY{NmAKu3Uu^vAXFiXf_**Ng^Pr+{_Z+F`Z!6xM&n{P=Y!}0&sS<v>K$<^xy7<Sv
z+g4ilEmyn7`SDoI;;Cg4K~4{o-pJV<RyrRnq$XqX=|){n=9Mic!wOn=2A7$f)-=dn
z5mYk!%-MMFB{9#r>@M28e7JP`oxcl@J-j+M@OsmYOM36$sI8B+Z!M|MesRg_(EPur
z?JOFmY}oVXsjzsr`yRWSd{a5J+jYBieeC#n4A+R;N-djoVcS_Vn<QJ2HzCzw{}mSg
zj`_(tuky2_-ig0A_wQNwbNPwmd*=qQ-ei;d@$YL>|FU;#Jzg%0T>O4)IsG_CRNB(#
z=9TF7$AWRMXJ5+I6kB;?ez{9j-pu+7uMW$X+P#l>R5RT`{?OAm{STe*clvt$PVQ`f
zAk?HKR^NVHe($H-v)*0V5gt7G#J}QXQ~hJbn||&wINTo|ThhV*J@Q-ZqNe(;cA1q0
z(cXS~s^6CGb-j`Hb^a>3V;bwfEt|YkI9(_$|8d8jdrLNH94+~Hu5%X8rL?E_{F4p{
z>DS*eoO4I{omuNkn{2)%o6k#bSbk5&Tj|rsgW@Z0SJ?1buK4ioYJBEJru2D-4NkjE
zRqnd;bzSFg=BY>DJiAw$BkQ#6u>4WQw4W(IUw#gj&_4a8>acQGJx4gJ&9vwT{aeet
ze#{Z{XPIxm^}~y1$JckP-->I!=TJ6c3zYrP{rktNU-g?7&v;&QenKph#L`dCB(7+y
zaMiShZK?0i_!arA%OTW6-17Yw5#i;(T+bM*vb=ewYP{;%)~BccY&$7#&EC|f;eK|v
zeZHFfUO7wAhE5^YVp;#53;HF>A~SQ`DyCJ$s$JXGJnJ{7(VcGA-#`1c{4O1ya^vu=
zR}cQB@J=}2blEPup1+p!(A($UYWYt!OD&ofoeE066u`Dg^+$h&+r>2goVos{bIKX~
zxxXFfx6pdbvteP?k%@=$IJT6^Ephv~>c?FJ>7PFi&E4_LTmEQJ&hhx>X%<Y|oEApx
zJHfu>^4hM;qMqvQt|#SJPfyyiMBn7o1dYN~S7TW@d{@4Xn05PV%ITN&+jrS4<-J`X
zFkR>C-}N(3Z@zM?gTGer<n>h_W;Q&0mMDDp^R8?EI9jLmh27bz?YTGhTIk}Er3bc)
zJ-=hs{w{gS%H^u>XFk5SN}&3)jr;lA+ky*Ezn?xWMr8RUtt~m5*xoG+T|cW{H8@b@
zjmMt5{BP#knnVZ)Cb}AW^j9jMdHuP#US#JSr>Smz?@Q!M^LHIH`(iiaT+pm1pQ7XI
zzjH{s&3z|Z<(HnsnG{rHb~AOivr+s+=NX$;ExHv{#iO-<dHmNTKUbf2#iO~KI@X^I
z3y7S;@B8I%fXB`s47ZzP^_mQ4Z`XNH>-d+2Ye#iVNWJsv_He@qyt~`2mblE`>z@9=
zW@f#K@zg>oOU_l&0>9p#-nF-3`eETM9p$<g)}E?eq`74~`-<PTKO_BoUM@a&*~C4R
zAuXGaDN_ERPpO`u|Keo9tl#4CJ8Z?L)tWZW+!J=nKjqQ2%ZDy<PM8?G#zFn$wa6n|
ze{x4x-h3i@ayF~hzy8T`JZF`;7ftPa9c664_M<CTR(*+`<OVJw-s)d3r}(|H{*`=O
zMUHLx^n0wIDx<S5MEprvD>mDJOUCEVpNOv~UPV09TEMW1r(nxDyHy^uGkJ<8ZhevQ
zRwwSr>b#7S!1ovbBn3@aWEN8?{Z{Zp=8p}X3R_Pm)|rV21TA>exI*E!+S;1%jT1X!
z&IVMf+SN}G-Tvxg{d9HVJAMnK?`{yUSQmZ$STxsa_d`#A%u2ZZJ;h;(`wsW7g>n8@
ze)HbSv3d2;Ylo?y?b_}IvQ=Ad-MqTm!|7z-K@*|Y7?(?vzw`f7H8}s>@?N&&6HUQ~
zJU^5=F73OO`ecRg_uKiJHoP~dXK&Ydpe^5bD#(1pXSdF9d3%F1T$0uGR)ssZ2eF$M
z9XfS(&n0`kTY`*#_sZnDIhWn|yZVCK>aq+G^*v8{{;+FR|88PjJk{S}56hEHcd!24
zyJF^PzPLUi@%3yHYk99NW_5V?yXvdz2Y)uHS3)W_g2{1WuW#IcR^A~gm%p!Z-)Xn2
z7WIA}cQX&H{PJmaQ)V@L;lgFPJJaiTm@&UMf4A9K#4;>r56A4#k9V8DcH}R=5dEw0
zs4F+m8_(;Kg-S*|6Kq^QB~3kZDD-C4vnS%)t_FoqJi##C`F6uJ&&LT@o2G1FkBhrK
z#Zlw9&s$fUE?ef3)e)N_F72AX@an>3$H{7oDxZXF=Wr%Q{Epn7|IvIRi>u$7J$Y9a
zpQ~rA{_(haw|AMz-8hGrKObvpD*n4NU*nCjq}a6<lTG@<HC4+*YjS0ditN~HJ@@J|
zo)3Sv>T%5#T=Pe!{=y=&6<b$tv&azG;h%Z<+RMvqn^+r<eEZZG^zu^k4js-3+-5!P
z$u<iU-4~r%l+T_0Pwz`S@0D$NYZ#Yzg+%>sOh5nFuKpXN@vnHftGb*WCnBQjd6vDu
zV%|AnO+|C5MrNcLtMIxvlV>b$F?yz{v|f0f{hj;9Dm(Yjy8G;Tg?zAT)T~7A#i!rd
z9e5=%|Kqf`78)~JUyHmt^w;h3;kx2y2Y<~y^)UQK>-~hsZ^IJvvVQ9Q6`ho-)t+=l
zf=!O?l+2zxGcPS%R_}j(JKNOzch}1cMf4?HaJv!BKcDkWk%{xK>-H*2^OFL$tSfli
z_4Y_h!p5%B*o`OtsKi(POzM|hGg-i7>eK6fCy$4-G-=lwdEU9)H8-(F_sZN!rW${^
z^7a?%eDfCDvsiMQld9TVRSv(`Iz7>$4#ICr_eJD({SFp-7`i|2(vlnX6|y=zoQrw?
ztoyrc%DqkRg^Ybm4Y!%;X6epmjsM>h*dghathZ>6TeS8<?<Fz+zdA?-v=}=SFOhoQ
zD|Eb?z58M7+Vg9<m27<z7I7SXaMk39@v~+7ukDWMeisn((x%rUIa_7v;&RsmTicE6
z_4Mk4cCoh4+JCk2Z&qwzQ-8JyNBx2Lb9cB?8I}8PA6S|ypZ7u{Pr4v0)${f}wo+F1
zUo$_>Kct=a>f#57bqpU*SiS!xu6knsrx2dQPxIZg_zq<6j{LmqpO1i3!l$&I#;Gf!
zjG`VG{&k-5#6w}-HTOUB+8R3~H8!PBN@^|Eb<|m`{B5SA!S*P(BRd!*_pgySbE7Z1
zUY=80Kk13gQQv!ynNM$7qSAZRB<oK4$4fB^Ezt{i$-YhQNGeh6{D1FA>U!?gGd74F
zoL<WOwft+*giCDl)&)@!i>#)++P25aa`&mi-HLlE6mAJGU8b$LSM=@l`HM1_RQ_69
zyKw)<UZeI|;+=EONPYa5vbNVP|My$7m@AAcBac0;pHRS?`DCKB@`Sd|2U~Y8xS)Uf
zfW&pDgI4kH^!fxvx~hCz;wPC0tMtTAw-kuUxp*_C&$_5@&D3b=5SH7y>+9>EK5SnX
zWg{iS!GG<A_~i)A;(X?Wmv+;co5OzW<6WM2eEyZa4cFGQoz`|f7IpY*anjCt0k2Hd
zdfs_H{nDH8`Dnd-kLmpKjv9WYFXuv~G>Y8#k8hA-@tk$~VBabMkryfFQYXcISyXvk
zW7}SzOM6pAgzJ8@FU$=;zaXM}ns(H*c3;QLWhHOs3UF!2Z+$g0X9<Uah~L6yy+dk=
zI%c8w+Rc`_ZaDYsE1zeC^huGIGk4j$Y`(wb{e_tC0Vf<4dA`a?*3V7-x0?Gc`;4G%
z8RxfL&PuI5K7ZEx&X8g+#h{igPYqK&7R$VS!)aX_H%HO;ZT+W}F$%25eB#UOTV~GP
z=5p#lr~x;xoo#YN#<zy8Q_Dg%SFuMIy`SEEQc`#id!_ituI~N2l#O>D<KqvymA=-c
z;3v<y$s#)r`5t=rqcwcJcyM67o?cY>Yu00@nSaH<Hd&m#?)TqcKXvbKYwqy>G57E4
z#96AVn{*YH?cud9|EY8M<B<*1uA~cJy7Zy3@BH5bC;aDp6>$FOZ<oxLyJF{Ud7J%_
z+r34O+P+bC^53*5o^{~~8;K~@i#zt+G*pS0puIBn#kwyS{PHF!8d)y<ly`EP#F?CW
zx1go_KD+w;zsPAUwkZAM^(l|f#&{>zED~}R4V#=Ad9Ht5*t^`F-+b2Xy0))q@})&y
zuXZkplPPR{ZSGw?rDTV&!j9W!Zv(fk@?Y0~PsqAh?ElSY<pH{G{4dnpLp&GFD3+?U
zot=B#^H}9-%S|m)yz*3X3oIu)6((%&dMmKN_Eo(~ctCyfxikB}t=q0p^SNaD<);d6
zH#2S+Pwo`oZc}<RWG^RU1Yc%ea{JZj{*PJLwN@?t{^(Bl;oyRIJV}$U=O*9#mb&S|
z^NA<s9iMWnQ?2+~2zNrbUlQ}VwdK?IbfitzW<Sq%`Djqpj+u*$9c)u4scURix;Sge
zHqnof3LmDk>(omvm7J~hyQ6RQy@<pOpZ(JuO&RS^drV!=Kkp#(_w&EbOwW3$p24){
zmT7rGtk_gn@8ZkWs*-klANwARS?ZbO%BidPo5Q_tsg}q6fa$IGbK*VM<vrGT@lA5p
zQ{%rJ+gkSo**`h@B4t;fm;IEJZ*QACx<1=X>)Dc9@-h!1j=yR=USBR{?{U_s;F5Zy
zb!1eaUcwP2Bb8mN5AYqGz97|oSD)eKV`@w7C!|f5`dss44@*fN&!ety2K)t6XU;xl
zmh_U3H+g-BS;q+`A*1UeLC5l~UNT%}?Wk1~+&QHzNkGpu;d-U2;m^hD!M4t^+}@h;
zhn8rR1!e1AfA>0!ovXEU`kwl?QmpEG?p|D!IMpbmjP0EEl=Y{k_3ld3xOwNi+N_nm
zf=+pFm8MzCDo&Xb_S(6sKwR6yYr@-2fBAwWOQuTh)t_=+K=1RKUvDM$aYbnRiv||e
z-R!&NcWg;8d#~L4IVW!yf6jEfV7PVLImS<|QD16ig`4hj3|+`?b0~M`VUwh#d+M8B
zPJh6)BftNU$B%_AtJKW*dmNHKrOXqeqG8wNUcG;k+3y|y+WhraXT)R~Co}jNcMEF#
zTw~4PCh_=TK;X26_J$T`MLtYu{h*llbYrc`tMAU!jz2!KO>OqJ74aIYj!$?L>T>G*
z#!dHDR?nImY_NG#zQg*dM^E}+KfOcyoP*PPr}`-dzp{Rdd@b#4y|eA&tVwh87I<?s
zE}VQy`TEg<rN=JcIaL-j@$Z~u9hOZVo;Nn%`F;4!q_sk^7i{F`2ivUki2GMn{?8#s
ztoiF9J(dNXUQarHKVEXAUzxYp`SdbQ;RSxX7(ZmqYKuE@S-Z1#fpVExX@hB7O25AV
zn@)sld5)!W{oE9rn2nc@oZss_ed(UEw*EVpmBSL0l5bBdGJZI{=l$N5S@&C#<@X)k
z<=vyPuqXV*rX|(Wrt-!+hx_u@_!zjUC#<}`Tk~&R*{W5R7vx?lu85EP@6Mf+vDWFS
zyHcfX_%r*2AEBFfG_0EN(>A8r>w{YR<n`wQy$ULp_b+zfedb)B$Sn0dF-6Ali1D}f
zY`3Z%yJtO6HNPCYE>CRx_eXs*Ju-gqC9=*BaL@TDsK*rb@ejMK&Zj8x$T=PPv$`_7
zk278?|Cuv8?ZgizwMZ82LwWOd)i&@Oil}}#CA{f#PRAs>#pnMhl_l#<Qhmw4|Kj6Z
zFAt$fN<I=!2}?KdZ|ObyqW%Iq|7_vO`QAFG1;16i3Z3@%xua@l{<5`fOKiBlOB~-~
z%9XiD!)XQ6vp4=Hr%c>9BOqnNEiFOiDG|JOOe*)n{xX_cGXAo$Uy^2IC_YPa<>tG8
z!^*vn?C3QYI3oD--t*_{6k?YOwQbnjuA{zf&NS=p-ExyvE4OIooGo}1zt!5V-dXfM
zo7i#g8`~vb-Cpv}Enw-ja@p-o88Z(34xYzy@=d|F8a8W%=iX~YR{#9Yy6BpVR36j$
z{`s^1w$)vjc;4-A=ll?pA5}Ypw{7`wQi(yc{yp3EGi$W(NUUypnHfFbcH33e+Y7%W
z&;Bp?PWX$Zjj79&0Ao=F-^X{YycRH>?iXRJ*J)mP_Px-i%L2;Jr&t^e`4YG0eN?mR
z+W61e_Fi5l!i8yTN;I4d<&7e*?d&<9BfL62EoGgd&nMp6mCx2ly;IbVSM=Mmb5p8G
zs^R-+Yu7TBf>^~XhNeHJ`+j+v_~7ZWmpeZmwsdwpU9Mp%s<-)r(yR?{1Ft<y+QHwn
zwP51+dZ+q*^=_pp=39$iX?tp)NZqhji<`|Nw{WJboZl;p?BWY@`5l6@iY*t-TfT%x
zX8YWEZ@#W6+Sr+C5avF6omY{S_??%#Qs1ULp2c@ed|l#sFY!HsuG6k=di3u46_JSd
zbI!zPefxZJjo~}H&!$oPA79^o_|<Q}OX4!;H{VzDI#zy{Prv@SpvA{tqs?<d%v&o~
zDTiBgecJn}MEiQVX2(f~`^FsM@@XkG>5hAR?2Z5C>axZKR?AE;usLw2`5&)-+RFd2
zOJeVx7h_yB`+LiQ+{S57>PmI`D*7*p$(Ke)7=J%=tbFB;^xMny_M|Lo?n*Wddo$@@
zr99)|Fe8P>F9gyy?C_MUKQ+(Sq5oG~?Bw^i4Y!9r<(N=7<M?|2i1ngLT<0f?2!H=8
zopNrP^~~5w1vRd$#_nye5+3UEv#p;Nd#7~!?TabN=kzD9ys?ty-im}TKlCd)Zr%(&
zxMs01w`PP@XfN;Q$nZr!K0UR)ZK!Nu`Ei@l-*xF)kG~du3@V&{?+15o$^C8hymrrL
zWh;G{!Nc*9d(D9(wX32Q8SpQ!yn3e4D(3P#t|ZPnA>II&E1Lx?xvDBGe>a^8@!x*$
zRDq;yP2w|A^Qqn2C;CPo^3PZpJb`t^5%Y@o8K1Y8_>`aL&u5=*%YR`1*{-My34J-U
zjZZ9i@BZt?mxj24h}LS+-rp9r=Zgajm{J0c%{uHJrz4wFcV$OJ!)2@M?eq6PKf(Md
zq`K{u<-$)Z`paF_>-VG|Hq&0mvA?7CIOoF|YmUVHm^*3F=MC;DNm*%EE-y@T4Ui3e
zE_0e=ujwBFR_E$VrXRl;#3a>)e*R$p?H>C*@a!F<`SgQqJfhR*D+=;%*W4(OY|Cgq
zePTMN@b(4o1YR03o125@&_t#$P!!~2HZipX&6J6<m>HN@Ku*)IOfFb<_flTY?Q2K2
z<@)42=A3t9+uY7vb>Zry+uL$|O789be)Imy^{=k{y1ZuJuUG4$R==A)Dddvei$%{~
zCY(ET;LwRP-ix$Wt~z??%wfkvXHKxWdul#Q$$P`JfxSz5_l(bzGG@)5xMG&|gbf=e
zZ7?$4d?0XA$4%=BD@L8QF&-H{_4R*ldn`)K&SBfYY%ww8#_e0X8GY7z{J4APPRrdn
zv66FRSS9~^2AP_x7j86C-^g%d*5nRN&Fs?}UK1~PXs(*<F_Zc1+@4&|DY3pejLTF$
zF$5Pc*!+`Uh`U-{==OgNm1W-?j1TNLur&TB&2ZuDos&=H6U6+!m8ozEWhqVa>dLBD
z5lZsON>VxIU@TPmvi?$|-nl*hU1ra=s{XUux=LvJ|A{%h|J{v#%D=4N<0tojqQt|9
z2#+%i%k)&#o=sy=kh#3SVlrdYjmZW7j^{jk^&$SceZ!pp2i=`M^S9f3oH?WWud{6H
z)=-me#_9_NH*YU4C^als3fy3BT+TFUg%tDL|MiJSI1?O|vhuUtlpa1z;xjQe|DC^R
zqwIlepa0MPRj-^9)AN6!8%xGd{+Va~8#2yOWt4lCc8Xzo{f+Gg+y1t1t-o!0_P_C}
zdeLA0-|Uxq{FB@`)Aqu(&;P~#EMH$gJvk^)Kr}Rb+3)$iKek6RWn|^EF+@#TvFnfX
zx{Z@>{+Iaowm!^^?N9pLf80;^zji(J>3<1pvbcH!d#9f9<Ne=Sf5t!GKk489ZXwaF
z-#?@!q&`(lOh`^vO?>$1iNeFg#P5IO3w&ee&N<Vl_kZ32`@Mg{|9?-LIlFqs>_cmH
zZ_obJ8nJw9OXv?zk+We=m(Kc0ue_|gxnZ5p*E=s3F|n;Z!^6M+L;bs}A3og`<Va`o
zWhv7yPkA@{WY6QXf_>_0$sWpIrhkm{KB2AqH*5R9RU&)-_8IJGyKrEuacIkq&OOB^
zBjUM(md#B$f68|K)KVQ`hp9=OhFb4mG`rmNi-@gY@%npVx!dV0Kb;KjFJJ9Ab1Rqb
z9y7tJyV1<t=lSos?pS!lbc@!SdX5qcp6hiF7Gyq-+&|~w9PyR~3#IDH;<ytyU43rf
zdw8me(@3Xh=BB?-XT4ay!?Ed{X|~o;sYlBbTOY?IE}K%2;bEdJX`RG+nBksLU#$9W
z-_U99&B?KES^_y={n%HyZ*%MVL;W7@a!V&Jysq%)@?++w5q6?|#aFH;$vh1g*LhpN
z=X^_XEff2R`Ckv&oS&<g#%Gx|hwW{8uGx~AZQGcWPurZ6kJDIVu<>hVWg}+?&!Po+
zqLUNTUHTct*G_S3I_WJZpEzUVZKi~qNe5>f`kelO=hMe>?d2Y2J|-r9KmI(fWNO?r
zC9&~n)7>fg-#?#Wnz(80bSamT>a23Zyrn1FAJ+SB+3{?}q?mWgc85e*{%J7ntZX!1
zEYdz>vX1m=-9u5`+9vt|<}>$pdQUquSMhS$W2x*7J)eG9WnK5VeB*KA;}=37B24*L
z2KWARt(U*IJNDR-xw_oRu70|VC7fp~s=DWdE@$m~+UFv-_wT&}Yr5u!UMl^xF>o3u
z!)v#eYcu^d>)TJ6-Yz-N8WGmz7x$;@+^yqZ9^0%n`_`xC`PJvwyQeMHhTA?Lh$`Rh
zo6CGdoTY^4YvBHidK>@Lrsh0vVvo9_;KK0x#{8sRySbTnY?TvjXF4I;;bDI%<Hyqy
zNq7IvDK!=v9kDa#=9&xZwte5>c5R2v>0q6&S1Jo4mt<cOWZY2i;_LY_pf*=--od_k
zXP-**ZxH%&_H(GuF7cn&tTXZpQf_r+tyySZBw)jK)2O<`Kj_fH$qnaQin<eaaNlo;
zoTc_Rk!fMbmASEJnC0|p7YprM>3+Lo$u{YPyoXNCFBXZ*9o!T*J6SV2ET-=Buf=<I
zzifGBP`Qfjck65!h6bN3?)sB!C;gxI@TqI)vq!g>_p^N6bnII4&mx7#rkDB-m0ZYL
z@4v6IwzykDtyo^n{K$^nJ37a&zh)QG6M8zcvgB8&r1t(l?b{vtzN@S+{Nt0xtQB5;
zF?{llo7UOphcp8!w{MWIUb0pE{IlzgPLH+1A3m*J88+#0cbws3@AjCzrmB~F>J>k>
zFm%t`Di`q0{7^;exhel7;xhMFtmWW%5Ze*qI%US8$5HwFo@ylMRQOq(^YUK)Gjjji
z9TkuLdAKHQKUw?9+q2B5@IcnK6RsV<|9R=J*KGggaCONQ?%Z|#e(teVCG!o<uZEoX
z*2Q^r?(4iAOTTt1u;+fC*OyxK=N{iSxlW#X8>5N+zXhz?D`u|HOv&teyE#ibZ$iP1
z*Q*|A)^6Tl?4Qx<^y<Rg{5OwXqBpg@2+h8{{JHmQ;Sh!GZHkNJyx$h;{OEpr&|LS(
zXYP;O8_zX%t_*z<8*@f-tM^?Whvki-pM9gY7)<+e&Vf_uFjtN5<EAY~S&tPSnm4U+
z?lQH2hX?D=@tAE?;g3@|nE4>!`T1WTuSRA?v0sV5zHooqYeuVumONT9<*$BgaVBs0
zEBJ0g>hBi`EV>;E4!PB`s!Rr2-#2?N<Y=o-Yu~0RZ~TnsT~g^{o#<PekL;Vcm-FJx
zR>3E(-j-4eCUBo`KE7k+E&t}MATB+v06lGomC;SU3uQZ&)O(%Kzw#>In=iLmx8Km$
zXl<>J=fZ2RZ?*k2v_DeKeRj^Y{AQL@D-y4lJ#lb7liRAyWZYnt<@W65KIN<Nf`?s{
z-ql(kUUIqlX~wJ;xe5JGx2P>Utz7eZ=d6FLyA3#|#?JMsIq3CZv*~KP)C2Rl*PXm!
z_FQxBPKD(k|4#b!dBY6Vdey1y{)=P1jtAc8zOtZ6^TFQc2DuuY%#+niyo!6*&JsGJ
zb}HOkF4}$d!h4T+vjrylsxBAgyXL}J-SmRX(dBG@qNnt%tkdZ;u4uOHzPxY++sWh=
zhPCpp`DUF9)zai1B@}rXEO{yOQoQ`-uVSG_#qtF+{x);}_WU1zWNKugZA-n-hqH$h
zdYk$Ra+B`p-Hc408v3VJ%PQUSDbtbsnj)pQ7Rs`ZHfL_Vt8XQhyhC|oVDzi~x;a^D
z$9F3RPyHelcKaCTwJ*sN=HyI~mAlk9$8^$Snae$Qw)RCiEAA-yEl?)DW_$ClCFguD
zH_iFr!N23v<bUly4=tI%tz&bb^WzM~>-C%KI`0&pWfR%6RZXW%=wOmm(hl+MH_Z=o
z|9pF6)(W4PXxCpB5BQpIbzc6a|2ng!D}Jr*uj8})&X<W!oON*H?d_&^UN@#%{cyN%
z_a}b;lK?ldKAyAxFDT6C3wpg%w6*f=qmwi4ze>!tKe?%V-lwgv3TE|43N8$;I~~--
zo}0&VyMD#}#dlLLuj0Gqwl4XXwGYd?_8V*WI%i#3G^gj&tLlutv!d!*EB`Ed^-}u7
z5|J-qmy%9I8FI|ov+d1n(>cq+#Mf_powMbgk*ASuzRi2iPw&g#OfY%BXqTbZ8I8RQ
zT4g+6sdaseT3DORuT@rT{?o>IUe3?n<r<cu8va%9mT#LTT5r1l=4;Ei`6*A%{)t+%
z$J^jB-?=TU#tZ!egBHXbd?66ZdVTSO!1##*+`n~L1EY^HueJSS^XJ^Zd9QceGIngs
zT4y1<achNv=0$}BpQ%SS^X;lnY^?lHQvAv3XHQv`Yu&Af*XHb7t@`y@Rl7^B?v1%G
zV&<!w>*!d`xNzlOwa0|SdVTrWw+fnj3eA<IZ_jn=Jm2nU`fWnV{*_`+CLedZkn&km
zC7D;)%XjrEF}@?oYSC_n*Jr9496s52@uTfox!+t~zZ3T@GN^4>cD>&J<+8kKyiKcS
z9sCo~FSR_zQ2UMNonssQn<Ks#U)sNE{crA%UEikL_;PJr@2U6o(rnEM@!zWJKQ}#M
z(|tQFc{gX*?RAR-=YIZW^YYy5^93gsa@wcdYB%_uu#78u#l-xh8*VhzW%}t=KUvcC
zc_Sx--+5P)_sg3m&$Dt>pRib8()Oju3w7Bem&~UcZN7VIn%`v0(C`2+{?)mcouqk7
zwBN@$u)GUl`~2f+`_CticQPHgu8Ce*a89INX4$t0PifwJWgBPDEV`ny{QTtzYwmD%
z>6dORmNxEf;(9o9;R1s+ox0!Uwv#WOXVJ5m^IJjR_5JN$+czH`>#3D>bY9%?^6`?B
zCjU2nkF8mF_Vm<)^?vi(_<YW|?ql-YaiaHoMWMOH{?9?HG^XzJIA^P~sbKaO@fWQT
zbut$>3VPL>H;1hJSG4l+kKX96eB~})>!oMd`_=9%r0#jJwMaJT&BLuq@4E{V8n4!N
z2`=Y){WamX(S`ndPI7lHo37<yeU|(AY}v`vDvvF*t6x1^>vS*s;m2c1QFiLK;)f%*
zHlKb`u(IRnynrnSZcVYd700+`LRR+8@?C`)QyjnDxVGs<^q2bU7sV8%^$fJjwuDa2
z>0h5&)i-gX%oOqUN3QPL(qeb`TdnJV-MitR+CM$J5^ibNxVl#;+c@N3xuD3(r=mAr
zol@D9>8QW&j#!--_aFaj`OCsjDJ}mt>GsUIFDzfbth(?a-*o%#+}?nr0Zg%>emmDr
z^$mS$E<b&eN=~qY(Va%yx%EP)emW?xuI%@pk*3NQIF)nl>b#{Ax6SoZk~d#kG2{Kj
z{9otg{N4ukS1*=5@;z1bcu5P(+k0(il=j33FMc9;?3<_B-#_~2?#J|0EIYC-VPn9q
zixc?1>m8Ij>-$^$`hr=G+$WmKxXvrc`ifKw#Fc+oC9_X{lTXNl)!pk_tr?i3>yK#`
zT$6}T5sI{nU`&-dU9j^)Uwn0nx<Nv-)35VeO!|7=Hrcvneh`+wcI@cF%lr&}zu#ov
zKlknA$(C&bc5Sh;Y>%4mE@YBaJhwisT_)NtWpmhq0Fe)c$L*IMab`Mx>0HxkA;D>U
zQ#n1K7Fy0<{ME4C&H04W|A`$JnmrOfPG+u8W;rrNd)~9KMPClTyj~pLdzh#9%6ASk
zErzI$mG7=xD-hVn`TNrS1$P8nYsx~esXyJQ6Bt+grtjn<|Du~rr6NXsX>mtC-t3gR
zyRUF_oKdA0!;F>w2m4DEFT7`L2nqPKe!hzD>-rs=de3W5H~+4C&Si()HYFvAW$$>)
z)4W&D@~xLS|K-~P$*<hkWEEe}>DAZ#-5m9)doxejsr@tm@b+Y0b56dxxP67~>3k#m
z--Zf{gk<<n)}LK>@ZrHtao3EE#9b8TIPZ_&(v|#f-nA~%kBdCA1vo$W3snm+?bz*n
z<G!QeC9fSl?<OWDu6X!LP;~o&Bjri=H_y(h4K%k%6_>oGR4<pTq{SoY#5;4z7oJVC
z+Tx2|A6&7gCF_s&Kc^R+I!l>fcR&1U7SXEk_LKbYbG$s4`g!@n4umSLYh@|T+Z5(@
zLq)$@d#3vH-|GIK4PP|rpMPZJ7udsGrsk$;=j<F7VDW5zo8IcjSGLz3OYu3;uA;;v
zx_<AJ!rhFvZQUCV${eWIGCrm3DZ5ry^w6B&8mscX)}2_^U}AiSJ5T6@sPKaOe1$<L
zmpM2)NKO55Q{a3}VTt;~odIU~CJ!~-1hkjFeB}}M%URR=!t5ZM?&YEKcWqZC{r<6{
zNHAz&46BL3mML2!`xnTtpI)PR@Lkiz!ySh93j*VB{(rhQ$w)iAi!bb3Vf~za%;I-k
znEuSRST$+R&c8oZ8HEm)wa12vaZJ-(bmBm5xXP;T9m$s&QYF5Iem8awo#^y1fKxu?
zQT434uTk#Z{)T&NCu_2aoh#(Kz0m3Lxf`MH_qA>QD%Y*ZYrwj7M)aB&rE@>HXuo*p
zwTk^j`ioN;Z>CRcR@2~64rDE;-#fve{*&|UongywJX1RB_@dq|{O5GzUH5yInnjgW
z$)z7&zWs>U52g0q*R5S+wh8rA%_`q!wD4@nll|%b<?EJI>^`a^eLuZx=Ck>GZ6*nC
zJ@$j|(kH8YtE7UubLY}`+|Y~o*P41DbAiFhnDl6tWycQOI%A&xHR1B1kKvqsk4{*0
zuU6b$e@o%H@$W08Q>Ax5t~1t;_gbluwR5jhp4h7!!7u%%6^gu#ESP5!&6dcfD81%v
z6vL${CC$ITck)_$uM~JABfCH9e9NxQm!2wk?wV#Q+PvZPGi(0BBa`iOrr%v~?9zoz
z@A@4Ur_Z{~ziUdEXu=ms<%KW)-koM~LOs%^_xPf-#aagSyDaX^SlWD%UGY$rZme3?
zuNekjQVF(6o8<VDmM`9Aed5JhCcA^W|E~%DE%5(5@2uq)YpV@Ej<x2qSH9TH*}#|m
z^Q2l>?j?Wi)n$zWnH!Rs``CJgQhuC#Fz2wN*0(M9>(>5meJ^}yD{tg!k)s7H1{(!d
zK8R|*W7|4WCo3tQ)u`T*d-uYF=BJh!*BWSTdpe=HYO_tvSHTYN>?N#MnO3>@hn7~d
zZ<aFcxb*gJmj8E`6orEf*X9QlJ=@T0YP$QHd7=ROMcXXx3s-%wt9;WkoT9otYW@-B
zV>uT-MRlIqD(`6}cDYK@@x+bT!rScqv!#-YEL1m6dy(5Eoc^c(V@j(_y_E+Ge*-gb
zS<JtmQ_ee2@)gL>)>*K4eaFn$4@yhS_AibTNcgCu!YxzsKl_-NXVb-rc^}gC7grsX
zE9iR_BW|d2!DI@@&+?X;dCg9)Il-BeT(g3m&sMV>a*d9EvBi74M4ZDquZIs>ZdeK5
zcZyiEvRM21qkyHK4{V<L`S5#(Li_p%g>ybqW=lRa)#tC6<drC-e=9NK^v1&f{To}t
zOaHDFTo&VZ_0c)U<JX>?i7?x7cy-E-_rLbEN_2m}ZxwoAam>|aJYhL!nqGu+Ry^aY
zn3?@5<~?80-pjI=Ts`L`8Sj0%M}6Z0zs~O5d$aBzPIW5Xz4qvos??qL>vK-!vNKqI
zxL99ezLwb~*U&^c%Vph-gCc>U#>=1n5;$-<vzPru-=q&u`(Llvr1w1U)BcD+Z<`NU
zi=SH5hhBM8^09Kxo$srwoG0d$H~l_SY*n^6CZqMR`N|o+JNfJ*`X5UwuDe~O|9#D(
z-C25>dLC~+oU2^-*i!qG$HpL6;aS<%FRuJMW|!m_U4Q&*wOl>>pSIZT%2Q(hSpGG=
zID0<NjJZ4Pa`v;{wl&th{=CbhZ1#4`mTUSM%*yGv#fk(O+?R0F{d^gub~I~qitUA2
zU-ei|PU5yp)>r@dsicMVZ`!$QEpu6HZVInBeD&9z&_45^8|Aj1>KiKWD@Ct3T+(eQ
zXltNx>`SVlxMq9(6&7_NXUmYt+wDu!J$wD0nmgJ`M#e=dK0Ie&8Jxds!NQrfrf=@5
zw{T7kINcXhDmLS!o|oYj%`5u57$5Z9c~NC)ID6~N16uX1UcIXpJ}$d?WWD-JpDQ`e
z9@0;Fa@r&MC1kd<yzKI=uzGpf?0c8<=?J~Jl0&Rfi`sqP@xNKHp?>>??>TQ8I(67i
zwyiY`pRr4e<3WKq+i$_xT_1jzxGzqXD>~+7ed7DZ4F!Mx9**-?Z_8PrrkT@PzRt#I
z?T*O>S{-)T$p<>Wi5>PYGGv^5xmZ6j=}X`}(YlBIAA-B?Ej#okCF{UthDB>SQ>r7F
z_DI}#yIt=i>$!_Xj~Vw*`N`&4zx!z>GyC+#+$vQYeGJVbH?F!X(m3y|c5Uqb_6*+x
zKR1f{c|DtN9O`v=>hs`d^9*W&elh4CDp8kcXqq+Y@RL_RJum;1?R`1R&+bn1GcB3t
z-EVgDzvb)Rptv}&_|zXW+p-sJzGu5Hv0Yucuy&!zwa0;s;<j_-%!MYW$WHB8y!}Nz
zW8vqG%!dkNf1RFv!%<^i_K|l_xB6Pz{ath9Tegt(fn&E>RxXIWb>^tidA$qI<P>h)
zeLG9#gPOyiw;iYMZ}_a2lxol}_~FFPGf^zU=PC?NosRmzT|X(ILbUT)ZbRVBHAXji
zu6@kRniO;_rDBn0koNQZ_ZPxn9bPW^uQfwK?~_4&@UP8}^6X=d|Io}~dfj)<a;I}z
z!P$?uosUlbYIO1VmyiHcxgRcbHeTHIZAO-i-VGgjDchssU%2l!I5)92tvi#+lKlF9
zuGy7B(_6RaZ}q#zC|q#ozU47@S95=-=Zogme9?}IH<jO9p{Dt7zv<Z}!JiA}p46Ia
zo5EBY*M6J7;Ca2DNdJoHtyX+pN0hb%uGro8Jo4wWe>R^ZC+jCYdECXb;O(&s?2g|G
zuXvuBd8<?*GSJ5|>V}n@bL%?sV)Lq-1*=wZM?YQqHJ<tLUB6W(kDGl~Pf-i|ymBs|
zL+w`UZ%gf$Ux}LZW&63X7cYX&R?a_nUh2w?e>Qt&goFyp>hD;Pai#vf)b>N$70#`+
zF!B>TVA;em|A#BTwpPy4;|B_M{l1d-B<$Fqz)1i1%j*grZm<*B$@nTHsZO0?id@{?
z)@n}m%EN*ex9m9fGVJ^F`>$5l+Xpl#teRZoXSn2Qo$)2Dv*wH)*?Ut|4HnhvWPZ6W
z`QBZG``HtRbyju-@qY4~7k0#G)~}a8?9lADv_J5r=JO7Bm+%m`4!`Ad74Kd+DYho~
z>XeN7=Nef*H0P9^w|g`1`}K245f{6IZ|~?8RFw^%++%;}!GkcD=jR{BABzw;>;0kO
zLUnI~#&R=lTlrG)DV+@;_s2gn_$gYJ`+Kf<K|=Us_6uwu#5(3XhrXQGRlR>+^OS$}
zqW@kPS9Uv_9oRN|!}^><mkQQJ?O+k)a;R&$&s=gL{P<mo(_KF{#?<XPo5Q&L)k1%k
zZ|&AE#l;0wcC4;{C!iPh!gSiwxX_)mVxDiS2)h?q{i#~ZU8G@K`0Y$NlTXWw&Q5z6
zb*S6u&f6cmj8^NnN9<q3b~#(OpkbY~YqN?#=%#uWu8Hd>oLu*Fj;XP1?v8&4t@p5g
zyXkhqa*pDRo39*elV5ePTTa+|R)9G#Bfmh?PmI%i;VbJSI}O)pXIoV+JtgfbyDB|p
zefXwh7i_}5Z~3*_bjq5uHl^89?0!!8bwPoz<?KoBrA#Yq*K<9!y?P^$v4^L(n6+`U
zN;bcKgVn*pJ@uQTgkN{-Y`oMgbILuShhxz`!D?w%C7+Om%bcfrni_5V?XyZke)g8=
z<b!X^4&Hg4IqwgbYsKn!6Al(!6@UA&Q{FbzesiIw;0|Gxm{~#7Z@jtuzQ5+v#pwLh
zm1~4uPS?jrzIORzcWB0%wsTYNPS{)Nmb!M5>lL;e^(oGZU;1~PsZWtBTEV|7!-<pg
zxr5}Db+sD(m4|1va>wXCn6Pknp3w7bQ4u-6o0n&#Yktc5`2Wz_jmKi2l&9q+Ib6Oy
z<xT<rm8_5PbBu1=N(Gr8cdJgT-W&em*0a}N4o)~-QgV6G^vv|z4EKNawey|MXKv?P
z@cM7w20u~Nt46Cjg50Oyc06{aKA2~rl}<##MP5hV)B<%cMmH&z>ZS8mti0-+Q^!{!
z{y_8W&*ir(`Ay6|e7qLA)4f&ns#o+vs|#(L1a^2b@7wi0%H^K1fT_tTg=?>iUP^_}
z6+Ij4_Orimx%DT@z1JT9k#aw&GtsWsQ{~q8?D=Qj*#@V0d7SLOnc-W!$WwC3>>u?>
zwXSPgrn&LH+IOQab<wY6X3aUZJeo@joAY=l2)3WExEs5?|Fh5@|NkXz+net6R?J(N
zeC6jk@tcqP|Nm+9+s#lqLAOqYCF;^8POW{*QfIB$^hT|Ab^ITzYwN@!-DA_bPOsS~
zQG1KCq5rtUigw*8ybIVKN@d#}y0QGjJN5HC^7Ys1qbC;6N=Qp9;rLgfeR7dw#;b|@
zR|=lJ%H&%X^KHKGVYz!J7w|})iFj47^we|CiDJQ%p0URo1pj|}dZ}_*aO1XxXIeJK
zf1Y@3gJH_fF5A7CDmGD%u6rhKt6vo`>1UR-m;AT;0y3K#mo1r<;Pc9G!K~Zcb(+d7
z?&@@Ty;ZBYR=@VfK_26`3>8@&db_X7G%i&yyy&mr<5+gaA!gBA)2QTmmcnjl=lrbQ
z6Qsd+*M6brt>eB^ogNr2Te@c1-ruu(GJDQ0yS?c<oAjY>XWJtIJL5%VmLJz&?C?Ia
zBQkeo=jG?>p84-$g)+3{+!c1qOEP;cyvOxiwt3Zz)cRRBr%3&+&#CtMYMlJMb^jUd
z_Zj-aKVJS6Gdi+*>o(n=i#2m5>Yj=IoHcU;`w7v--#UJ8FMShm_cmjftjP0_H>=vJ
zx2{W-P^#u;d;73m%t_<<a+!!D*~fE_9JNk$&|k-9&#=waE|P8T>!uKW%SnPQuNhOz
zr%e~XKXJO*P1ntdIwkhsu6x%9EjV##Vuq3M-8m9JJGgi>Ql@%ZILCG_FO{x)eJI9C
zc&|OTW6*c`XFJk<`9EKvDYMkMG2%yrl1s^7<<M!Y2Y#-0;-8gue#KO-Jz}!P_rF$)
zSv?iJEHsHfxyy)A|Lf{02TNXOa5`*ilS!WTC80uPfq3-AUxC5}U#88<G~<6PTtDIK
zj<+H*x&Nl*em0iXQ~q_K?_2T)m-nLeN)4%Yg)d#(FD?i*JbzyQ=CZ~^^%_N52d^-T
z?8?~Zx7;&pMaos(RyGlByU9_Vg$*mWue<-8=Vi$PQ_0XJ_38a91jV(PKgaGaGi8Y8
ze*7SLzQr_)du{5vbFNhH`ZhtwevAJ3C6e3fXRS^@mAXQ9L4D<Poko7atGU0!1Ev3_
zKjB%gS-5t`q_k^xWyh9TpW`@q<hl7X|F(xSey!o!^?pmC%DIwvv$Pto^XJ*~sQ!QY
zS3Yx{*wrV6U(@o`3d&WrrJvY}FmL$s!cpj@5c{+Md*_#%=Nwm7mt7bvy<zj0GcWH<
zE76RyIB!yKb$U+z=ZG&KTfSRz*Vg^oeRp;9heJDOI%E~<UT&YI&t-A{%0I`cGvBGP
z#4@QaTAq_*7CX1aW;=gSWQg7)3u7y;(>|p~XQ{dO``OFIFze0|;mzjHz1Nho?_X$W
z_QIdj4c(+gC11pMR&5S{)N0Y0vN_z?l|w_>YU;U~cQyaL>nE_uo$zO5{~Kbu#%cBr
zXO(%(lNK-1-H^X$ie_*}2dDF2kB()sAB?@<ytx<Ovf)L|zhgI-Z%^OeVKHHvlX}XM
zIh$3a+#Ktgzs4+BIjb#x|4HZGnRP~+IkhgIykPG#b;5(ffIYuoGbx<dRW8Ob&CNw5
zzu5B8CX>qJ^A>E6ep>sX-un5st+&0F%`W~|b84o~64QONrxk}hxU(TnaOs%?N8Oe`
z3j3dIDc=}+?^-XP{jd7^;2H09)*Ihl8|2y1yTo|<w(c3SyS}_x&pWx%c8?2lXiE0d
z=)If~SMS;z<O!Yhu+8i-Sytc9t!1?+!Txmovc=z>{>J26{C%A;{bHMr!mjN4C6hav
zvVy0#Z4X^u68E3!bBpwqMTQX{Ig)h*W=y=>trhY~@4NWwj@y-ckDX_k_WtG+qkOZH
znG=+A_w5v4KU4MR-Q<05=VX6+a^agUcWvj7B;^oBFJlA$YktOy_r#vxmN;YDJAbCH
zeUn6l_)-?9{n+%$;H&Q4BFV#2=ac4hw)fZX^NPD3a=z>D`cI}I4>VUsJ=?T~F*d7<
z%lR(%b)SykVe2>-FuQ$ro0r<`|EH8wQ-!1Ac)ezU+I!h)|F62=T(@GXsLRKi*AGfQ
zf0zDh{`T~bs`AH<A?*CR@n6%_C!b!Yqu%Df+bRA|kK#ARqn5gFlFALagLzXYZQa!+
zeJ<z9o%*xVZ=DLxo@I>=yyCntXZD3>kHWt2YNf|o*B-8Z`%1`mL)TGd<&2X|%EzYN
zOg!&Dw_4`O<z!}!Qh}(43zt5yIVWV+Cw<w_Z<Dg={>~Q7M@gR&Q$q!_>)!8odT-wK
z`E&DGA=T&iKArG%d%8ep?}e}K#)qHf`ueWtN%rEn!~eavKJd|<Ta{Ly=BMg#C*?dg
zxckQ-I`O{Mv-jV=*%rmrn0CB)IPvNIn05EeID9WIIuT>{<oVqB|5yrTa@JhUI;j37
zjq8-j-h#X5Lhkkccu>@@@kU$ktIk`aRKqK-z3Y1lw=CQ0^4Isrr}OtNOqd_~?ZoVf
zmv&`bcqM4o^H@^fX&SG2{c#yXhOU2qUNXL1+9-1+e`8*&;b%6srr9#nlAmU$^0e<S
z?{jV5a&XqPRRK*tKV<rssjocLxJU8LqvG|8p0yk=KKIyIOnQg^oOnkwXT`$VeOfy*
zt@+mIuP=z0`FrQ5uj_9moOyn1eVF|3o&|>GJzKT<a}|`-PBYeD{n}n9J8M?GpySPg
zMefHYzj~J?Vk6sN=*w?rn<uw=#l(hbnbE4V*E+HN2@Cq9cj~ml(uC6)e<m{c-I-T<
zYK7npwOP+I`1?+GPLw^m<Mvw3-J1{FtvNsK&+o4t4jmlxTC^5S2(!PnVpqvR=EP<1
z-5vh#G=BTQJLVtPoynY2t5f-vPO$2RF$&l7TwJ`Uy*6}##BG6?-2CkAw~}~weY(%)
z{`>B&^oNoYcy>--G%G?(nrCXW$BSnXSE8@4m1!1<v`j71NYUe;RBHP#=$MbdmWzCf
zUoQN-)}J|J`qV8?7!)5Kxc_zkxf$}_oUh(KRxkW=E7?`tQR_(WcD1$P8}FCDR5_Bf
zv(N8L=Fa;0=KO`tqSx=LmfX$%*_WZx)%_r^Y17S%>Z{l9jdh)OLg>-)H=17;dB)H1
zyKqilk0T%>>+*+JJn5fjo3`^?{{6xivQMdpO-+{nKcD8$ZD}j!vrXf>V-Wh*^}uw6
zG;hbb4mC@~qH~jzMNT>JZTPz)KgU*5C#=&yS|z*S)Z**2>VNRQeqN;fxO?lt?LTK5
z=T=w8z1gaAV;$Rd$#Pqnh~F0X8ZrxS8HyAIBprXhR(z(ZuqEdm9_gC2?cIMrHEpxb
zU%OX-e$-+erJh9&8Sl2AKaf`;5;*_ywylPGmNsW>%d<0ocDO2cn|pthayWk2Q!cFQ
z-=P;Ni*E+AgiL6xNnclg|8D0ZnbpV6SL{Bb*!R1<`$}c%qaDkpS@diw7x>O~z0r5G
z>b1Em#a?c*<gIo)tl(JG$h1KEvz%0mb7;aVEAc)@#*ee7d--UuIpEhe?a%bHvTS}|
z&N}&Q2@JB`_~+VP`-Z!Zr{B3dt4)2)jkflSnfVrX4|4WCFQ0N||9YA8PObHSc0ToN
z{!rdleko?>#|y>1kKad{H%|$>;-L0?rm(!jiV(X1J&W&u%WhWwDdtS~S$*;0YL4UY
z_pVs0;mo&Shkx__i^9EJCQNL-UVk*McP>0=wdb?#mBcR^nk@5;R^E1QUi4tXEx9g^
z1Lo6LxgHX6&Ofjt>D%7M?WONGm$w@@Th!-=|BUOJoVfaN;TjJ9ua|G!6`OGXOu!TV
z;ubIdkJJ9{^trp|k=u>t+8<L-Zhv%#b2lHe?QMyjcka$plU6wG!N$n;yJqVnr}thw
zx|~icWCIWJ3-0+V^?dd3wH!>ptb6sH9>i{5e5KBNUy0bYs@mVj<7XdzSaNRG4w3cj
zKN9Q%3+i1mSB3uNxTz$bug|J`YXz4Cd(@vZ)$GBFMm;y9e}&9=!M$;YUP1Oui+k(M
zva*9T#m*~4z2`e{u;=XiyS>LX^DjSRmYFBK_+GUstG)Xdzc<g$r~J#gp1S9qTJ@~!
zYF3+jS86xDD@hdM*^(aed2iK)-Otw~&Nmg^6%g!lC*`|j{l5EaC*9Ap7t6ZIGi9#y
zk8=}u$q7|&5?<b>`OoiW_@-w^-z5H+yrOySe#;%ZKhC?)Eo!7WTjgJ$>QPOJ6<g!~
zJc#1f-n}$J<=&wc-MY6=zOl?KvGG{){+7)W%Z>GC><t&%tccZoGQ;k&*z@!Qi%nk5
zl?$C?zL3Wz<bmEl$H(z!>I1j#nmbeGCX-bk_X_hfzpn1tmCMktuAMdI?`qq#{nuve
z=N)V*nP2Uv$1gG^!QFRLot5t*lk2j^0%=7GyvrFEX-cG)uHACmN%!z<9|Jbd#ECZ_
z`DO|FAGY~+B3a|7%AK0M6QA)j<!Y}==y!S6WA)G3<BD|s!}$HP93Q8-E4`|Bi%Ius
zYHMYCY#|->saA7OY;!`}v~2aRWNYDxqF<DKd~Ihjy#G7B;dZS=QBmRXfM0FzSufcw
zdZSn39m<(>Jv}6TW3fr>l~)2>S{_R^6o2RU?e5{}-!8J_{vC^Fy|q~dJhcJW-*P=$
zC!*uO>E6F@_Wd?FCw8v*y@fC8!OJD@>-8=d+8rwL{NJ|fTD+J|;69PyA6%Dzd}UUf
zuzZr;SI=dptAf_VUy!^nHK!mvrNy(^k7=Ul`>rPc4dNRAQ)<iJ`?K}tmT@W8h{{Kq
z9e9{MXH&b8N~x&v^+`84Gq$`+z3wO7xbrkubo<m=)>M@$Z`CJ%ewq0mbh^v+JjJwn
z*2{W_wn^Kb{Ak@Qx$$t<%n59z^VV!XuivBo(Bs_E$4@HbwHo-geV$ZoBWoeJO+fXf
zZn*j!PlsoM?^n65+voK7JwpUfPOD35PQXpx#Q92jhx<+TiC&OoW9Rv+xA&gsiw{9{
z<^i=Ib~+t1J*w-Tt7w0-<AHLTMe}2x><qW7H7lkpsXuPCckeNlQ}QqOl}8y({2X6e
z`#N9ax$DzYTkX1)!!whlKYe-e*GBY!zfx)r@3IS5d*4|zOz4f&&p$qSvExI%7Oudu
zE4NaPIBj2cxTGRnPoj5n6mO}S<M)Sdtub-)cEowt`fm*}504T!@3wgQ-4C}qq#j21
zIcq%L^5M$uj|G|a(SL8{9`fCjE%M^ut5-)#d-@k0W{gx^t&w$H!DqYa(;ssu`1DOY
zCHi1`;GO2l-(LGO-_SeQxFc$VYSoQZar@V7i`%U6xI$@W<gNwmw^TdT#6Da6(Mi7l
zF-)B``HjTOGnpC(rM?FI^s?^Gyj?g!;mh`rBd=HeIT^Z}?ZiXjN%uJFi+J@j7wJE{
zq;@A|bCfc3)#}Y=M`BlX%Cqh|alW?q^pqs)OCOwb-ut}t_?qSWDxF9B{miAiLoROP
zUBPhKSvzvW=`-6Svc;8p?ec08Gp-!DXm{m<@Uim~cOI*$yUEeBaE|3y3D-;E7yVQ6
z{(CN*R{TIrVaeisH#vUw`^VdM_3fzlNSeX-Y2KGil^f~d_3~^peZAz&&Urt`a{7~6
zbtBy4uA^g{>QN@g<bS<^ib21(?8{D5T{q{`bVE<6(B^mkjR&?o{x^Ad$(=2yBDiBb
zSnq8-qdV{NPYdZevx_FZc-JO)r8&&_>(WzGS4t&q2uSJv#8b{~Rgfw3ePO7mZK88l
zbN%v!yAujzh3A|9zgQ^0N%J<F)QW{#pT$>%-)OkOvaxCEmp79Y7#WK;SIQkRHu742
zGdw2e(R8DS;>L5-Th5zUhvhmidwF-ovdKO7>-mFLvYnT%tC+j~O`*Zj{H?v|F7r=Z
zc2Vvxa{RC%{g~+bt#O_1ZeR2Zl`F1))cf8c;O!(<Kl{k3yS0<8w7*<<Q1Mpm!wQWw
zTg_i_Uw;YspA<Rs;di(8duPrg$<Lh5#Gcu>ud<wD@6+sie;t!szU+8=wCQmO$Ihe8
zT|&<fO8k6!>Y_~Aa?|yv*RLu{e35Un^544nl+ra<j)hH9yZ-k&W0ZPln$FjyO#9Dw
zO(~4?>s)*F{0iGi^}%lfFC<o;7HZQw{$Eq`nX9~E$SafG{Wlfdvs`kPaB1>QIs1L`
z_IsZ$-r@<K(7rNty7#VyDTmB|I-4}dEIJ$PQDyTe$Urao@3wauwi=RZ52O2c@N(*Z
zX)gKB=BuT1g<;*<f3dTs_nKXcvNltFm;W#L=_$LdKdl@~Y&M57ORcE?)+GC0H>)O`
zCD<u?;cRg)cGlF=CHn9BCNFH7r*USN;6u5UT+PLi&2^U=?!B`5wriPAv*FUvnN<s?
z=p{bh%wz1Lb>;KNUs{6k0erXeR^@9YUGFS@;i=(KAvXQrbk~W?0)t9RgC3V`S>|pp
zooTmFewRR?modX~Zo_W@3ueqwu74e=_$2*o>kZS_$;`i!Ki;do{nv9{mcFuyeO1TK
z+`DmKep+90UC8t7dgAdJ(~h5LR+(}B``RxtJA)P6rdqEP3UZxXu;KH^EujJX`fs&(
z8&@uEzF?-M!(_eBW3tubDx038w{KT(_`Kr#x?lDGGOXrlZJMs+G)w)uS5UuX1+!{T
zJ=e?k9*x_%=d=`@b?#PqxKFM=@^qTdGLf*?XJ5bLZ+Xmj(t~GX(w1FX1y24dE)KEV
zj<o0=(l2FbKgE1^>tq9FwikD{>(Ay@Jt%RjC;qnh6FZjM`<hH_mlogFoGkn`xK(Y#
zqv$)*n-1OH&bJ|_bZ=_ylg*h&9_I1abJ&PiYSh#pI8&wGB3vw_B6`=F%b`d0ufT}|
zf^s+FPE~A9JCf78@Oy&A)F+A3RtoLi?|z-#!2L1*(w2(yCz&Verp(*XWU^!CJZ<J=
zCtoY8ze2*-PL!TK@JZudl;ihptxWax_uQ7aF5h>8{nU--P}@Rvquk{7hVYci&kqek
zeo5Xs=lVWzRsF4O`<DA+yLT47d{p?J@$$aRi+0(!XMZUAE2Lv`;}q-P&Ac;wX0*<z
ze7D3-hP|suxoDM?*>AfSnse?SwDSz{n)Ida|Apv?a)ze0Z9Mx|d3G*M_UP%fG?C?z
zy#HKi`D6#x+SDwanQN-d?e(win8)yOpI~G``OO`oo-bNiwk+LRzwGqAkBh}_&3@}v
z+Mck~Q|$2Mq+8*y<>#^9t-5r1m-*Y9j_sND(bp#%7M&`&y<Pi*icxV3^Su0-7J8r7
zt^8umYx3|^$zs#ZimV%tA1Juu&Tw;T`YT`i1<HP2u@_8JUfp<qHhkmW)o*2DBw3Rd
zJn^xb=k~1JY26*mZ4dPC`o8>MKjYy0srRh<PZb1h`z>^k*{8|#Q^)c?yLnem?69!P
zntFNB<vfPkd7@jT*%sx8+<2|`{c=L76#s<;uZ4=;ZNb^6=6;?x-?{bQ$s(&6WyROS
z1!O9|CK;@bwJhcNe%3+oT8w%Q=W`qB4T;4kSPxn54C8BeSko>jo<7U7v4TT0_+9<m
z6^eRA$tO>DmaBL8a@QNxJ$WnKc0pb(xA%?8qxW~i)@!;<W#sIs;eI3VS*iNdbW`Q3
zt9+Zc3u-2(DMjq*t-jTEjd9NRo|T@)hx1Dhw^;b^wbVOloZC}!N-qAFQ&U!)@7t$^
z&-XpgzbvWhTYM*|zSz-Z#r7rk7JQ*h-gS5C<y{tO?u)FGnwS0eZr)pYeXgJ*`3YNF
zt{k58n~i(XOR>Gbzb;yOPvmmy*|M+$kJ8Hve1D`xF}}a_nA7t**D1N}tq~&JJHI=|
z9e!jLWH0(>x8m6%y;;)L8)EmJ>0#WwZ9<`_TttA{{FzU8oqKd?ud#U5!CPr3TWoK>
zpL2Wh4Y!hd_PMDKg|}VHJ0v_M+G|x;eJEFM%JkceU#13Ri&#DhH`v6;ed`g|j%5Y;
zOy3WLxLoL7Z2V?=oR>}A=P6GYa`8+3we+c5<XtbZcin&OIE4jC=6kGmYXx`s`|X>3
zahKS!E+gOYxhZ1YYc8(2&bajFxn!kdY>$sOerq@=dvP~&n}7XV+c3|G)7Bp_j=ODp
z`Hs(J#ZSs1UrOh0StDNbXIH{^fxQ1-?;`H8O?>~!Cwp(ej*b<bNf)Lk{JQ-5#zn5U
z;MB-754#*R-W)PN|7}NW#C5Uahz#G=M|U#S#x@r9uUuN;vPIIBKQEHc_t%lyD~y$K
zm&~SKnOfMi=KiCk7;`fosd}038rrvbr(JPo>1tWL|MfX<z5fRp*B+Da{n>E4XNz33
zgN*T{Rmn+$#R3cO+V4LSC@ad9R@?Jn-a`KUF8>d#_4f)4{j4-^ovz;JQ$2Ss_;LJL
zdQXb&-`)pd7ap3P+H-1g!-EG7=R8wCiW--QJy;U^*<;DPc>Bgv{3c69%-#Jq)%)k<
z2CHxzEjV)e^yc=<dtTT5ZK`?m;;s10ZLKe#Xy3cNFob{ZK0$Na*|naE%a%{Q*VYoH
zG5<*OT=SD#Z+~v&{rBxvrP2@I9?1&{7A9wZc5_N*yf(ViyKdg>7v&lf7mjBx;IvEl
z=)R+r|N8qJoBykx>YvD3^+SYnrqPp2;_n|7*YBINkfZZ>gHLX9|KG;2_~1nhI~Ux4
zQ6Z9Dul2&?ed6tN?|<IYoF&91_~_c>6uBpyZ}rv}N>#jBlAN7$kWVi%^5v_buwDEX
z;@zDKlfJ)`x%yc0kevJLz$It)Em<NqW8)>epc{ovpLzOg)$WwNwf-Hc@Uwiw)guRg
z@$Q*6bIX}!_0uoExMFQ9s&#j=j;p|=*!n$-K0EeY*O+_d``c7wPh;b(|Fh;XY~K<&
zcg`=y+I`7dsaxwNIf{lxJqg>m#kRcn$5o+7x5o**i6^HO``w?!7jJ$o(;{DCT~zEP
zN7L2zm$&_Ta9Ew~CI5mRHpl7aSr64`2-O=klqIed|3BUMBh%D+={0-uG``9EsWtDu
z8{d8AU2*Y(1q;6Ne)amUWwpot<;#Sh!m4Zgo-p1G-5qvuhB4PO>6F`>lAH39Hk{Hd
zFlu&6uvaR#I_6N}baS>$ubGjTjlQzq{|5)>oK_LE+_*t>-|0!&Ie91RXNg}~f2&Dk
zdGc4)-DMpehv)fT*z#sud`dlg{YK@lN1DZt-dnL<MZKv++^YH5nzlXP(xh&+H?J@6
z$!&?tby}nJV*0(6C+zn8>p1sgR?^nfqRjbk{NHqPsI$2}?OMPZ+O)*+*V5GsWPbgB
ze|z16jq*pU4>qp%5INf98~Rz(j8AuC=&{g{2FYCp_6PFjKArZ^eKOlYfo-c8=G500
zC^!7+e|^X-<=qzR9oKVhCGNO9usiK}UiSGr*|Tx{L6#}e{6}Uz<_OjOE%oK^Eq<dZ
z%8CIS&gkqCJ2+j0>3P0{=~LaVr=rsw<1hbIk8NAJ%k;K;ZzR)Gvn!u3zvBCLkEO!$
z`mD!mDi?LQ?5tYJ^Qa*2)7(ARD@&g7l}o$auKy$EX2$<nbLAopQwx@(FH#L=O5J>U
zUy)rg=G2C?zP&w{m&@hd&1=>8-L=k~B|!C*xc$@<;aoT5dM0t&Yh8Jp|F2RfFHpB=
zapuj;-hJ2qDA|5<D6W!lxbm|so$qyBxN-XJ+rFzKJsiAK+?E_P)w$94eOGd4?f)$I
z*b@TAkyGj~ni>ARaFut_G=<RPtO8psT>3bfr4L4~JHMo|!FX{NM}Vbz?!Eon<?IEv
zR9q|&+}6K(r{M0W-_fsb_g&!K-Ff``0u2r(u0H3$1P!i~3VFYrWCON~GlOS@>82GK
zu&|oldNX(V&lh>`0@h7bi!FDFJ#(ORwZYRzKQq5=%DV5{Qtu_Wg~2xOt?w>@Jx7ec
z%zr#HzFMOt?9=YgXTGZlE5BKt@FcxU-Gq0_uRjkb`T5RTeV;{2LcxEk?U}{1?K7gE
zuiLU@1yjQp8?kEZOUaiiA84JfPnRw<iJZ(QAbVYO|C<LPJ2F}-e9N6y-QA}8=;Lh3
zCgr$?f)YCxME(=G?-0OW-z4OkW%^<JOywOrg8IHr3X`vz@$Dbab2+)RrJ??Zzt{Rj
zuCzM8X2HRycM2<KNSWInSh($XG|SZde%{(Z$Gc7m>wl-;@{7ICzSb+C;l}xr(?zap
zrsS;t<3Ee@#`8^+v;UV>&ED*r_qQ|S_e=%1)kiCM_FdmM_u#U<t8eK$8+XsH|L|ht
z7rWW7Dx*?cH6PA1N>P5Ex%bnnos-O2o|Ux4+uxgflXW-yg*gWuU&Oa{U)=9)lzn!_
zZ;j$x=iZ;aBYQHK>B+P;AMG+veJ$E97PL2eht_7PEsyqoRQ&Nv?X;EkBfHLIIhP}^
zKR>y4<ZHKhhDi1Mh!iy?M*roLB#Rq=9No32zUD(*!k2{tQnnTOKVLN3S7v;DB)CrX
z;LFL;kE_FeY(LoQ@!s!r(}~Y}EuYNfb-7(Hx>ayf^SOu%Dr<ji*HTV5KDE^+bE~Av
z>i=@>M|o%byMJBKTuW4Bc1Nu9#rvMDPJuZkB~NP)pZ&M~3RB_ZqJPg%mq-`9wq^8N
zY}J$bVt#CW`O}rBFH|M1+wxpUTdE+!Kxhm5o5OJi;jQ0!=Uh4)A@eDJo_ol~ea;GO
z=?~Ve<J$3g)x9rk`yC&aZ<(srm~oH!(4W(99YxoF5wf_xWY_vLiPd*kzg+Z)B~e?w
z^Khrd;<r0i@<`iMCw+PN>wJKB`5_Pa*(-9Z%9*7e8Y{8im|R@nlv5nC%gS=k)hB6=
z^+yk_U6g<7yuW|;ooRpOpN)JFHuFkm;tz(?dcXD@$(VnrNPEKN;xC&eLvJa!O2<s^
zjsETH^!Vd7VZC!_ra7;Y6Dwd_!FHkQq+`FJ|Gqa$_OFGV)fhW}xxK8O9RIYZ*HC%R
zmS--ldff@^t8@MG(@V^DHq`g8k+u6RetmU$T0pXOfz-KUH>ZYoGFC*c)k`_=_WjwU
zqrIW7HBqbQaOFKYA13@*K<d~p_Xo1cOhWD<9GRPD9_DA{o};wGy7t||dsVCDS;BuD
zed8Z?xkahq2_J7GbGY#}79LyXzLe8Gso9c&t4hyZV~fi!oh(^@Oi^=*WA5yF?vQMO
zefvbY60c4wsjN6<{PN}Bh3WjJT`E&Wx1T!`y7hhU<9unkTQ5FJiMr)P@+p0}=bLc!
zLbi_boeJh3Cx8E$@+w`eZjqa{4XdekjDX;KnLM!vU&Owj+<zkb?#z2-OSbB$TrJZs
zO1-Om#Hvl%tVVC$j0J49On!-5*Q{?k#9JR-7UlCq{FHrC&zju4&*3S75A^OEt-MxW
ztn_wUL)5vss=?99^E~EtM)+$!VNZD@+m*K?l4o^gfVeaJX&095H?OHro9cYxsKtE2
zOW~q7KWzWMW1e#Do4JSX#wM~JPVfmiZt)=H=*cI2XLfJsIOJNtTI|R-{befJXWqxh
zGfQ)Z)rV_Mt3PzBIano^EAiJ}nMs^hliPbOd!L4^wKEqeUfA~L(erqQhV%xXuUr53
z*uGy@Yoz;Mc-`BixZ?{?%f>GbzkA3s?%RxO4-Mtpu3laze_j9XGfS_CsV!Eb^A3tQ
z=x#sfmHJZpplkZhI~fjD#W9;_CM;Ld-Wj)0^oGC^(c0R2?}`uYyL}utha^mx?x?3f
zJz@VdHm;bYTTj=mv@cTmVU_f`ZL7kOi;oVbx3J##a_gPzSI6~DGBZk8ck7$)YrfW$
z%Y4q)m%GLwFuP;n-kS4b>^3=bQ)7+%9Ao(3Sf|`g5SpSm{e~XT%ha4zWk1!{1r<&8
zmoqCfVtL+~!M^n2`TFS_^5hnqFPUNX@TzOO;k1XW=F0zenwc)$P%W@R=7#7$i@USq
zcS!$y|N7{h7o2-dwDv1q-MK?!$0PH4k#p;uKYBNa-2ZE`s)MW1e_6rB@RL8|ZhLKZ
z`62SZi&t8*#C5HBz*TYfhi?U+CKS2MQIoOH`zawf(`>PntH|n<^8L-L>s|V0iln;r
za(t|5DbM%*eCFJd#U@j7e&_k$^i;gCCh9<+txLb<-&_8{_jL`9TZHZB3f%Z6(M^z#
zFX;AN(b)km%uD}88SKcMHOaOl(cyQI(6jlz2?>%~T$`RPd6i(tWu;Xh5pKKYMu*J1
zBw1nULkG6>OH4Xtx3qMAufbHQUB~KYmMhqD-F)P_`P%)bGc6}I6|I`JSab5ew+|KK
zcXw-Z7`<Wbl6bvtX|QLE7T?LzKF8IwT5hJzzP5n({l<dG&4EUJqSfIEQLV)xl~dC;
zM4!0X@xb^lpKF+i688e#phG*h)<5s%m}PHpDsA>@w!ICUw?vFOx2O95dHbZjTGBW6
zL%oe(cj~Vxk{3T17k<-w*jQEf(OALF_WGVjPfrV*`+C$!z7e0Yr_<*2S>>M&OKg%O
z>lX7Lz3FzzI_QQ={F;0Txg&`x``LBozTY{?DDallTBG#mb6iyJO{+V7l~=wht9{Rl
zs9QVDq7H4$iP01jO-o+6hTG!!@rd|6!t#34)<q`N%lvp%yT7n4p*14B;oEfaUAw=@
zZe06N^sw~Dzg26RzDgf!Gkc_5bmQ6gDeDaHztSyAQ#rb0?(Tn{mmTIag`A$RXw&9#
zs_cpKeDS=O3eG?G1-af>5%%{?#J0CDE500&o|$?$OWttqt!(XucJl)lKa3RIXuDqH
znyTHTfQdccl4hLs9~AZ#m`EJlR8<)8-ERI*Ij7Z~e1-jP%?f{i3&a%3n}{y`xc1ND
zZz)fgOYq)O;qCQXqhIKHK1m`g@a8Fo37gZunTws4jOOn0R*Z5gWI8r)_4bXO$|e<p
zx5eKGcs76LP&2rpC*|wvky`Ll^3%hgRji7WXVp7f#=S`Ck(+B!R{!Xpb)ck@b+%%M
zSc#Y4{JXZ78r32m^0U;x(0#w6^E_A4k-i6klexEM$ZQr8kDT}*cmA=S=Z}l0xc(KB
z<O|JGw%h9!V01vJwf^d19g(fOo`@XmRMoBIi{<)lbUXjsD?8PwBF>ec4KH>urEfR3
zy??@Ef$hS}&pNIyTHjExcPm@{H~upd{VEnDO)`qGzP34k+2vcghvux|>uhnUmQp)@
zyC6U3_M?sWdY`TQ#+Q7^q-sUcmCB7JBCbzOmn~-5?(v{TgsXol`;ngq41b?~a7*3(
z()(b&Z`+wGnx3aGVHfxG=P6^|Hn%+ZWx83xAup!o9}@)nejZ{JHGk>3sPt`1m05kq
zl$jT5A}&vnl%F12Ag0a6deYf$4clh1Z0kvhm%glew=Q{CsK&L6mhC+!PPH^|325EP
zz$rSh`*QXfRqw5x2R-dJ)g3DgN=mPrz4y(JoAZ_&Pk1F>w(`-Tt-HdK3zR}OobR^(
z?NKwQ%2GPaUYzsAPuE4AXT)}&ifgXkvUOSpQ@z#ul|@mD^XnVfe{q{P|1xk`B&SyP
zaB2UsP3xNj;*RAVZZ#8r;ML^meELq{hpm(TUu1m!{A*vesMPbNhIwL|zYHhc$lSf{
zUYK{Z{M=CMebctADf+u+ZU3#SrMY`vInJxK;5e|zv%CICP0d;Uf^|J#+J781yL9aG
z%wLB+<cwr%>#Geeye?wY7f!A_awv!S|162=uB(2s*zdZwi@9^*tN$$GsxNLiN~{wu
ziLZBUF3?_kk#CXm+2<WI9xOBJ>him|H23=pg->rbv*oI3n;u*s`|HwA`&;vMUcTr{
z&3oA{FJ|#fV3(QhwXUaZC6+zUU%ymcBG&bM_HWtTpI)zL?y^5wzu?*GQ(v53)Wix-
zJ@VM}ie}XA2;Ub*IRbXB-VfPhGXHEX*cbADp<2-&-hV5^OmkL0*`Ips$Nr@7g)a6#
zn7=-Zy{&ZaMDIEA1FNHDgpXK0P;|Y1SS{_T;q<!JW`XDgleP9WuAh$HoGmeP#o>L0
z^F`ieD7sCO=6~)VmcD`M!J^9gN>>N#qK6!}b_JfON)3JW^<VM+4d<?Zo%@83F<UTo
za!Wwl<otRosnS}(kM<ARO5A&-HcQAkpPu$HV^!VM#GQuvK9)BZ|GlDhtEa@7_n+L<
z*0zp^412;DYJ!s;FI?SlUG>V#)+N(t-E{a>XmWLWZ+lTntMdKEYdM)*V!KW*m#BXy
zI9oK?*YoeeYvr#*AEi6(+MKx7RA>GPk7CaPndjd#8D0o*PEQt*+<da7?NZuj*=SYw
zZ48FRD~ro!-1IQZVxMu-#n$SMNvOW1X@AW;=`P*RAF?u+{s{~gFw7~-)V!&7X=TXM
zjqVd}l~ttXN%E{THrQy!aa-a0ihGh~?Ee$%SFg8>ej)HZ%V8~(hS=qV+2=PhzB#rl
zG+R(WQ><4^n&}nO-`j0_f9*QxI8Acp=K2ppN0Q2t?zE<FT(oBOyO4=H`UO%mb2=M7
z7A-Ws<(z*r+$UG|h)+-bqWS5MF2B^8{KFzG>}9Vk-;O|AW82K;Xtl}vciQb%U$SC0
zOUCY}zxLJFBy-=I-jRRTtY-0HF4rtkOODpCYqxHDN-Cxra8$42T^wp26MVKX;>h%`
zvpPl9TYNv+S0sGwl{=tS$D|iN<*TimIxE+YSKiNsUPpY^l>4Ev_{!SVHQ7I&^Rq0z
zFmrbN<zsU=Pjc5E?ws1m8<4gx&_A<r>bqY7J33CRjZ9UXSg*uW!=%h({;zfFHIZ}t
zg8h>mw|I+f;@Ivg5;N=n(Tvc8`pv20{4pu_uU>rK(8$<U<W+U0$8UOu%6UJQ-a6T1
zLON$ZL{@2BUA^RtSIDbtK_;>Zv!svL$^EoG`%#1a{om&@KLd3Q1a@DYxX$zbIx&gF
zl_J7#cZWECzN7LaVu^0O+KmGjw=pd|S>e6%is>C6m2ml0jvJ2dKI-^s{q;Yq&VC7X
zoEYQ%<jHlFN9kKaOgsZGil$zzS^c-<=`#tltC0fAWl>LK?iwexn0^#l$-#T<{>4?B
zkDLsDVzl(SmqJL)EFH$)T}wW_-IMBgPE&kx{o|v~{QH}h&2nE=yODA2<>_wqhDU3H
zttY*_<y3lik;Sbg;Y;4?uYIK|blCfP!55=PJ2UrfR{WDRr*B@1x$@uqC$??MDZW<a
zVo#ky!nZF!a_5#|eBAM6X0mVHGBh2;?`I{RkeHFNRXU3M&xbvaeoI$&s2V>$<Z?1h
ze^&29S(RCt>}f0FAJ;ssx$iF{ZPmo`Fus1pp3YmR-+nz6_-x$?pZ{N9iOqfUu)kQ3
z>+Ij$I^F5_9xl}1@oDvg+oBoe7vw%4QcdY~TlG18pI?Wqez;P~RN+Zt-UXY~J>~qb
zF6;SyZD$-;$Y+I_@+&(H6$|QSKTECoXSre<zpc5RAd_?VYGoImFqh?#u8WUJn7(Hy
z*s|fRVEwThc57#FJH2$+IdQ`)#yidH19$os>D9@`Ut~NpxloMz>p9^ci%PxbUYt8y
zmb*XWt)t+K8EhB%r|0jT&vtyhZ*`TF8{ctb?mW2{$~Uu)Je!g5gE^E}#mU)Ltcc-L
zpA@sRmbf8j#HkavG7H2Q@0H4GKU(v6$00Qd;X8{Tt4$BAXE}bW`gH2vHXniNOtGcM
z!p?^mq$d7+A92Iy@I<rN3$vILPoy+XOgq5WTDjHM;)Th@Gr#6}9CC;=j{Yp$d@*pf
zXXfLqZ_X>;xEzXq-`RBI`^%oM=e;d-E8pFEy5)EKva4MkGZ|z|Ppz<W%6MV!Sofsh
zLbLUrZO3kw*?pO{Tlr$Wo9Ej?o)dC)`z5N)D?}nQy084rDZct$$s~8hd5^WRv0qf9
zW?9r$ZfWi{*1nrQ^V~*D>5Jw!BA+RVbS6Fc>Y2NapEcBNt$ZnyouaPq&GK>+(KQ7Z
zpW9Epm=OCZ@#~b`w(2kb+fU1xe&G8g&dl?({Piubf6F$1>z4RRfSb#$yx#v@pKyBJ
z-HT?2h5i^97_a~LIe*z*;a4$6SMs`Ew#S5hH+nU<ieqK{p6==Sr{@-iF$YGP7R3C>
zeE0HsyWKpoz9q9?{5;(yHH)>m@~Pwjtr$f&^Ej@xzK*i#EnO9>gZcKIyt8_Or&fe>
zobLIx*&^{7hq|vFSL|J5Tw~&PIw80IllIn0T8mW#r9bG)ubFJkJKIN8x{Tjpx`F<U
zY>h`6*_T?y9A-UCGJD@I^K$E-zQ$)4*4{rKd~a)Zq2$3G+t?4WY<&8D$$7EoQO}(s
zmQ@~p6n!CJ>AEY*E(;F^@)XRuvtqwf!wiofo0WdGF5Hq^+`44t6qEBkpLqLSn|3Fy
zHngn2)O0ubK4a@k@0#HJwO01a6+{=!E6!_A>DUysHGI0D`q>NdKl|8&7J26fGT&$1
z{g>f$iDGf8b5P@6?w96^?Ptp5B%X+@dGJE$X|TaIso(Yc#HP$uIwI@vl0&UkQCxNv
zo8k99Cec$*bnmxmds?<%(?9fS>4%G}n#}c`OyAy&skg9O)0MU}o2~rv#ScyI!-6KY
z2-l}rtJ?hd5^Qtrgx1;Vw@pLyKRLI*h@5oGBw?wass4ry_e5*WPW{y^FFCe-f8|y?
z>ld?fk{R_Lu6kc=)g(4Cn|bwK=aV~**G_q{IqQ$Th4Fvy#eMbja*KFBvheS@#_4)5
zeaX6e(Mc*j6}xik*_p1o+4bh__qUST|6V=+C&LT5Q(n*SbeUgFo-sdMVdj+7-NHB7
zZnYVzeAyMeYo5;4uL1GguO@r(wl^Qod9txpS9R6rb(X9wcE8V=*|Qv6a+X0#%y-M9
z!qaVR$9~=PP@geBorn8DfZ&#+d^%>Di3@Lh7Fk@lVcmHh-k(K@f-~z&CT`zs#%m)V
zk#tUQ!Y#g;2Iab6x(;+a&Y5&Frus44sWWy(R}W?cKe$un)AY%<Bq2MOZ~4O=yDrS=
zuZ{WrEXVuE|8JUnS-W<A{ddG+Rdjo>bW)Ydz14XO|7z`1<G7cdv36;c9-sc?#DkF%
zX-mxc!ngbVnAc{_+_I+kFw6Z=>-v8Ynf_nz-Meq>a5Oh8cTU8Gp3Bvoz3ei)I-2$_
z7H@@&vkKS?nVgoTcFo+jT4KiH>}NhDm*=(Z7hTbGWnZk+%cJ)?DyHPjkv`RQ{$Ne3
zbU|r&gJd!DqC&3Q?R5sMUo#7iy6!DG`AqZ9(@U%JWCD84Z7UK2Ca=BxWbWq|>)(H_
zR}<j>F!_dmv4&C0^2O0*v%g20n{JzTT+GlV)HNWtPgyUZcTEeE!t7h6>G#zNx1Zr+
zx7_sKZjaNE91U~+1rL20<afVdjhwBN6X$byOYP%nCegE9eePa+A6nADCbKLhE5Oa9
zI7VVi0SohqsLRdC+(uVQ{QTo}YA1;;`_{-HUH|9Q)S7uV6G{{On`S&&Hvgpu%i%|d
zvI1O^3+I-~Cc52Uu;XgO@*2@g&vvvPoI2y#tY_lC+=R}|`Yzv{ll4XFLxYe0bHUG>
z=7!GP_x?xx$vg-167_ddQ#%?q+8&ob&i168pYzcZb>>4c-OMv8tC#IqQMLZpjzxT5
zYz*H?Ypvqvt3Rlyeegkf&DzJaZhUB6amji2*$o@{5_aC26aGWDYx3fK+U;80H9HsC
z%rPz3v+1^8?EmObo!67fKl`R^l~h(O+Bh#F{N|FYcfy@6wyKtg*sUskD0Q3NHf8<f
z`&-}bw=i|EeXKsmZhgec_NJR&=9M=-?LWDE)-Qc?n*`NNfx~gy^_5$_=l#BX`+t*z
zgT)7%S1}434s80V6XBL0x^lhc)_?1RQmvOcojrL`Y>!RItSm>HN||aKML{hE{ojF_
zrAC}WNjm4v?j7e@seNSasW<FX4r~ii`mpxqRI5EM7qjnf{kHPKVplzXbAM}j*8gEm
zacL@F`4-Ad{lB;~N&ZhPW2!;@cl(Cpn)90FlxAA0=zQx<R$I~>cy2>%(9cyo`zr*`
zs{fp(V8I;t_q3(G&%J(8ufEMEwX#1}m`Z)&oio2T)+SFyI{5f$hlz6!8a{NjsM~5b
z@8*`L?(Q}nvtDkL7ghAII(^nj<n+B?0b#LQZMH1uRoNXS6xCf+wB&!0dd|m9x%GZu
z=ky3NEG!ecwfgbw>gQW}c~|Cs)L_?7pS7;@#T?CL<+=wqPSUczBtLuY^>p@vv-jjg
z<?ra|#lBn_QSi~j<%Df_e7@H2%Sz8D9kW&T@{p8rSh;o4%lm(&uWs*X@|t|-{m)kK
z*+(x1uMfMeK8s=MnLJT(O>Ma~CvEwiKc40OQ}4X@+^Z$~rgkqemkHrpdVUQ9@17g`
zK9@@8y;!+qZ{?hlq>3t*$rsbFw_exP?C#BYe@dtJQc=ajde3#bFO+2W-g?rS?S6l@
zw~&ce{^oP-_NyQACZGShI)C3r!5I5#bL9h;#Lv5~`}OeRDv49(J1$85P-4nuni+6@
za{XVP>&oxK>l<1xGX;maZE5*(I&W@L?cJ}3KA2qT+kakYJ;#|Hx0&B>Dq=eB>)s_F
zRn_V4TOBGJ_Ue_#4y`>Zx4OPhSE*IV_`<q^J@R7Nov`xejcoS&BsI6^RQy>Lswuq4
zkl9paD)Wb_%X|NQnsq7d#|(}y((kUlob#*SL-6M9a<iXnDvTf0Pm6R}<gBQq>H0uM
zEv0(<-*soM^mcRCoNlRpU%q`qVn=-Qd<WLthpI2bLhOQP`kuXK;ry@6B75FbzKDD5
zx<`~IoJwZ>7UDCdFJ#5H&xaD-gPr~y+3+$)<#6u;9w+y$3g1uc(kcu2@qPNX>N!4!
z|4y=>+0l0XdqTNM$i<FJqU-CYo4(nqEb{*8RLh4)dm@%9loXvvf7mxg=X}ok86n?7
z_KGiBKIzT5w4wuZu5+jT*s)pVG7GO+x0IdKEvbh$C%awAczU=%Ywj<B6`SPeoZQUO
z_KPQr?TTsk?F9al>pMiM-^(iI)^aRvu?*&0A0J`1e1CiJ`^9toWtQkDYwSIBw6dOQ
zb$DgRe#ajiA9(~rye>w+Uz!@$?Q>^ZjYG$;in)ycr6zAO6Kj?&pJ%#WZC?7ctpW}z
zuJ;!2tKYcq1piFlmhI|(_K&x#8Z67Jlhdi}&iwQGe%H0yYohyR*qv>NV0rLywnb3x
ztSQ0n^E(Qb`@MXT_wdnD?$=9yZw=e~{6#BgOTAp>mCH(@8MFENTKTGuF0_~`u>Q;(
zDQWHdPu^Xfe9(JV&C@xqH!=;DPf!o%z4}_?%FDO4DkqGNnY{SfwlPVk&;GC|Q)TJa
z)?WdkbC!SVUYWd1?zWwJBO|Zb`=!zsSC`p;l6G0fYbsxCx5PW|V2q2<A&*x-IjdK-
z+D<y3ZTFA4ULi<EbgFbt{c(v+(JCAzC$zdE9^~KE6qcNRw<=^tVR}`c_-CEcznTi7
zZvS_FNPl*yMf>ZUd3UD>JIDTcSikv-TB8qt=Lhi#s}^S;h)_AY;KJ=7iAT;Gf9pOp
zkh2y0d1A?Dc5S6w)@zFP$V|QUd;3<NYF^=<m+h<ju6)xxqjjtP>Y`^x*VlMi?Pm6^
zFb&>(d)uEb>DTucU(Qord@S}_g?IX4^&4UQIqmJG%z7)I9M50g@^=632b2DayLBxL
zn48_P=hk|ky<#CY{I-h<m20>69=MP?SMWrKMXS!drT=^~^pyA}_M1$3bF5J0ZP>JD
zJ+JvZrnft#L~Z{xV+HR_&%}BgJ~599#;}hM_TSm^b?xk?S7~bJXRH@4e;}o!<@+er
z;(|&<%f`>=qSTJ<l-m^ixyxq9+P<Skdf(NL&Wx@2vDwL6Jf^I6om%K0fvj-NPit+K
z-Mu9nB{C`P%&vG96YrW2ikHRB^c-J?3n-V)xOH4^qiN8J+sh6zHbmss?(=P0S6{np
zsq~C>)0XEdEco_LfN2r)-paK3pX8kx%taogn{rPzWj<_s?8EiOd2(N8e|Qmiw75m4
zNoy;sh~hPaCG!@Q99wc~+UMK)M`yi~zrXodmrnFPjz&Sgo9PvN^DV0d6OVW6+4sD0
zkiPssHtiPojaz$WT1r`M``K1kbxwCS`=U(2dY$qV{}jUm1(AX2hh>}(O?#$0`{3Uu
zfycY8^_IQ<Th@BTd=iV)4;6V+F}3Ksic{ak8wR>2ylVQa_w-H2%R9|BYl}r*GA~K}
z=T%zfw&y1E=Uvm|n|WH;jw+n(o6>nxH&r7;w6JWpLWN1Az-Ldp{Mq@xQ<NusOG;~(
zaLc~&ep$UyYR&nVd%jo6?U*YzVVi5i@=xcbXUaEhdh|hESnEZ0tCCf`_3?vUH?4iv
zs0S>HSR&36vXHaeq-kPVie~cvxZC&cr8zo;A1w{*i+9r5@pa=?v!l`Rj|8-Tsg(bb
zx%c;<F^fmQQcuB(RRU~lGmC_iIT&k&PP)vVc6E>4?nPzi>Zi?N_Mc&Iyf)b+`Dk}*
z%Kz=(G*9mF?);q4RT44((aO`Zz6(;5yjR@b+%;L#n(1q{WP;CwC*AwLE&H|j;7q9>
zC-M%?R@^k@dczrq6@7b!)=JecxUqg}->%bapC3!__Lvr%>m-^S=in$3V>zWe|Hr5O
z_c&IXbJgFsta{sWFpg_q{gRDbEt?L+IcC^qJo@`uc%5jUmiPHZ%6uzg43_P!(444Z
zef0AVW3DJxp4U=yl>PNBW9~{!`L!*(q1|lyGn2bJ&ENSyNZ9Z3QKKVVJ@S6S@2g)X
zU%mN*FGz8{&(8@r8vl8`NWCfF+Z2Ckrpk#lnaIwWHB}EUU3psF%<x0(yv6+br0;xx
z{J(xv)UtPuU75T>a`LYQE`I}NRLwaawp+AS^KZ&^v9R{lSL-9pog^NLYuVkrc{Tc1
z)U4vJYYqYnEZ*;S|8&p)=bYl*H(ehuV{4vyV&>m-#+%D5s<-@9veFAnnRjOO^0hU*
zKJ7wsUG?D_jr9o!?wyx#>yPaJ<7iPYZd*S?Zeh%+6*Bd;A?F;fZxR<X4p>)w*ZH`r
zSC6Mq^rOgoXN9jQ&oyr07i+Ll{>|5R;8aD$L9v?r@AJ=RvgvkBiWBg#ELiCK_wr+p
zEoye+lia=A!k%V&#@1f4IJ6>X=7+AO=bH)_ni$Vs+x*RHM`>x9)Vud@PkyLS&U`&T
z<ka7o`Y(@NGN#7Yg!_K8+oI!~)xP>v&0>?y3EAr5mp=;s*<!Ov{!mF>bNwReyH;<v
zGI70n@>{uKjz4GQQMo<qbuJg%Y75Q1nU=HVzIN%N*Hdf)ADsKoFmIKT;g+P5o&Kp$
z=A{VaNz3MyC@y%wpi*<gf1A{sIrryqpAGuX_eW9llh>tsEvx4j6Smfe-M{1Y?mUmn
z`50EeMBUit9=E<d7g8Q`zUO`MyR4Vz$P}Zti3(r$zK-4!eS)cGord3vhXTDvn$7QD
z&<MFvx=hk|m4;jKKIUC7T~q4Zz5Nn+Jl&*qgf1<#wzp&L)Tj^LWpVWFDdF21KO2|L
z^|Kb>>rA|LQ_Y!?qdw+Bl8l1~?<YB*ADvSef7iEY1pRd05WBTsBPzS;N<*l(%_f!9
zC5>IR2Tp$1xc~aPLVQ8Gn;&mutkazTKX}zHHc$MY?zeqz(7(GT*Owl4+V<{xvx@0!
z4L<uK{a;qE*V`?Pp7E(vQ+>gn>Ap)^Kjpk$XTSApafvHe%Jzjf+CILhS5SWS#kpqF
zNB+{wJ-=g;^IS^<0`F(MS?j>C=kMO#{c%zM7S3hJDC~MHC}}Ky=-4NNdYdyp)Hf~<
zE6%;M;mP9Dj`7d(Ev<Y-8crRrmR=gxu5ABSJ@rL=o=`?G)5X8rwHhD(+3+qhHSF#2
z#t7&9j*X9(O%B`iwuH-`*H>_DD^GoYTIHSAi?e*LvD`jTmfX&H<&a30)0>xJ=`uSS
zr1wqcIIuldow5B3pSJxrxr*TawY>9nEh^U}?7g$zL(%$>$dZ{e`g11Ta#^^SQRa_H
z>M3o7Wlu||&a2E3UL6r)%)Bjx^+2S;#y_$9b$-3QAdvF?zxfTPIguYWn53U=SiS9R
zaedm}FkP<|`Ue$7kEFTJ75uyAhZe7jlJ-$uo!2$fzHsc=oZ5acDVxV}758funQuWg
z;jv3qZp<$$Vp{mLRIfhx0OQx{qy>sLIfk_lzaQ0WFnf04UhvbVC(jmXh@7ZBa3%L{
z$lRYhj<o9eE4uP5F5UYqc)xz?^BImgi`VbDvElWs`jbW%H74Y1-dQMq{=k};jOMRK
zUtBnMW!vktCK;ZMxwt`&xB8CM(jpfvql5C3nI~KdZrJrqd)tIX!ILh@@kXwi#OCWh
ze`4!S$7@Zq_w4`qhf_jj*&CDObGmvS0Z(T}IEijZ&UKsP7ny%O{>%@x*kIkwH*Xj6
zaTh(B)T?0{{L7~P*{$0DjlF)+5)AoQXPFn73N)}!fA?%h?2eT^F<<Tp?Onss_)+3@
z+>><=n|oic<YDIP|7Eq%e<v6BJg&=cdFsk?&S@5GSGuRVaM!9u%M|1PoVj=He59Ki
z!>>usIx)w%CfBrGKmJaYn@?}~9d^&tTnv+DudUu$IiciPU_t1VGnMrPN*iT^EY~;o
z8nE?btJ)d425D>xbYI2PBzS9w&7I>a8Ty(G^MtI;A71EQ_4ks}hEKY^yKmIW@9;I@
zmkyWr&=%W#=d#W6TC+LU^7i%COKNvla4YY#3inp%+pm}>`;R^GYh?FY)Am(<o>O1x
z$o21O50Sdb^rbR^_tP@|4|;6%UzsicY*D*;;?kT2AD8au_;6CeS>n;E*NeQ1ci!y}
zFV~sWAEkL`ar^#X8@%KXT?v}eV5xpA!1-R5?gH1_r>!a{pUkT7(wEqtQa1HnRPMW+
z=}WjLey~pZ^RhMI;*NqtJ^Sjn|Nd66N;KrmksKu_NAbmt`?eevy2EF?;PpR;!yY{K
z_pDw`e$(YK^Bem_KKHzpZTuH5`folG@I7Q>{ZA3A+Nve5{j~q3+Y}caa4-5gF(`7u
z!M*)AGhba`lf5-V(YLFfU*Ns}0-0+TW>sG9Hz$97{Vqqb!%Nn9ugEGNBO$4KrOS`r
z@OohVd0NyvOK#&+?^IvzpLlm&>YsKure)I6jd}GPeXYMAPfp`BoGALV@rY{ooK1nM
zOfrQR>O-^x)s59BPOF`L?Wc(75lyZ2FO0>uU0~espM^K0=2VRHn^zqTlfJMiE;{OO
zx$p(!wA`o7VXHQV`1sCyD($RwZQo^&tKOcxcXwTE(!VS7;9u+9xPz=YH#vIim5Q$(
zD8HTKad(ezNPVKCyW+xSWom^&61E$Rf35sC<AuA$43_k?_nfAypRMY=9bNVR#I)m!
zm|U8S&wSL|Vmm+8-}CR`t@{>+T`rPRWsp?3xOU2o+Pb*8$8_etIJ|Y5k51!H@gfzO
z*A`d4PkG9c-H@1au9W-Hm(MdcG4Ar7SZ7%Jsd#5&#H^oh%@S@btgp4S6;bW8F*~cP
zHshbrOr5t653r=varwH;pFZzEck2yXjsHA0Q*0kcEKA^cz2a}2gnrQNfU@%EjmxYx
z>i)VV*fAv62YaP_&3zWp6{%KqVQ$_A?_<tg9xb=}-PCVnZ0G;BjXUnM_PYCC6*Fg^
zT+x|T$Z$(9d*<i#L!ZN4A2ZiG6$w7%?p&AP!meGd<}ZCqG1h5LT4Th)0uzZZ)@^gc
z<jW@fdcI<A^4+6s^%~*r^Va8YOU!S*{q9;z;GElT8{Ha~-+CFz_g#2S??V6T-#H(X
z4pyJ6<(rv$#mq`p{mDj$mX$hruQ(W1uj{-!v#I@TRKVuXuN&sQ`B=X@`RG=w<@E<^
z=R1qZ^+|82N;6jo{<w5|aCyZEW4Yu2sl`gitvWtEzO%h2<J~KlzifNvq;j8TJlU!8
z<*RJC#iSi))G7jB#TrWNjhKIteS_139oAVIiR+y0-5xK>d%Ezy!*Sm4%B`1FZ_Ya}
z9q(YkTeDc6@07=Ze+@m;``+qYxb&hZY_?Kn{T=<O@&77*ZtO90Yt`yHChoH(vSL;B
zM8jNlwv`Pg$<qSmmrDFO+Eck+UpV~LkK^-r58gTPY0ax0_deb1dbdU_q-dk>)f*i=
z`x9rr`x?(T@0w4*)T?aeNvc+ojxU2|aV3}k(aTB+ShisE;^M2f-_1(lw%phjFhlz3
zh1a)l{;aUB*I=2^IAPMcWoDnf-=7JXapTUSS-&z5PB^q)D7a{E@aC-Dv*HC#FL?4z
zq~@W>ea!$HsfpZnvh1~WMK@+~zYW#?bm@528`qEj53JZBxl48Wg=yb}mob<;x|Cts
zB*w5tPV`#ox!`_@D#O=Pe(N)7y;qJovoP<A=wG*n5Rab%8-mj7v;Crsqt|2zuyxBN
zFL^Bf^Stdnlc_4lx-z%@c=4t)vhK8dS@CBX8O13cg4aJYX#TCOWd3u+_LC5AuFLC}
z^^dt57x9}FY<IUf<}^Y3b!U!&Wt*7Vk}koztn2P<|MOapz1wFa+)(LwNm)NCx_Fn5
zVBZ^=&^?=u*hrLeuRMQGuwHlD#RDbcX6JKaPRJa5ckXeM>a$~2ab5>jdIxt3JXpqg
ze);ncEK0JjS9WP=-Y>UKdp0SxNq1dB%2n+%>3UjyKkTgokIl1)o>}pkM@U6<jhII6
zSBE%Thppcn@6Yy{XZNJ;lCEcJ#6Q-XZ&NH14z#<azCX}YKOs;_XmZx952ju9hyVCi
zJuZ*UnaUaAF5j;gyyZ=o|INz@f7nhxklebW{Q$4{9mB<+*J}w}Y+(x6S<*8_b?$Df
zXWp?h3jay>r#5}H+Ro&&V$(^n-u708cekxpr^(oOw?`jey)nCG=gSv1s?)@moMV`0
z6E8KBp(LT0<+H@=GVki;dFgZZdzWwD&{E&_GwbZZL&2?8iCY4Vxw+ydzdQPKcCqJ!
zgnogkzs{B!@vk_3bxuI!mAEc-zM}@2ht6*(=Wm)V_w3}?&C4Qey-!G9Xn1sfM)Q@g
z-&amf<=Yx}fX&tZh0+OW+msI+P5!eF2u)SIHG7BOlFd7HHt=TcxG>+@GGWKU0}_6@
zz8!o=o9ZX}DrX;1Z`ai<U$#^9)cpTTzS<pRIOX<)$?<p26i3$WFMC$@J#KLC_g^pd
z;k@ylbNTsaOs5=JJ9Y7)$eisKC-ZvSmi^(8x*cV9;;7mevAXJHqo3>KrZ28GK7GcQ
zaYLB0-%r!PFpiRlUw=#tLcS-?dYY8qy-_ZmZEbxRXKwfRdKtBjBOCkg-sH|dlfA^p
z^7qMe2X^gG?YiP!^O60NpV4pMzw5ZS?K8E|3fX1$xFPAsThlks{q9A07FVtJHWkf$
zbNW&3WmS$Z3Fd+(!qPXn*R2<vx8m}3JyykQO(u)3D(vK0$Qj_~YbWXZH?ysEd*3Yg
zTPk;JLuWrS+xkF~VU22iitE>T-|`9sZtqFl^0k)PC;NRl%TC6<g}YDsMsz<G=5m<h
zF8VIJC&4uIL|%#K&2DDb&h1mGKNd#HO62^Fo-8_HM$Q-INsl-eEPBIypJ~PoGc!ML
z*UgRYOs6|JePd%-nm=3g@irIj3$VCXv(Dt*wA%XU)dw#$ed<`_-?iT6WBr`lGZi21
zf88&B`r#ojyGx5|Sb{F?xMQbv>5tT-wm$O-FHU=Sc<<lI<<v9t;uDj{Tbtz#kN$AU
z37wF%EHcOXp0~98kxRS+S{vV_=4&cVZk@8DTuIXSy<UfJ_Spc%hb^)d8!j?$xw_%z
zf%|FirQdCqv`(>-IBmU<_1y0EU2%eO_4V^zN@6{CTMB!xzb<F`ri!<sYR-ih9y*N&
z<PCZ+sEa%P+`QDvSo@=9d+g~8_3!%Cquq9iOrOkLxq0~$k+s3$DkU;27oT0gry%q`
z@?A~F1$*hh(Di9YHZN0VZr>2Nb<6A*TAK6LAJn~b?A1(fU&r#5Zl`umGu}8WP4|=k
z@uZ^q820d0k2ZdYP&An<Kk4IU7td4ag-aK&p4_=?`Ne)wZoWm)-4k9|m%U&Os9bS@
z=~%%ZsqZJXvTxjcBfIqG);T=ePAEw;xJam-Ex2~js%CpmaeLQRQBBuyrmu$<PWpV_
zNv_s5vY7KAlNrN;eY4$yx!azLpX}2*Tx-hUvxMoyUZ47IE!DDk&4j#JmlL?NY909B
zEPu~-cGr%|&DH%YpLcF>J(+V$|G>(PKU3vHzX)~RKOiCXc2Y!WYyQV+WrBNFoVmHk
z_s7mfOFr90T)gd9H>pR-NQ9Mpb=~jOcWFCLoGIS_Z9-s>{!|&`g@#u{PR(t8*xTdK
zcK#HP&-58vJgr3Kzt_viWIl;MEfBUxw$j}!bxr4kH<g<rU+T;@=l6bI^X~MDu7GSs
z#p?M^3-{l8o2J9FdGEaoYd9`3ulQuI#bBl0IH!JVr|L0zvln$Qo31r2`{-qNv0?qp
zNM`Ln7beYmS+;ihD>LDa-jJpD{ED)4%hv7}S9q7SKh>b9U!zLJzCJ3Zo>4(X*W<~K
zNw4Zp>z__CFGzk7qOt9A1m~tJlRoT!wt;EQiOxe4mU$%z?KDhSw`;y|@Z@ze&u(5m
z^l^$yjs4BH;g?RnZM?ZzV(r>fW**)D-(_Xl>z#dEd+By9=fZ_Krui1zBX9T0nmxbF
zrN=Z=T-05b>D;G|qOHEQ&!2vFJn6Bw-l|AzryZ|O!YM(sAhlls78g|NSI)cWXR`Nl
z(7NZ`r;R-pq`kdcW2Pj{5?~@Jr@3!#NJqcEbV5hcw&0)#@>^#8a{H?v^Pg?cL*}}x
z51rNAC!JlU&2!$rVaJOYk+}yl&D`szCO=uE+p1iiJGW&Hm#F>ebvkahZj?>@b!XEm
zf%o-1%884^L-)POZ%t|S@;SCxV&?&tDDPDc!czCL^WR_nr%}q)^=%2ayyK~|L&-8X
z=DC<H-ZppTzFe8K`w9CBLMmB0%+}`F{nV*`JSkhRin;A?L3)vz`L+Nr9<K>!Q+<^m
z8UDX%?<!Pfd%yRgLiI)N)StK4b<O`DEc&(P>E3%6xB|J{?kY!qJ)1rme4h=oxw*yk
zz%YIh(1kU;+q2pPeG{0?Eew#vZa)+J5XWq8VFVZB+5XN|XtDvbxrGUm*pf1#5O+rN
z>5hL`g{RMr5E0xiyH9BI5@vG?unnTq1@;MXZ~vSmTr!v0+!Aa9L~Lu9$p3I=b4#!V
zU?JY^>mo!lmN1!HOcYQPFf=eR<kI&^%}X!IP%yJJnO?Y(U9<jeY;^JM9h2(5ufOm(
z&-dt&zd@z1LVnJ=(K-2sU(WI1&kJsNEt32x<UP;x+4cN*2QC%YqgzZjS7$wU%;jKV
z{Bphbom=yirJw5**e?CF==h-C(HO?YU9@29p(ZJpryCZq2T5hI@Gkipv5EQR+#^CJ
zos;rDFfZ+iXbzIl5PzA~Qh(3no?v3b0-b434rq9*nr=AuXhk4@4$qZyJaayVY+|0l
z+b4Zj!K1Udvrb^oHUl>v16zfFCbdHuGnR@QEaTu)S1-7B$xA0H#UW6)L}%{8Z3VM=
z_^Q4NMQLXAxb9fe(;d<Bo~t6RS?SI)rv*_8QBpapADHC|D6fBDCR^as|F~YFF}8|z
zyW~<4v4>{K8EH~_k}dLG1<jlc;vx?xi7Fn-=$L-hgq`<D)RPO+JI=aw<`(|r+m|3%
zc;ya*W3dT~*J<u{X8|Uu_U~fLpL4Lc+-HBEU@|3r!ik3Ca?GCdQ>5nzMqE)z)H;-V
zQRw)EokEkWnrCVyikv&+tzp%lT*X^|v_qgGpPgYnzk$?-wM!IB96pQiwHr6yo}zTm
z;r5hGg6#~d!CC_1E25*KR<+(XS-FVaH>g4X8w1ypp3W8CVZ2kO8m)_*)8yKF$)bT*
z!GOQn;k(#Y!F5&-4>OdyTFx-PBB_y?%XZCK{~QC4phDQWLp&zu4lV3j;MJJ*V#hL_
z`g_u{JUS|Oc(Rr*SlB#?Y3)a**INvkLu6QunnF`QtYY5kAgSHIK(f13P%VQoNR;Io
zW3m>5PWG(?Pvsp7exf>C4+}Zvs@`inBiX&Qqx8aVriG4k1p=BX9c9m`N(n4kIH}bt
zb>ow%5x*tBn6Eh=f31$~;=031QwnVlEE0Kbb+KMR=ZbOb?(3>iJ*D;=qLOCwy;_(m
z!Epcesx=G$H5WPTRJ+CS*W;nA$y06{hTyy-%+H_hSvpaQEn(KJl<=*luUB2W9h_lj
zzRX0-N&V2Sw*3pPo>=ky0RId5Loa1Eyl{NK$4TQy)b1SSdzouv%R7tWeMGljX<FBm
zFkAl3eF>TVef6n(AAi>nnd0F8waVwJ*5Vs2?K7u;3R@!I8T9?<)|{$twQFAk*G3ks
zU!(6MY{MaYD0<V=3EUr|8CZ2Ha|C^wBCI=`&i!y%EuN~%v~F>A@cUa2Wmzg--8Y&O
zv?8nGhec=XdCA;qMjR_PtMsm!<Jq5;Z4~<1Zj#0Z-i#@e8JDxwi>Ud9a0x7TEbp-J
z@YYhv;%;0i;<xtpr+&xB&kB?tRDRqoyrPV4qha8}oTUn^hd3=)CJ1$?$Ak)o?>=g`
z^$UaZl?>%MirNgxkr4`QOWgnd?)d8-W0a7ykoTO>u}M4r*`8&a^KaLY*5(<9<J(Rg
zxFMMK>Sdk#<{pl@u5r3EI_rxTS~%J?c0RwBad|=g5AEwa`6`p8(<1o`<iyrDu`Zh@
z8#^^6faxXgjH-62rzdh4E-dnlI#jph+<Ecmds4PK>{V^$HgMJ#yw9+TajVsV9)*U+
z%3lo@EJmJeDvfN+s!~2KDIU8Qi)YMZId#m~pRL4t(zEES<7&neCUV_qn%G;f!s)^i
z@HCVyJoYS?!Q9138Lg46tGaG6Nv&AvuF8=a#lo20B`9}VutqtqIrZq<1jh!y1#yRC
zSYIt$SencFiAPZ+bKQ}u_BiFWrT&{zxD|9WJ5|m)+&p|@LA1$H2KjAAeU3VPoc7GW
zB<6hdq6Mq;U;1mMOn)V=)ub&wji-UTUS!(F1z%-7L}j?{NTnRkjIrQ*tkGejaPFYB
z%<j55nG3SxCd^<tH2u^PtFVWU8duB;kr&tKmsIM?u(Q($IPi2`#zsm1f0Iwe@GENE
zvTLuEdVMm%BW8uy^47R%ieDTO1Nmdti|Dy_ObhtY=ftt<<F&Kz&)zb=x*_J`9|2a^
ziBIc8d%K>mIbfN=7aj2MO@rneEe`Pj{?2m87cFMfPF1{JIKRX^@SXnhuw9jV70Nk}
ziHMuN3(t6&HAnZ@^n(wC9)t<3o4lFx%4DUJk2o&wUd8+U)c55^x-upe^V}blxv09$
zt!yo}xHBhFuP~R7$7S!9U$QroLM+&wt-c5>eI=RFQhz(s@mehFHf0t^h3HnMM`k;A
z9@_nJeY5Sf!Yh5hpNY9NZw%e<;@C3nt$TNu<MpZaFYHT}PDv8zYVC;XN^!cfWmdt>
zR}F?j(|^7S&UiIhqkmFxw#d)iuD3EXy`P_0lVQZ&^v7mhc)Eev<7tkZw`K>59G}P}
zDWh)N{=b6RJZW|Plbg~7lH30DHSugPypihCeYQC{OZDyj5Kq>sf}T^t_94e^$ryXL
zNtI7*T;v@-P4v^k+*XyVTKyN7iKQgz-V$HeskF%XiS_1hKBY@$98kFKHfxofQ<lNp
z7yCA}$TNRrJtdhu&*FvmLDh@x>63%A4duSeowj?BWAomC=WY4Pd-atMPee-JicUQ3
z5V#^tq%~?v*aQ)6>64cpoi#G!>ifpP)_f&o+YMGO`$-So*DGXdw;cB7_?anI<fr;E
z;maI(tzz5HjdvpZL|d1ZIyM(X2J&QRUgKM~D!eg8A@lSj!$nVKtqA<|^4=QTU}X&}
zV~GtCtuK~NbDQ8Tnku<;YVLvh<`1Gr|1$RVFbYjqOgrl(x1>qhtS82BPr|9|d&8IH
z7x*e$MLg2>UwDJNZpZgIkM!8~%vJW&tqfET`XH*2=eqW)$e*2+-k;{4O1@c;r&jQe
zB~-y8CjHK_$?4@$(^Z?Z`44k{dT1B&*iFjtY~#uW47wFu`#SiwivP-J@?1)Zsy})x
zV9kW7rkaZP&wuUe=`Pwb|M(Q?+T(k@OVh8-T6wKeXRX3(fmN%IB|UhNasR+mmrDMS
zh38f0?OYP;-W!~&6?J%yM)J8EMx|b1K^_)|XBkQ!Q$6=Iy|28rs?GMi_VRf~?Iw9`
zs>*XUt_ze-Q8|$<^t?qUA~=d)ge`r>vk3M2n&K(NUYpMpp1<fHk$z>;ZV&AVCU>HF
z{%6l9zmQO>+8x7XnVNEIO6v6NI`Q6fAyzSy-M!7Gl|4+b@Rj|?_v)b4?p+!aCKW&I
zEmla+)9PAh5TLYJC)vw>>Kw0&c5eh*7CYQlIi=gA`Z00YtULPCew+%{_{uK-&UX2<
zL&ZJ(0rht;MpXM+J2p0beDcWB^O49=&O4W?iyln5IB7-74t=NVYa88XUh2wtp!`*J
zbJ2q(!JmrmO?&LMQ1hF|<OL_%|MXn5s7Y!$6=UDdH92dC`bN#~4XWOi%4<(@8Hxm~
z&N=eOa&1it%YODV%dBT_J=Cwp-)G0Yy?EcALmMPE$%dq5)d#G0&@8C^$rwC``&ike
zFEh<|_Z6+!a&YNt|Alw>gXL70@6f(H#r)`viEC6{C(MvP{DkqXG;?a(8tvPG`#dd!
z>b*5t^EGY@ubLx#RN8Cl9jU2X7T9Xs4x2BeZ`Lbixo~EhgO)h+PsPxM2U6Fa|7g@#
zsCIsl=GOUBMUU>e!+c%4{*sjI#_oe5T(5<4_g<bGnY}FP@w?D!FNY6{o=$5sIx%I&
zgQ7(hN=-k{H2nB6Vakjzf#Ewf#ZUc-UBV-srT0`rx3XmEiK<Pvw5^yECfFXYnRYo@
zWcucpi#Eh(MY$FoX!h1TxqZn@0agFDPLaL?p<2bYOO~$EJf9)^Q}1Nq=9NbE2P4>g
zOH*yu2kqtBGkamp>hzU~z9yf|Dyx^d1-v^S^saA<{njOW#SJEVxfG_m-P67_%|)eo
z_Hl8GP11jaHUB|Sx=Yu(wXy%#D;<^c<yKg(7<NoaoI9|@*xthH)6J<*r}(L?N`AtA
z|67CKPnDF!T+6t}K1*-*oR68QSD&+LkFW0L$#WgrgMB_eP_++!E_PG0vX1Y3`(cw=
z{aXxzb$nKuTSYu6j<V@>HSf?fykIy@_0<k}_E)k7D<*kyeEKpap?d|N-lXW|dy)+#
zCR*@KKPjIqB6dQ&=`XL1Ncz{Ge{P5PlwIQ4RI=>WBGq3%Bjf(MOn$$;#>X|$>as_D
zI=hc<q+{;M^8uDwecM;Q5oky_`N(_fxfJhHxlQIN?JMN{KeA2*m#)F*+)rw{aVR7S
zYo>*#tj+9qbbs5}|H$Uy3eDxmb(_79f1P&az*3G&7q6)nrS;!RsGIh;P3Lr%U!>?y
z;b}{auWVja9Af3BxqOjEfQ!b~K2_&kYfjfYZng^g;Cy`D#Gr{GZrukt?cxtPeU&-1
z+C#};p5LDrD%z($om*oXToZLlAi-@yw7>F%+~U;Em7IS>dWt5U*}JUR#q0c~!Y{!Z
z-w$7Tt;Twkt>WZT^%a?0gOw(RFMT>!W4COc=k7e$<%P#SY}~)VVg9-2D)YBaGEtIG
zb>&(tqFc}Ib^DUpg}_%g1#j6{*)2_3J#&g@z188Rz6(8;uT;Eh%+INLD^IE_=a2{2
z)=is~WIc8S>|JzZjgjKqv%5kb_s+aOdu#ftpAqLduj$^hxfFWVy<TZ&VRVq7mgX~|
zr$4=4Yuyu0eRBJUaOxk)=Pu3q8`Zih+aeBIx!WvP{WX)vsNVC#pQ5gX3$>TdTYP4R
z@l&ZqKR8-eUR4pXP}EaSO}--Ydd{y;4sKTk&ucD>pX{jC*;4JMyYyAz<kz0Be=1It
z`X*~~;WMMo<QOT-)R<dSQfI7h(~~+`xzX+VlZ(@OA8uCtRAc(XTElKrj4;ckQ+NI(
zC;e0QIisKb|JU`XkMDlJt<MN}b1&xnHuuZjyFb2t^DM7--+sBchf_aaU;du2{+87Z
z%gIc7K5g@tGauG9Gtb}0TUWR2%!8R-e2*M!Cdnv$kH6N{`|{|EDmLxZwKt^h?UU%W
zub;{LfSa#Ld|u;@Yh8P978vcjvE!eO<in$nZ@zfNA`zi|?vm_=Zws3B5AS|_u|DTR
z{L$mPA0Ey4()-`fZGM`3`sYtqe-!;oEsMUx_ulRLm5e_#_uomJ|0B1mzSMM1Z)5Al
z?KkU<jdv%{X!-J`=fcHX`~UwnD7m-S-u5<I3E#I}7cO#LSh!q**Y>al`*GLFiyt?g
z`!KP>@c8qYCaO+xrAk|(--xFlbuBDpmJyr2xc+2LM2(i+{oc0C7h^vzl@Q-AwqJDe
z#gZtW84Dk++M$={UjBIY>7=L{?S10)W&(k=0ypjLZ(H3~bh+c?u*9cALpi*~eZ$-e
z9^vChQa-LdIP>M<o8Laqy)67pM<<fwgwz|)aMf2APTtzhR(x5kdL4hYx_)`wyZtKP
zlGv*^UP-B`zm#kGX6C!CcC)5(+3cFzr*3{-$mFN@(rwp|-km->$!w4QzYIgUUk3kP
zefaU`fsBOxtEfY6Q+m38h#b=vex9U$`}UEKvsYhyt{A!bzMJuu#MGHS5^M4r7BBeS
zeewG5hf98#{HqPA*|l>&^Hhh@9XsXD@+PGHEm->aP1o&{f4BUos<)rDNK$9n;?;)b
zR<eKXn5_PVo!NJ%*X`(={@IVtU%cxpn|SlImz-?g{u>qD9J~3>YB5d=T+fn_bB)nJ
z(e;jg!s_WOt#4Is-o3ds=O^E`nv>Ilv=dL4zdp;9Ru#FuxqP?$xp)O**<-%Dv%Yp;
zHF#__Gx2MFmf1@au6K=Aw@&}5m)&by_4O0W&-WYZc5SM=wYIJPGqduAoqw#wzt>3W
zvo4!nX;W9a@B2TF2FrgJBpH}YME*aNZn}5d(xl<?V;N?)zF57#@7_J*e>BJI%un}*
zbSp`}{b!sV^p>9fKKUd^&eN2V)?@i4rPjagTDwFfHZJR3Z{NHA_~!Q_a)no~{*bEw
z^7d7ok@S7PeUrZxUVVF)H{#OEzwU2Rt@cUzx0OGQ-}m*O6i>En#nsbU`)=I1U0LXH
zpnQfehq)5VRH6I2Uk<KiD7!5iDRiH=u4?9Kad|&KGxN^*dcw?k3XiHM8YRp!U+2`n
ztJf!}jm>*+&$Hcgo3H0@?_8>C7`&yzEAfTv^7_yXOQyf?pSA0L*lV`ad*3`c&HwxO
z?B(`*Z&mLtzLm*;V!rmR&jvF$>&`uYbDPp_k+QcO&S^X@XGJvPd3tr*{LCv}r9Lt{
z=Vv!Z_HT*lo_{5_(PxC7J(}+r(f^)rrGtL!xynt)p4qIF3Vva-t87<nO{~Mo`c<2k
zR7>_Bep|jgy8e8<mBl@q7n6i^wxs{iT6L&Adhw~0l$gT{kIJ83k+xy(xt*3-2A57}
z)mYrMx_{&E%Zl=BZ<mWlxfZSY_%_$(_lY-c2UmW7a^zZ!zptM3(X@@Rdo<!i*^kbC
zlv~IXy`g`@?R`3KN7HZ2uK8K_n^kGDA=`taZ<FMC^A^nz{eJZQ(faRfdV77&|GRnY
z-8Hj^P0#bXx8KrCGQ9X`V!*Nuht`XUu{>Q+;k!VFQRlsvh5}P&!OhdR_Sn_z-@1SP
zj-E2b>8W)`y{c}gJ~vtu^&|SgOTUfLHvV28tX3Y}{YWLa)xR|L$JQAi=JhadKUXW6
zmY}h3?&=fUr%n1|lyiQ2**V1(_VxE{?+Gu={^%jjcHSf^Tm5B%;pf1hs{$_Tx14cb
z*=is)`S6MC=Q}Fm=ZK{<NI4zjPK(mHae8)K+WV{5K0bUWW-PN?GVFxGzZuPk)!!8_
zU-KsZkin~C5?30`pBZzVdGEOE?SngCHub&#ZqB!jzw^GI_6MJ+;7{BSeMO9(e_t>D
zq5inaBhRfY0lS||iwONvQmMLmcysw}c6~n~A=zn*+FA}w*Ed$#5@9JMZCbrC{7t%9
z^V%oX8>EY;RJ?8zOEKBAWB$SU=gXb%{5_<$BQL1#b#~Ccd-u<{6|+w%yRap3)#*p&
zla76Vblz3yW$Nzxd#tSP)*cmVoUzhb=~lDL2l3dRdX~;BNp+dktS4SMn#rhs>e`@w
z#?sf${g3g}6Y3`$)t&D+ES%11SF^Lc;+I@t#by_M=2xo!UU@T!yi$uenp(9|zOAX(
zk}G;a|57!%bgPcnUxIU&>RnsCvp;HEU9SG=zeV}KKYW={7&Ld9&Vp?Z^k1^9WKjQ|
zFh_2Mu9?Z>S+ey9vh-W4-95A2MBRE0z4u+7`a8F0`@MJj{vKE(efemW%H^jGUmf%x
zrLO6AoA6rh=&qU_g3muJdAd4Rzx!{}|1Vc(^QQccu((*cZAD?~lKHBuST}A6U+;a#
zUgK@p_UmTpQYQNj2JBDx`gHc+>Fs9%(zh&K;(Kx0SBc!0$K9eIIr7zWeAlkN8g%~d
znLA%>5A5Bb{`1s6<;vbu;U)&JQ{~LJe=jqOH%^<&I9q6A(d~ztjJFRPIxp|ltDboH
z+1Cvg=WkRdU3Qx5pU+U;G+*dWZ>+Pt`v0l6HnF)se|@`oPU(DoeXZrL*>QL7^iE@A
zTsJ+^{+@+hWu@Dvw|oIpCwT7raiRXFFw>RxQ{~wUTll4o<l+*$$}4JThMiS9x$woY
zo06{W9P5uO9Be;f$bIfZ#p8nuXTE+~7$<9c-@1POl1rjfQi2%0MUyIWHr(;ovX<#M
zoBV9Ltdi65FAFW)9b^04%NM__h~i1_kDO`q=;+Z8ePJ2NbFVplEO}N{+xfa(`0wKU
zdhy8*uQJunn4)D^|0k(4>w^J5@AK#G+x_FddtY5O-Tl6G_5ZZ=_N%L`+q(CKXm_tq
zv9oG>y*TW={N%Nfvko|4iRwSKBktp&Zx?6Z6=&xOFTZnKQU3_H)gd;`C))yFRozMd
zeRyf<?eA9?v)&P2xGrf!x8Huj&pYclSBgu!zxSU}|MZ=$;@h?l%QZe;mz=*ry(Z(`
zr^+PBwWm~FzpMOP=K9R_@(tc!aqm9-Y+pOq_e{Fnd|ggK-nVRT8LmypI<luIb4RlL
zq54|=9f6!RGuE~jZsXV&_VYyBi(38ppVOW{IL!FA=-f0HCaJ~Az4jTaS^t%|=E*#n
z-0NIh-M(%~%J!7{X_C1uTlP&CwXwNzr{=$z;jNc39}^7zo?Bges_%cI(Y>6MMZ0WY
zJ<@d&{j|pDTBOwGZ~Tol`;Xr}Ad>sh>&>@NuhmoX56IuHb=v1>qjCF!?$Vt-r`EdP
zk97+!xGVHpu)~by!fDYtbKbvym$R9{YVZ6@3(r(Ze4etVy~5$#ViAY>;&_92xz7s{
z`(B?4bC$ed%k=ZYY0lg?ayhw|6;I9-`XO>D>4~q`nMZ;?9jmPUFFM58YWRH4ee#_l
zJEWk<NpxNO4O!v3a@hkWGQls(+dft07k{4c&_GeA_3-EZns$L{8jEUJWWE(nQ|M3l
zyya|eS=$Z;ci~^MYxmgPzwZ$Iv;N)PO?$-DUVV6ex^&BrU5Vdn=B%mCo5{RnO4YBx
zoZ{Ix?x-9RE9`og`s?;2*`&)Aarb;aEL<1(*YftQuJ?CtTx9-s_0#@+`+r&Nn%!sr
z-(vdV^Uwa>wVZq5z2JhqfBBC;U&DXb(puB2_CWk8lV|n8@>ZAFmipPK&AfhP;_=Mm
zhehib*G($_S@`L?hI_PWmF3s%`F;Lo=RHiPE&Y9A<>Swbq?BGSIDCJxl>RE0A9oxU
z@MwR$@{K{%tkfb&-@kg-*FOpQ#s@FXO?STD^#3hmeVgHv>UsZ-wU?f1;ae{L_+yUE
zP8n0*SAQ5|A_V-s`}DW$`D}8#N%h;$I-8k2>+*Jd-d}%ACcJa|{?flkSvQ_J_x0%6
zr$2rfYaIS@dAXp^k0cY>KRU^>?TwQ(gDnI0*`&`%=qp-K+L?aTug&Yw{wMW%e|s*r
zc7$p<Mr^d0tZ~Zx3<rD4<oPX(3KBv>8lBS~C_RYyqq14(yinvM4Q;oT%%KdtzkW!V
zu3wq{w(wI>Ap6B<^-i<39jrxuZx!pQ&23A5(7IVQNN<MFk)lrCCBa|cnEX3DeTw4o
z`ZGr7YxomZM?GC}xpZ-G*w5+P_A&(*{x5Wk-zfCv)UyJsL)ve{?XsWs{y)mUDrKYf
zzS-w4Y+3NM($pulCgOWZjpc8nqyJkMi_bp2^sxE8l{viYXCHpN`Qp_d^+IQpOdHpE
zl;32LT5quJ*!Hs@KR&UPwr5}P+N9*>k6v-!=*PdG{Ww_CcYmvBlv&+l-vifvY;4{C
zO6LB_e~-=MPGtA#N54}4{4llmuRBkCee_z>D(~MPD*t3vtS){gzp&=(^ixrbx0jr6
z$tn3`6u#HJC$64*jcJwl=ahY)=ALn@|Nc>M&-Hr;vwG#GpR|2;;I=!@y_)kYE%!ua
zeSMWB9{c~J^!ndh+OD5&TR(G-`-_^#cjsJtpu2VR&llUaJ#qQ}Q2PDFEp7QP=dMcB
z&+2|B_;`D~QHG!6cJa7eF0Jdev!6vD%lspM@z?K#*OdRQjojLB(B;w{(b+XYRjQM-
z>?huzRUh((F*JfV<SqN%*_(~lKJ9)#zpO%6Kip{bx63cqM!sD7ZO=pRw_a&i>(cg^
zYTr%{ds*;i<>oB={dZ@D-sXC;Iml`|Q=zF)j{V^~vqGb9`+i?@2&8z~4ohwA`VDN^
zRa<98Zk_)i_w1^rZ_kyT*IJhn_O?Acdh@1Qo#v>sYoa2~@7tDk)$FZd|Cc1bt64o6
zzkgo6w&c+z)d=&qFKxbotWvx+XKJ?Q?p66Ga{8`jrCqICx6xGlZ*%0++add<p5Lik
zx88L1v`wpRy26&Ft(#^!=Rf124IGisX+cYqi2~|;76x3fi8mu7v+088*fs0dM%>Pm
zF&C<xzy87QjRLD9_Aoj!cuy0)J@IM8J`cWcj?&q}jFHw8o+NyK|9!(rIkReuwI0U&
zOqRM~S62pKwMp6h*-QKJVx`rhkI!eURhcAoX0gQ653`d4>VDX-?zqnuw&Ze>c9+H4
z0>6nHt5j1aX|K)M(skznOZK4zQIVr5qV)+5FFkv@W-8Cykd*xKbktFyJw_Xnq??3%
zKgd1u$_aR*Y%@7nhT)=;)$tRj0uRYDUW-iC==#L8oQK2ir_sfg4M*J;g)_bu&|1-<
z)6-q(I;)oHsK+VefXoYyCP&<&TJE$+R2sUf=9r}UO_5-hI?}A|X<5}Gob5B~;33J`
zX>s+P=5?)-e_HqGskOzXxhe%EMMUa)2&6<fS)CD^+~6bGxry2S$yC#xDUKVbx>yxN
zeat&5)ven#*(*_2kwYND-+`ejr$MvPTRLcA^O8q5MC7iTvbg94c9_}~N={((dU~Tt
z>d8wUg$aj~5(82;N^~YP9SxhnR$#5($*uFP!K=RMC}Y6Mgu+)6MiDZC?GkI3_(ll+
zdwa6wiv20|2MSV?x3oo6CI?$?hzPQh>egMp?(m~4Vkgd9yK}v)jL^3E<WbC;VAtgG
zgzcEESYp>X$F#-|GM%j=Je90p#5n>EMhJA3I(26Cyl{IWvc^<<iHOVsrNs{d5>!M4
zB+j-@SYcm(iBr&Eql$|S`;-;2kGx%-vK6MDIN90NcIVaZ_hIbs|9yWx)vDs(*VA`j
zJ$Q3_|GT#NFBRAF@#*KUzf^zaVE5<m%a0%TKR0jw+@<C@rV=*0cm4hP?AQ6->&;hY
zyu4c5T_1D*&OO<`b(PE$RyWVrJI$XICtI`UU(NU5x)&C_Y(ILuKECenub;n8=fAxB
z<l)8d_w5<3Zr;B9e7()d6)wA0Jd&BZnODo!vGw0Q_EqwAHNU?7ZSOf%{9=KV>a&=g
znp!32T2}9n4-t1i-mWjas#tcH=$B`VF_nA8LzW*`7grZ&*4pC}8&cM%RnXj}w&G2l
z){oC8A3pqT&KkPKHbnaFJg&X<Yj0QTudrLNv9E}A`<`YyJC>>U`B(Yt&zHA9z2evV
zgazzxcoOaJ{`>Ot<i*X48AY@8K^pZ6v$r4rTk`w&b$vem`g1E(zLd2kysu<mez$M(
zQM-V-`+t4;l=*6P`TK2ecoG-i_U%69SI)LuJY;>`o;?=7rvx6gTh*IqzDacI?fUc9
zKc0PgbNJ!UhOE<dqUO8zKIGbDeRKV{!&i?lmiLR35evEdS1Yf?dh1;~*VfCY<FqP1
zetPra@#Oh&d+h#s*siK5-u+29;GB=)P4^t8=kj{z?%Vx5|8#o&@>c1OXWdq=U^Mu%
zs`jnCqRRPu3(frf&hh#0;*r>_k+<-s<k_@8=JnI}$KGAX*SD|E*<{Lxvro^8rX7A*
zU-0MEug`0LwVqwjz2ndk8>`93_wa-ZX+7TXZhk*kl1sY!q~?eJLXUmA?J4(H&+*f|
zcIkjJy%;y)PZ}}DWSct9mUt}mtSOZ8nlQuIOZ>Du`$kpfnAM+7*!8QiZ*KL|E^Aj<
z%C_ywfoVNC^>*TqgTm%LS3Y&0@6j^HIp<6ZeNxYyyF9g6V(Fi4Y3&M?%*T7z_56(J
z@s8$u*Q=LYQzH-`bv=EFgtx%-?2x__t7NvwNven(iPS7mJmbe)ELnVEgSXnk0y!_X
zg%`wX&Z)F~vfd%v^dwnu-K=drmJvE@rPogRm^kxC=7fkSvuX9ydY7gq+f8}E=V#*g
z=kehQX_|RwUg(P}#D4dknId`Q$Va_}cV6sx;$+p+clgKph)dq_PIB^Hr(QdT?Bbq$
z@#74+lRu8^igns)=u{cq@#n{pe*aT^U6;4M5$HO;W=D?Y6uW?@o;U3bH6uSVn_sxl
zre&?ZG{37-sAT38@fkf+*3`SayZbPuT0^o@IR4V+Z8n8P`NA{QI&YlVuWO|5YEyb~
z`y;#BLua%Utz8OTFI);gpIEOQ9kA1uXTHs6y~MH(p}RkB_1CVs9_yAoeXY0a_dJ`I
z5!+O+e2CmC((>-Bb7F3|OU2&!b<!2FpJy(=oL^oaQ}21Mt$Bgg_gy7?GW+J%^X)I1
zvtiqweZL=jZPd)3pA^-%IoWFQ!`ZV}?{D+pdHHej#%tNx-@30ojrjQM)&BCs-yizM
zzgeZf`HA=ImFxBNo^93d>RrFJ^qcFxWZ#8Rw_UR@D=eJ1{*?a3N&2$O_x;+Tb^Dh7
zudEx(<ZkcUw07rv?daEX`)9djOPMdMT+5|?x&FPN=#2|Al@pg5|4+QFV3K!Bvtx^+
z(`0?mjKwc9r+n-SS#-jtYh_@G^wE<h9y_mYyY|?eC89sRetX2}7O}27pHo-s$9*x?
zy&x8|)xl2Z=cjcaRb}J%T|0Psk$zsy%X#ZhZHrI2-MVsp)26RawZ7+Ze?PkG__ozK
zyCrWYTc@f#t-tJ=xz2RMrkzEXW9sCVOgnh)l))}t$12WSUVEnQEA_kZb;Y)+S*w3@
zie+aC$?R`@&eHwb&~YB?#3<%M@AnxQPJOeFNKBeNVUx@zF~79d$IA*XCA((1`b2Cp
zJKL?eSN!mmUlNgDu7<4cK7A!i^6vMkYkk)T@0iwj+o*-DBhTzqz3I9$yH7lFJ2|y{
z-p6&b74Dqw*M2WDZOzJubF23RKb@O$G5m0~xOnJ2&+oOV*{?pX(|%vo`2EJCjBW>C
z!HS(6yTlUJZg0HlU!s3~)h*+Tc{$RI>UT9AM4!#n+g|z2AY|*@&fMMhTWY0d%X)6-
znQ7)A`eefn`NG8u-!dv~6Xoo#|9FjcW@edkx~=XSA=}^=$2MJjKF=n+bY5ri>$Iqu
za<jC~7{}(_F<Es-`01*X#-4d1JJnBw_TT+uW2GCtIJ8%cJ<`fIOm!Zoq5tRCCksL!
z&g9rWEx4(=D&}d$vSYoo-DXy2ta@<n%eGSE)Z1k@)+t$CzHsgA7uAX9EH|%O8JUo=
zb>gLYlfo2Dxkb#iZV6vpwJ@#mk(*z2R@BiczeUnd^Q{h5+Ij!*PU~56&ocSX`$ZSl
zF|HABIr=+bbNZI@#V?mPR`W%LrcTd~zY`-~oj!Y2WVic~X92e^_I+jB_++W&&-K|~
z>eY_y@PsskEX*yZzm*hyr)OqhZe(F-Vq|J)scT@OZeXCU$))d`pW>2OlB%HLVr67t
zh@@mXr?hAfvxR}-L;-0ja|<qgx6GpA5(RS$b9jTw*u>m$x}Y|PW_@&SzKEsJzjNzf
z^iQ8U?Z;nNr-@EV4_G2Es8ws<%_@~z&^S@yu&>&id;9lSoq8*`zl42@(Cx~YGTTtS
z>8Ibx8Fx6cEo6KBvEEkWB!Aiky$1*R!m@039Axcgw`bA*=<wEQbAZf}M~o`HX>%%F
z{8b*wRC&4nXIU{(BJR^<$thv=cMkKN`c!d=_f#~8Fsta^gTWG8O8$tjujPF*MPkd;
z#u5!r9c8z`tP2Ml=Ur+Rlv=D|EFt;xB%hmfUTL%8#fK;PU8ekQJIKNqrp2db#H@QF
zC(*NgTC?xAiwmw9RIg>vmOU+5H0Q{PSu&zF$xk#F9t`<?@Z^Eo!w<GJnwQAT5v`wK
zoK$d*^O9rQ&I55~Sp^qeZC*CAwLLw?6PMlNq&A^>$9m~K;yphPvTwW8(x}G1ZKlP9
zr3qO_9riA0j**#j>_kdJL*thv?HUzT9)VK?=d6`o^zF{8wi#({XZqukQ>5D@M3YUX
zOkh$lnRsy07K<#QX|50D7cuv7Fbgs*PMO$IFSspfmxh$X$-v1WTu~Ptv%(q~rkJ!=
zEU8~IRf6%(lE**4tEld6n*5-0=9*6?J9=caIuxhsd|A@l)E_9-HYG9U{YQz2hAo=9
zXBMmb%gw!)!$1G{!Ap;Re7*Scr^4mKv(MJ;u~m5B%2X%$-;Sqo{`qq|9_!E6e|-1D
zaeKY;_jUW~?Q*`gPj<XmGU3RFesTG--G|@4Gq9VcE)rt3@V`w@yu^o%EG&wKQ#ewR
zR2TbcT$*uee!pLQ?*1J9-dB<D&QFWax*)M2D2e0aHWwX%a3#JDeL?;uGVL>NUND?J
zHEm&Pl+@f*!&!_AxDGHGus&dzvc<MxQYpg&amlkShqxAUoUiw1%eSk)v-fuc=jF;O
zp)Zxy)@l~sb$_ky?YsZ)@8x9ooFzt!j>*p#o~2&GHb3Zq#^w`~Go}>DUN4_-7SI3q
zpZbOw7H0%*YUH*$Y8_8#6A0jSkzKq-aTZ_HP2HnG)rz~02^DLE`U+q6SiR@igWWT)
zOcOi*^XJj`N;wXPehJlA*VpM+ge;c&Q6!RfShuRx?8TN(wqKKX3msDDT6p<umWWB{
zt<$TXzWi5Ivstt;^UB<B(g*Ffu4@*4owelm^2bM)uZh2zH}$K|?>_Bi6Imv*yJots
zEiSjTyB+_w#Um=)P24)o>vkmX;fXmL)~2y+@VM8lyYBLjs++53CfrRvJ16sAeQh$&
z!FRf=4Rz(rXIS1n@Wh0D&(@|L3N}lx#WD-+@Xw1fNLIR55@F7KHbLk0g?;`D-F`33
zc<|l4`qmGPRW-70-`9UXq$+-W-Tr%jek;$Mc`a0cJJ-l}ukdO!U!C81*=>8}`7Mul
zoB5ZE|4#q?eD>)laZgjOTDU&?D&d^8WY@F$*B{fSM}JLveb&xxTj=dgwf~FuNHJHn
zZF#9HF)MO=?6kFeZd}ZnAg%IDb6SetH<j)EnvY^%GMo~rUZd$ZaZ#4SZk6&C&%PE_
z|Gj>d?cB3vMUr;6|62V^x5=?vK6OUYj?JqQZk9)zz4^J^T-ho2TGXv?e=e^#dGzz|
z>_Vg1pG9lyZSU{BcmGXG+idUu`)}AR_0um8mdd!b&W?LqY}m^uPy4P5Z||7;V$IHN
zf2X~zp1P@V)h43@+Zk$EmzA8ZTi~fTYn|EtV2Sv*%MAF_R`xdAOvzejxBrIA{G8Zx
zio(02YHm)r{{4B%t0$KNg!b>Nt*t2Z*D1TW$tdvL!>|7yUH*By{>+{`oASzTc*Xsh
zw%l%tTK&y8@9*_*KUC0lHuUC?`@hd7?%rLi^HE;)@|6oWLnq|^F1dF0?XQgwgsk4%
z7dO|hx!~~h)R7N|zdin2H%H^iQqxAAte6Z3tu7xE-VUkIa<MHfUO)T(-f8=E?S)rk
zTCr1(gWiu?<|4uSUW@v|moWy`pL(5_u3I@}Q+A8#DU;=)raK-kGHzp2Ib?D8x<c6A
z9$t@A&DVG{7*~lNI<t66ta6S*$KhgIi?vpB%CaXEsqif`m0;Y(Rie43<ZaUY3p<`A
z2M2xgR<zx&DYrs4uGnox&G*vJhI1{7tb7>OdQ9d%!}-uPtEROu$nWZFreL)Kk@~k4
ze!5-T*G0{ImKq=YXs%9vop4)F?DJDOhYA=BDwnD8+`RZhZ@s*v4D0m_Hn~HghZp5-
zS{Ky+G+%qtoO^Rt%JkJd(CSLr_%W?D!NRg@?FZu%2BN~;ONzApb}TB=>f5o&so+@X
zRSS!qt9G0@Ge>6Wv`)<<VJDp)hAADdahkBa-shy#!#D9qXE|+JlN6%(^y|jyQ_neR
zZz=e*KF#5v^-cvZjy;dH-+k~~v%@{*oRL<?in6?!(`;w9PRq<}oD<#FKh0x`s_t3!
zH<v7>UfvEfI&pWKiNA8;?xzgR*CMl8CE{;PnU?*jPkd_7r@rY^^-oyGP2ZfhA$6Lb
zsl{W7oo7zh&y`s^tx_^aGIW^{SNpO{CC=|Yu1m@K5fJRQbECtmxFvVmQ<E-Od9M{{
zu6BCK!~8wu=jnuCfu%v+yXSA3toofL^w(XloDA(fe@+Hw&76L;EXylB;?2^~FA+IQ
zrXJQQyO{M$_uJusT^Ev!c}@$aJr~WqZnWm;Hpx>nw-os6EN-tanWYtLxkG(g_Q8qO
zNutyGO57Jut2{gN>Ppc#zU|@L<_NpL>zrCWhc(D=iSnwAr_^>F=nj2h9VB<SD6JLj
z!!mir(+x_ZZd3n#Y)U<~_jqyTLa$~UajsoboYos6BBx)l>DHb6xkfVd?V)?0a(yLT
z?tQFW-DETU*3#!S2`lPL=BD2cZ#sK^_oVpSQ<+}PHmYE@)|!^(yy~#meb%GwbGRNA
ztvXf3xXpX3PafZn4ckmvPv6y6?R%fARaTQ35-O?~yK8D4*UPl!B?T=nweLLpn|U^W
zqW|*HXFWBVflu2`<gJ?IoMIlz>h+{)-7Rb7_`Ro|-ZehAJ0#}zQl&pjR@MJC{&X;6
zs;1H>RkzTlBPRl0o_$-^{atUV`S$x9g{QNX&Q*(g>TbUM&-douRmBy1ih66B&uPuC
zW#)}tdp7@e%hW3sFP<iGWNp5{wDE5vzs%;BU(C00#Q#~l^NTLSnV2~h_j}*h{o8Q=
z?k9t)V+AdLHTO0N?Rq|SOIVZa_GD!)m-@t88v|8N`6-Kc$(~wYZzbZIa4)Z4!>sP&
zTXE6ZUcVS0X)rCx7hNE5!t|S<tLn`45@}PygSr={2)$jgV$oiX*IWL2>hATEe!5*;
zR&+|>D&^)NudQ}2OJ9e&3(h<H`?6r`<SB8gd}dR>Fdw<OId{PVx9_LSG`iyCqa)9T
z3(VE2ml29C4k%-Pc&)R2a#Yn^i&tM0ZvAjME0^<HKji4b?t&?g50+}&cP(*qo1*>t
z$iZck;?(=9_C0QzWmmSaXOZQsYn^S`{duMmb&b+dB2&XfRv*#6cg*I9wCL=Y$K0=`
zSv`uGbizzy$2|VGZx$@;-)735UikWY<?YE{6?4tcF&oyG94=m&6x}wh_O;cF?@1Sp
zw#RHck(Z<A{=}*>VAT=%g!837+eLD#7_VhMt8&{edA!JXar7?>=^bYLmg~aj#Hzpd
z%lcUQNpEj$=1U8|iyIdo4v&bPR<`m*CiD5Fhn7!%R^_%%y)^u->$`<}IhOM-wK^)8
z{~`L5h5L?aJo8o8WY@oS*Ss6quVlP#c}aNcv9Et7y}L2Hw#6Yv>!jF`qusfVPnO?k
zis;?NDrleWIIkk)5P!fk@2zDOcVtT6{8&6e>WMf<@B7Q#Ec(#`(wkzJ$K?DtozLIb
zd*g_;QcZDO^B=#3H{~u{w@O4$@SosYzwgoXpmh_&Qn}J!hF(&;>b5PkegdDA?y1x3
z6q9HANPA2>o~wNF(+;b3g6U>czi1VnPPxV4qtARxpwMSo@5C=%3wS4$+`sSUx$AvA
zzi@Qr9ebBM#)bDMI=;(dKKi-bV&UQrpZiNL9Dly&#Oz=50$59QzpH}G`B?nJ!Skw?
zfkSL})RU8Y#P9Ccb($Q%!gKSDmU`*GmC37T|FFFub#c;(ud!9heL`xfob%703l-K6
ze0(%X`1;1vdw0zE+U*-NXVp=)Cmh%3PqkWCyT6_1%SkTHr1e+TjaLK+a_0s&ofL2I
zmHs}t_I9P$hoGw67pBGiKlM*<NBW)eniFR}pY)Nu(sb+OnFaCz)%%u&P0xP#^qcM1
zhxO+-FKpU>ex969-G-kBpR)hIz`ihh{*JS&oaEH}_=5va#+Uf>&+NNm|Lg6|N7q#%
zm!COyBB$rfF`v+>XY?mN{qpEXwS0xnUeR-}Ld-l;n?c0?RX(0K+2fy<>90yty~#9H
zH{d4IRNK|Y6Q`Op9S`?=dbIl50^`iNp09nP((UVCopJj8K4#%@R@Rvt&b9ce<!pNH
zqn7yP*WUY&j=Ek;GRmCnIosz}%JrFNjvSHSlevNWbDnYa?3=gG+)ER`b>`T=8ygqv
z6{q>$WSXtJ;U?4U+LuPs>idJIuSr|F=G{S=e~%-NrK<0E!!mvOk<{iGvlFfDo6bae
z?9ADF{@QOFal7;Nt@Rp{_GP!6zw>+5N|haU7oJwQUn=_bOMkKX|KC=8%f+QnCG771
zp?JXk7XOMlT`$WS*1zZf@#putKbZ{ql7G0HUv6iXKfe0z?~h-$?>6k7|1aD6pXs~%
zZ;tanuG>><e$TeD=vPklkJ{?rb>FWS+_>MLo_^=^)n{*iNUq&~r+(*eb>|C*zrL)q
z*lWl0>y6Hb`P0+W>xFJ#z8-)4cClG6U%Q#~$NGIDE(@U@LJNcGZHl6b^%fR}v0VDW
znN_I@h87lvT>9Y((S{1f3Lw#-{QMFHLkn{Y1p|d3E`86uw0scP63TT^h_*2@cQSP|
zbv8FOaWrvrGcY%HbTu$`GIKOBGIDjXG%&VPz^_CQq$U>Ln=~;so<8wBmu9`{tje6&
zo3Y35zrT6@o9`#F_tkSMdgnjB>z8C*_~=I8+zRhU7KM*23WY?M83>(OoOH_Qg1wjN
zWv?*TD`82q)fL&gj&Llyw4r6ST-&OpG0P5gc;}1rCPi)4F`lw5AZ^($<2~oi|JT%<
zdq1aq`sd$scF%e3qBOC>ex`?t@HCGU@A`Tn$7rL#mw{eV9zw6Rj!xoVF|DyE>3PT9
z<+GSXm-?;=7ufB-RVYO8w7~7fuNs+;%<8<mv`Rom>6+6UzN;oD1gyPsre}#g>5x?~
zo1JC4La}Vp4Zf>U0q$=^Hb#fMc4XdYnPk4wtVu2Dd1r2LE}QO=bppE`w~B5N-0k(o
z>S|ei!HgTSNzozJ2LzMKJ7X7DiIhxBN|fB_yDE0U>>G(m;VZv2#3j`pSr_n@`FO`%
zwX&I6_9ujQJLELKVzBVbX})1~)zQEur~8J~)kK3yJ}UD4pS7+A8o2p9-s4m%<0Ejn
zPCsxii+YEyz;2JPDi*G9ls2ZW3QpK1(*5PO>MG*}^&z^^M^`^#U6p=7XQS{Dv6b^!
zpLb;b5nFMtF{tWPjk1}4XoSKvm9lxO%nBN39E-HSd~SNDtV&tmD!xBL8>^CTE%mFK
z8o|6Va+TDE(j?;}B|D_voIX-gvwWpiV0h<S!OJVPPA+{j{rT4WnX81JSZ$Os<emKF
zmYN#BU*Oak+dDGr^D;YBzvd=+AMp#g+Ooqrr+3Ds#V5D8=S;rA66$;8_mMoo;H;TP
z91p$Ody<9M+N4J?c@w*5()W&sZU<8MPj%WVm^n>7DL3U=Wo6)G+4W3n)d8+PO1y!o
zo7mYqWR=?{GfuX(aLH-9QMk(I+X9oDr;~lHYWQZnapVh$K2#kwy?&|Gfj4}w7>cbj
z7|uLdz-dt5T;{!G-evtL2W@HHxnW25`E6~wl)Aup)w2k*n>+a)b6DhjYwj^SFo$o~
z!HYp_7DTAqe{NW{w_&H04D*=_3j8H<R*rLbwz(uPb-eN->xQS7!#1W%5)<w>9ATFb
zT;SE<%vi)4A-*8FVL4;5;(>4V3y#03w_DF_b$X$uyU)Ugm4XH@nbceknDEYEV-&V_
z_}Ad=*zk!_yr1DBvz|F)6?@DArX_qkmawjnDG=lluz0XZazXBaRx^id4c^5Kix|Z}
zGZ-@K{b#gd`@YlVmB;znd;i8xm5V6K?uouoC28Ot#=CkJ%hUyXM5<RrbUitlULX6j
z)OzKnlyBZyUme6`wxr}a7~YM&^vCJD@?V|wldsIShB4nYc-5FE+`B;Z%Cuj#E`Mj;
za8UIqX1U&3y5M|ff#4c}Z1$Kh*Kh0G{LoUjT60}?MBDu=wdWeKEWd6FdW9df3VkQ=
z+P2~Mp(^<Yc^m9FcIn*wXqvlIzQ8*|K4Ecvq}hV*K;4ar225@TB_!B|6NG#k6}`Xx
z@7lJUd(*KJwmEF+2XrjBpB>zy>R$e}yZFr~HHEE;+vk3DEnw7XOf3+MVY0d(x`C}^
zpLBw-PDIhK8QW?kGv=(1EXwoUs9PX>XTy`41vkuYFn&Lv>#b*VEnWQ1vkUJUq(e+C
zyvk4Rs{bwhg}YT`<L_yEzG#N>K8TOt+w|=1Th$#~4W$(Ml@eQ3->+L`d|oSYsj9q9
zkmy+_A0Ek*9~LaFd*pa1==b{7qOylg4jh@_(#jzo7X8Y6e&BQ~zDYX;9;I|lRy?n&
z=-1{u?bqG?f&0@6M7Bh};@`hi;$N$5!}5t6xL;HzGraJuXUsh0=UuzbXTQVdfPVSo
z63b%C*8NTLo3Z^${Ga8&crUGbxW~J6#wA+^CZ{P}?z&%F!%B~B6}WyVIN?%I{qE&$
z!VgqtY`bEgtJxO5kge=g(Ekc2!#~{54^$dtue|;*lK1(U*_A=6Pq?0+oqauqL;Qe}
z`+CO1TMKUPX<ffU^uJU68t#pHN49?8iZIL%44*F`?7W7%)NO@$oN4}3;jF#KR<2_@
z!<YZ*&EhucXSsEeOQRWt58r0^f5_T_c^i9x$rYc<1I>psw*{rWT>r<UsPL!Pv~~6O
z*ms9sRX*qF^;CgXi=lk}rO@-$RqlURIWk)$+zWo%b+sWXfc?vn%N{QmRMyMag~swV
znw)5u^!OtCl?lwg3q(z3eP1h_mBHrjU~Q3e@3wK)3zpnxd%q@zS~tuy>u+|vkb1Ab
z?5Y*RuCvw8RYR*C^j|O^*Qs5vmH4vVJL@fbr2$u)&fh=fR}6T*EU`*^dERdI4T}qt
zUwJNgep&NCu%`H?C%;lwexChmP5W-Odc8ZZip1tH7eBDs!IGx?_fh!Q?#c}udJU=@
z&bTh@x}+7s{5pX-hAsR+=myShjbC=MmL165!2PaacLM(%=IaN$mj3^8*{UZyfm>L=
z(f7bTr7ayE87@wX&3@fw=U?&alj_90h+k7zuadg(_@Yt5=|D+^{eqG`66ZP|_DGyt
z!7Wq2J?HBdvxbd<r!K|+ZCrIjGBKxRvY?QghlFC{6jpYfzg2N_KkBby-yxlt-jW!2
z?$UkD72WT4oqduaX|U^J;)SG_?{imhcez<e%Cg>FaQKpa)gJyMJrlH@*1eE$Sjn+e
z=}1qN&fj@#W>N|AQp_>kZ92gpcS#lKI<4b)s8rK=tX^lb<=ShWX`i^3MjGVKJU0ER
z!r>^5hoLRuf|p#<b&H>5ziLVojC18?*s1iS%S_k!-4)h$C7G@d3Q^n69Ee}ZxKv5@
zo!E|ynI{EJ7vwHsK6EnUtWkXZlnrO3>z9YU>3MS6_uh7sk{{v=lS>X8<?mfvS0VK<
zrDd|9pW6$Gw-L|k=ayeh?dSc%z-v9-<XuPVYPLxZZg;llylT(VV1BBQdeeG$*VksP
z2aP5xw&a|i6vf}r{6OIFO|MLW6i2=*%{{5Re}C=H3SiE1l$BsgULa`Fn0A5bmSb}&
zyZtiWEuY*1+IY6Flw)nzwcfer8s7zOD_!f)kw<qq$bE?{dpEgDwx0QL!hucR-Cda<
z7xiAUkl6UfE0A~b1C<#Y-u!Yt`XQ^7%cog#LHJ8!2mK4_jd8P|Gw7dQ{kb9h$yL__
z-5*~GJt(dCs`Nm$qLlT+tKGZUDjvq(W!Up<T^!?{JL~eAvJ<#t*v$`^O>o|RfbT-X
zTc(|br#6NEDlv-E(qwPnacK=>{kG@wj8&(fAE=eRP`f~SNyyIho3rybh}tLK)V~+B
zQfP|IuaoxSTbX2-LZ{U(iZ#sn#J|D&)9c6G^S8ZWpM7-}<BCU%yZW{4qJHcQnx1}z
zwYa9{qa?F@Xw9F`Cl{>mm1E<0WFGx3ebpCZmX9af`^D<a6DIxec>JC5&WDfp+@<R4
z8D!XJyj5P^Z~2eo0Iz&`?UIk`4eKm_JescZ=c(@7?<~n)_iA*D5<26(4ivv%B|5Rj
z<<rDt*Q+|kg3@$<uZ%3cxT*OZM|_R${0D9OGj86m^pCx8eE+E{3U}@H{fH8C6sW(u
zss2OLua^cJj@;k$X1>jOiDy54JbK){p7%j_zrJ0)<@fEnzd!kw?qhzpaj|Cs*O>-x
zpL1Sfsyp`m;Me*6!gOsaN7~M}@u8lt#dJcRoYwjM{k+z+M=X`ur#DAU{O%w%MbG^H
zhpVls-FvQSY)LxI<+!gT^XIq!D^0nx9A#Iq+c-VR*7^O{uQZdPcLDF02C)K>DLR$k
zdA~kZnw-yWwV+;k&NQ=Ite+l8yx0<R)BS6A-UaSo4CSl;2)x)H^UJr?l8?>OJGZ}d
z>K_&f=EKvn|7m`eW?Y=W)f2t$v;CC=3D5l-COaJ7=heCK{O5JE?U~aK%FNhy=fUHP
zw%*URr#w5z6v1+5_vh!j<yuSYQZ{%@-@&F4IQ;<E4F+-D?Hg8{yH)?wYX5;<d!}8}
zi_UwSyEQ96YUb4!_ZXt5MgP~|s@1$Z;dYVq?5?{kQ31P8yKQ|`dc0`1<kl?KURC3D
zr=A|2<f}g?q_bH^j>RKbXY-xCbEJY8WV@pnlJi|(Hix?k1-Q&g;>+0EIa%*fKp?-_
ziXfYWo$Bwht2F|StX5JIHC*0NujQJf^~igpuu0^*bkjFS4?B1Zx=V0uO^V%ky2!si
zD%N264gM<cjq=)U&aSo}6?_W?c$)V-t@}7(mqNIpch{3W7D+q%_pM^f(duIk(Ol$J
zD5Vj&dD`zE?^n+6v0x8aS|PW<RZzFfyWxm<<Qbj3h<Axg>&hf^7=@xzW^VDgSKk%&
zJ+bbH)SKPYe(SDH7CRXo7|yNwo-sC~gLlG{87@afr&TX?<300v#>Rfz(|dm?9z7B5
zGbuSpZ1ScVQ;w!+t7#f~c6xfncpW$$q@~tt__EW}-^VWLlVCQVQkqXtlB~tb4p09x
zK7A*h&e-&O`k&d-@9E_elr%|ba_fvUN6ysWno)B^ML~_xaI<yVwPQ<^)I<$8o24Zk
zS5ZxSb<F4P3=<G>=17W~nz7-`PE%D+f1j$P*o>2bXa4j?KI%FdcE+T4=JbzJ3eQ3M
zijMhQ-m%rhqJG&y#p#ASduH|;a`t*=_&6np?S3qKU`o$STSKEGKIdkvIhJCowz^QW
zezoR1y_MoTDvpvG?3w|LT8^S04lou7$S`G2V2qr=e02fal_skIeklj#45qUSShqBp
zUEt$u<||;4VV%2xyQEp}0{5>2h8OrhB{0aaHz#oLGz%JV9Xnt#gJJRm77I?lMok0W
zv;&z1Y-gG_KaiQh{QRIz1Vi@&rU)kO1kp8(^`#1|X1d>Bc%~-aEc*Z9w^nY$=?7dp
zxXcckZeU&4ES(^Ihh_T#z8$<}2W1Py-!xV)nDTeZ<vzX0cUPx}T>4eJ{pr5nT%qmk
z>q>V1J0`!nOPWtv#?7LqK;ognp~RNM9PNVm1?mYap-jc;2TD6w1db?nI198Z@bSyY
zS=ba*JUFpa`8gkd%+9Cv`y$uNfF*hOBxQ^&QVLEym~c?B*_o}K$IocWruc(gj;;q8
zv?W@N0{DKo1w07$Unms9$S=dd&Zw`*8up1>=cIUqh5iPW_!VrX3&gH8R$X9_aum*B
z(_J9CrLn9)qJ-hv7jAb)^%qQc7qEY6vOBOTd!hW3gA5jY5rw)u^^9WC+{y_eJ&lD1
zjB1Sj|63<N5ShVrIe`t@@Qv7|f2Q$sf}BnRsKLuPt&Qu{&(hO>Uk6KlyTp8p-+s|0
zu6)^Ftlf)Q<KA$+PGJ79c5MOchr-1NqCy*|USWD2-un6h+YPoFH;p??)(u;q9nwqq
zyRSg}4P)3`?(d9p^>5VIJpG$rtn>TChV@T%Qf|1n)z%tZDz^u-pu~0Qm3FUR{O;Me
z=*4dyqc_Tj?Lb7`-q7jwG1b`{UY+|Ny7J;G^SZdDYOD1!TE5L*`^(sJYSfxv7a6BU
zt^KuDe)W|!Q}%xzOUqWjTpRv!!&RNVi-X#)+En^4tyd2F{Q7?Q%N1AmSS$-#ezoRj
zu~up1+5La#c-;;Ae1HGip#H0Sf|muYzp5txe*5{X^J`a^oXIk;_gz}Iy7tE`ugcYb
zPn(BIZMbDFcf2n;_SwgcJW+SAYEEri^KPZr)V8(nKCjj4ji~)3tkoO!_m1+^V{7WF
zJ(d=(uD=#CYs0Vo|LS*nO%D72uRX*nk@t0cz{@43HpPxhgRgy<DL8f6nukkgYxzbW
z{{GK(sbuz>Kg+z9ul>05_~No-Qvd%ZYn_d{{3(A$$+cN^4>x%|Uvsk7bE#$azXPAO
z=5C+1Nm%P_^yzckytuF3`sK~}PSbXQ_>299U%u{=f3kM#^ebUiHK#sD%=upbqn)`w
zl(#?JyWjtjoIK}Vtpnvr{j41Q^=uy^_J8^z@baU*VVu|pdB!-?6^vUO&fCjzf0O$^
z`GF~un3L_l++&abo7>oBSO4;#TXulmZ9Ve`t_L4Q?>+Y3dffh9#odO>pDc9yp~R<#
z_3d)q!E*Zj_XH%^Ac-#c!13yQp$|JRJf5F#^Y8Yt*-V!kruz5)XZm=qA@acT%zjn2
z{`$iof9#jem-`T}Dkq<3^Kbpp$Ddbh=lOA6=)F(`<LZR7QM>og*l?|LxzK-pCzdM5
X=@*PdWqHjlj4Uk8xl~nM{oS|#na|<V

delta 503486
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%0D=**i*lJH=wRyeSiUT6eZ71T-
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
We>Z7aUSkUr3u6;5RaIAiH!c7haq(*a

diff --git a/examples/advanced/categorical/batch/runExample.log b/examples/advanced/categorical/batch/runExample.log
index 543c3aa..1eb0da5 100644
--- a/examples/advanced/categorical/batch/runExample.log
+++ b/examples/advanced/categorical/batch/runExample.log
@@ -2,22 +2,24 @@ Warning: {
 	Model use is disabled for problem with categorical variables.
 } 
 Warning: {
-	Anisotropic mesh are not supported with categorical and binary variables.
+	Default anisotropic mesh is disabled with categorical and binary variables.
 } 
 
-NOMAD - version 3.7.1 - www.gerad.ca/nomad
-
-Copyright (C) 2001-2015 {
-	Mark A. Abramson     - The Boeing Company
+NOMAD - version 3.7.3 has been created by {
 	Charles Audet        - Ecole Polytechnique de Montreal
-	Gilles Couture       - Ecole Polytechnique de Montreal
-	John E. Dennis, Jr.  - Rice University
 	Sebastien Le Digabel - Ecole Polytechnique de Montreal
 	Christophe Tribes    - Ecole Polytechnique de Montreal
 } 
 
-Funded in part by AFOSR and Exxon Mobil.
+The copyright of NOMAD - version 3.7.3 is owned by {
+	Sebastien Le Digabel - Ecole Polytechnique de Montreal
+	Christophe Tribes    - Ecole Polytechnique de Montreal
+} 
+
+NOMAD version 3 is a new version of Nomad v1 and v2, it has been funded by AFOSR and Exxon Mobil.
+Nomad v1 and v2 were created and developed by Mark A. Abramson from The Boeing Company, Charles Audet and Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from Rice University, and were funded by AFOSR and Exxon Mobil.
 
+Download  : www.gerad.ca/nomad
 License   : '$NOMAD_HOME/src/lgpl.txt'
 User guide: '$NOMAD_HOME/doc/user_guide.pdf'
 Examples  : '$NOMAD_HOME/examples'
diff --git a/examples/advanced/categorical/bi_obj/makefile b/examples/advanced/categorical/bi_obj/makefile
index 914d338..89f48dd 100644
--- a/examples/advanced/categorical/bi_obj/makefile
+++ b/examples/advanced/categorical/bi_obj/makefile
@@ -1,25 +1,37 @@
-EXE                 = categorical.exe
-EXE_MPI				= categorical_MPI.exe
-
-COMPILATOR          = g++
-COMPILATOR_MPI = mpic++
-SUNAME = $(shell uname)
-OSS=$(findstring MINGW32,$(SUNAME)) 
-ifneq "$(strip $(OSS))" ""
-COMPILATOR_MPI = g++
-endif
+UNAME := $(shell uname)
+
+EXE                    = categorical.exe
+EXE_MPI	               = categorical_MPI.exe
 
-COMPILATOR_OPTIONS  = -g -ansi 
+COMPILATOR             = g++
+COMPILATOR_MPI         = mpic++
+
+COMPILATOR_OPTIONS     = -O2 -ansi 
 COMPILATOR_OPTIONS_MPI = $(COMPILATOR_OPTIONS) -DUSE_MPI
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-L1_MPI				= $(NOMAD_HOME)/lib/nomad.MPI.a
-LIBS                = $(L1) -lm
-LIBS_MPI			= $(L1_MPI) -lm -lmpi
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-COMPILE_MPI			= $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
-OBJS                = categorical.o
-OBJS_MPI            = categorical_MPI.o
+
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+LIB_NOMAD_MPI          = libnomad.MPI.so
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+CXXFLAGS_MPI 	       = $(CXXFLAGS) -DUSE_MPI
+
+
+LDLIBS                 = -lm -lnomad
+LDLIBS_MPI             = -lm -lmpi -lnomad.MPI
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+COMPILE_MPI            = $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
+
+OBJS                   = categorical.o
+OBJS_MPI               = categorical_MPI.o
 
 
 ifndef NOMAD_HOME
@@ -30,19 +42,23 @@ endef
 endif
 
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
 	@echo "   building the scalar version ..."
 	@echo "   exe file : "$(EXE)
-	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip  $(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
-$(EXE_MPI): $(L1_MPI) $(OBJS_MPI) 
+$(EXE_MPI): $(OBJS_MPI) 
 	$(ECHO_NOMAD)
 	@echo "   building the MPI version ..."
 	@echo "   exe file : "$(EXE_MPI)
-	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LIBS_MPI) $(COMPILATOR_OPTIONS_MPI)
-	@strip  $(EXE_MPI)
+	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LDLIBS_MPI) $(CXXFLAGS_MPI) -L$(LIB_DIR)
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD_MPI) $(NOMAD_HOME)/lib/$(LIB_NOMAD_MPI) $(EXE_MPI)
+endif
 
 categorical.o: categorical.cpp
 	$(ECHO_NOMAD)
@@ -50,10 +66,8 @@ categorical.o: categorical.cpp
 
 categorical_MPI.o: categorical.cpp 
 	$(ECHO_NOMAD)
-	@$(COMPILE_MPI) categorical.cpp -o categorical_MPI.o
+	@$(COMPILE_MPI) categorical.cpp -o $@
 
-$(L1) $(L1_MPI): ;
-	$(ECHO_NOMAD)
 
 mpi: $(EXE_MPI)
 
diff --git a/examples/advanced/categorical/bi_obj/runExample.log b/examples/advanced/categorical/bi_obj/runExample.log
index c73859f..fb02048 100644
--- a/examples/advanced/categorical/bi_obj/runExample.log
+++ b/examples/advanced/categorical/bi_obj/runExample.log
@@ -4,42 +4,55 @@ Warning: {
 Warning: {
 	Default anisotropic mesh is disabled with categorical and binary variables.
 } 
-Warning: {
-	Model use is disabled in parallel mode (MPI).
-} 
-Warning: {
-	Asynchronous mode is disabled in parallel mode (MPI) when dynamic directions (ortho n+1) are used.
-} 
 
 multi-MADS run {
 
-	MADS run  1 ...... OK [bb eval= 78] [overall bb eval=   78] [# dominant pts=   2] [# new pts=   2] [f1=52.02241823 f2=51.31041823]
-	MADS run  2 ...... OK [bb eval= 39] [overall bb eval=  117] [# dominant pts=   3] [# new pts=   1] [f1=52.0224221 f2=51.0754221]
-	MADS run  3 ...... OK [bb eval= 39] [overall bb eval=  156] [# dominant pts=   3] [# new pts=   0] [f1=52.02242186 f2=51.23342186]
-	MADS run  4 ...... OK [bb eval= 38] [overall bb eval=  194] [# dominant pts=   4] [# new pts=   1] [f1=52.02242186 f2=51.06242186]
-	MADS run  5 ...... OK [bb eval= 39] [overall bb eval=  233] [# dominant pts=   5] [# new pts=   1] [f1=52.02242186 f2=51.19342186]
-	MADS run  6 ...... OK [bb eval=  7] [overall bb eval=  240] [# dominant pts=   5] [# new pts=   0] [f1=52.02242186 f2=51.19342186]
-	MADS run  7 ...... OK [bb eval= 39] [overall bb eval=  279] [# dominant pts=   2] [# new pts=  -3] [f1=45.36506988 f2=44.51306988]
-	MADS run  8 ...... OK [bb eval= 39] [overall bb eval=  318] [# dominant pts=   3] [# new pts=   1] [f1=45.36506988 f2=44.51306988]
-	MADS run  9 ...... OK [bb eval= 39] [overall bb eval=  357] [# dominant pts=   7] [# new pts=   4] [f1=44.99982416 f2=44.55082416]
-	MADS run 10 ...... OK [bb eval= 39] [overall bb eval=  396] [# dominant pts=   4] [# new pts=  -3] [f1=44.97647101 f2=44.00347101]
-	MADS run 11 ...... OK [bb eval= 39] [overall bb eval=  435] [# dominant pts=   4] [# new pts=   0] [f1=44.9661848 f2=44.1371848]
-	MADS run 12 ...... OK [bb eval= 39] [overall bb eval=  474] [# dominant pts=   5] [# new pts=   1] [f1=44.9661848 f2=44.1371848]
-	MADS run 13 ...... OK [bb eval= 26] [overall bb eval=  500] [# dominant pts=   5] [# new pts=   0] [f1=44.96576761 f2=45.17076761]
-
-} end of run (max number of bb evaluations)
-
-
-blackbox evaluations                     : 500
-number of MADS runs                      : 13
+	MADS run  1/30 ...... OK [bb eval= 60] [overall bb eval=   60] [# dominant pts=   6] [# new pts=   6] [f1=52.02241823 f2=52.95541823]
+	MADS run  2/30 ...... OK [bb eval= 74] [overall bb eval=  134] [# dominant pts=   6] [# new pts=   0] [f1=52.02241826 f2=51.05441826]
+	MADS run  3/30 ...... OK [bb eval= 58] [overall bb eval=  192] [# dominant pts=   7] [# new pts=   1] [f1=52.02241823 f2=51.45041823]
+	MADS run  4/30 ...... OK [bb eval= 68] [overall bb eval=  260] [# dominant pts=   6] [# new pts=  -1] [f1=52.02241823 f2=51.51641823]
+	MADS run  5/30 ...... OK [bb eval= 54] [overall bb eval=  314] [# dominant pts=   7] [# new pts=   1] [f1=52.02241823 f2=51.41441823]
+	MADS run  6/30 ...... OK [bb eval=  0] [overall bb eval=  314] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.51641823]
+	MADS run  7/30 ...... OK [bb eval=  0] [overall bb eval=  314] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.41441823]
+	MADS run  8/30 ...... OK [bb eval=  0] [overall bb eval=  314] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.51641823]
+	MADS run  9/30 ...... OK [bb eval=  0] [overall bb eval=  314] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.41441823]
+	MADS run 10/30 ...... OK [bb eval=  0] [overall bb eval=  314] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.51641823]
+	MADS run 11/30 ...... OK [bb eval=  0] [overall bb eval=  314] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.41441823]
+	MADS run 12/30 ...... OK [bb eval=  0] [overall bb eval=  314] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.51641823]
+	MADS run 13/30 ...... OK [bb eval=  0] [overall bb eval=  314] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.41441823]
+	MADS run 14/30 ...... OK [bb eval= 49] [overall bb eval=  363] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.25241823]
+	MADS run 15/30 ...... OK [bb eval= 57] [overall bb eval=  420] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.06141823]
+	MADS run 16/30 ...... OK [bb eval= 50] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.22141823]
+	MADS run 17/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.51641823]
+	MADS run 18/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.41441823]
+	MADS run 19/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.25241823]
+	MADS run 20/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.51641823]
+	MADS run 21/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.41441823]
+	MADS run 22/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.06141823]
+	MADS run 23/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.22141823]
+	MADS run 24/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.25241823]
+	MADS run 25/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.51641823]
+	MADS run 26/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.41441823]
+	MADS run 27/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.06141823]
+	MADS run 28/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.22141823]
+	MADS run 29/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.51641823]
+	MADS run 30/30 ...... OK [bb eval=  0] [overall bb eval=  470] [# dominant pts=   7] [# new pts=   0] [f1=52.02241823 f2=51.25241823]
+
+} end of run (max number of MADS runs)
+
+
+blackbox evaluations                     : 470
+number of MADS runs                      : 30
 
 Pareto front {
 
-	44.9348019953 45.4168019953 
-	44.9657676108 45.1707676108 
-	44.9661847951 44.1371847951 
-	44.9738637269 44.0708637269 
-	44.9764710086 44.0034710086 
+	52.0224182340 52.9554182340 
+	52.0224182340 52.5564182340 
+	52.0224182340 51.4504182340 
+	52.0224182340 51.2524182340 
+	52.0224182340 51.2214182340 
+	52.0224182340 51.0614182340 
+	52.0224182340 51.0254182340 
 } 
 
-number of Pareto points: 5
+number of Pareto points: 7
diff --git a/examples/advanced/categorical/single_obj/makefile b/examples/advanced/categorical/single_obj/makefile
index 305e2ba..89f48dd 100644
--- a/examples/advanced/categorical/single_obj/makefile
+++ b/examples/advanced/categorical/single_obj/makefile
@@ -1,25 +1,37 @@
-EXE                 = categorical.exe
-EXE_MPI				= categorical_MPI.exe
-
-COMPILATOR          = g++
-COMPILATOR_MPI = mpic++
-SUNAME = $(shell uname)
-OSS=$(findstring MINGW32,$(SUNAME)) 
-ifneq "$(strip $(OSS))" ""
-COMPILATOR_MPI = g++
-endif
+UNAME := $(shell uname)
+
+EXE                    = categorical.exe
+EXE_MPI	               = categorical_MPI.exe
 
-COMPILATOR_OPTIONS  = -O2 -ansi 
+COMPILATOR             = g++
+COMPILATOR_MPI         = mpic++
+
+COMPILATOR_OPTIONS     = -O2 -ansi 
 COMPILATOR_OPTIONS_MPI = $(COMPILATOR_OPTIONS) -DUSE_MPI
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-L1_MPI				= $(NOMAD_HOME)/lib/nomad.MPI.a
-LIBS                = $(L1) -lm
-LIBS_MPI			= $(L1_MPI) -lm -lmpi
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-COMPILE_MPI			= $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
-OBJS                = categorical.o
-OBJS_MPI            = categorical_MPI.o
+
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+LIB_NOMAD_MPI          = libnomad.MPI.so
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+CXXFLAGS_MPI 	       = $(CXXFLAGS) -DUSE_MPI
+
+
+LDLIBS                 = -lm -lnomad
+LDLIBS_MPI             = -lm -lmpi -lnomad.MPI
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+COMPILE_MPI            = $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
+
+OBJS                   = categorical.o
+OBJS_MPI               = categorical_MPI.o
 
 
 ifndef NOMAD_HOME
@@ -30,19 +42,23 @@ endef
 endif
 
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
 	@echo "   building the scalar version ..."
 	@echo "   exe file : "$(EXE)
-	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip  $(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
-$(EXE_MPI): $(L1_MPI) $(OBJS_MPI) 
+$(EXE_MPI): $(OBJS_MPI) 
 	$(ECHO_NOMAD)
 	@echo "   building the MPI version ..."
 	@echo "   exe file : "$(EXE_MPI)
-	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LIBS_MPI) $(COMPILATOR_OPTIONS_MPI)
-	@strip  $(EXE_MPI)
+	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LDLIBS_MPI) $(CXXFLAGS_MPI) -L$(LIB_DIR)
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD_MPI) $(NOMAD_HOME)/lib/$(LIB_NOMAD_MPI) $(EXE_MPI)
+endif
 
 categorical.o: categorical.cpp
 	$(ECHO_NOMAD)
@@ -50,10 +66,8 @@ categorical.o: categorical.cpp
 
 categorical_MPI.o: categorical.cpp 
 	$(ECHO_NOMAD)
-	@$(COMPILE_MPI) categorical.cpp -o categorical_MPI.o
+	@$(COMPILE_MPI) categorical.cpp -o $@
 
-$(L1) $(L1_MPI): ;
-	$(ECHO_NOMAD)
 
 mpi: $(EXE_MPI)
 
diff --git a/examples/advanced/categorical/single_obj/runExample.log b/examples/advanced/categorical/single_obj/runExample.log
index d4a89ba..270473f 100644
--- a/examples/advanced/categorical/single_obj/runExample.log
+++ b/examples/advanced/categorical/single_obj/runExample.log
@@ -2,7 +2,7 @@ Warning: {
 	Model use is disabled for problem with categorical variables.
 } 
 Warning: {
-	Anisotropic mesh are not supported with categorical and binary variables.
+	Default anisotropic mesh is disabled with categorical and binary variables.
 } 
 
 MADS run {
@@ -338,424 +338,1864 @@ MADS run {
 	1626+12	(	2 0 4406.0444434766 2 5593.9555565234 )	54.0419580454 (ExtendedPoll)
 	1626+13	(	2 0 4028.7079722735 2 5971.2920277265 )	53.7998378556 (ExtendedPoll)
 	1626+19	(	2 0 4154.4867960079 2 5845.5132039921 )	53.7918826239 (ExtendedPoll)
-	1690+27	(	2 0 4999.9918793150 2 5000.0071042165 )	55.9016755069 (ExtendedPoll)
-	1690+28	(	2 0 4999.9675172600 2 5000.0284168659 )	55.9016037165 (ExtendedPoll)
-	1690+29	(	2 0 4999.8700690400 2 5000.1136674635 )	55.9013165752 (ExtendedPoll)
-	1690+30	(	2 0 4999.4802761598 2 5000.4546698539 )	55.9001683374 (ExtendedPoll)
-	1690+31	(	2 0 4997.9211046392 2 5001.8186794156 )	55.8955806263 (ExtendedPoll)
-	1690+32	(	2 0 4991.6844185568 2 5007.2747176624 )	55.8773137258 (ExtendedPoll)
-	1690+33	(	2 0 4966.7376742271 2 5029.0988706497 )	55.8055960661 (ExtendedPoll)
-	1690+34	(	2 0 4866.9506969084 2 5116.3954825988 )	55.5407618647 (ExtendedPoll)
-	1690+35	(	2 0 4467.8027876336 2 5465.5819303951 )	54.8617064546 (ExtendedPoll)
-	1690+37	(	2 0 4466.8269645111 2 5469.3623920026 )	54.8295561915 (ExtendedPoll)
-	1690+38	(	2 0 4463.8994951436 2 5480.7037768250 )	54.7333779337 (ExtendedPoll)
-	1690+39	(	2 0 4452.1896176735 2 5526.0693161146 )	54.3527873521 (ExtendedPoll)
-	1690+40	(	2 0 4432.0999444382 2 5550.0895775916 )	54.2727755505 (ExtendedPoll)
-	1690+41	(	2 0 4371.8309247321 2 5622.1503620228 )	54.0490159101 (ExtendedPoll)
-	1690+48	(	2 0 4367.1633511951 2 5628.4010891571 )	54.0259049915 (ExtendedPoll)
-	1690+52	(	2 0 4367.4363087119 2 5632.2975577092 )	53.9839463746 (ExtendedPoll)
-	1690+64	(	2 0 4367.5173563027 2 5632.3888412069 )	53.9823156833 (ExtendedPoll)
-	1690+67	(	2 0 4367.5750698909 2 5632.4087032645 )	53.9816128497 (ExtendedPoll)
-	1690+77	(	2 0 4367.5769053809 2 5632.4193356014 )	53.9814889495 (ExtendedPoll)
-	1690+82	(	2 0 4367.5805624212 2 5632.4182502476 )	53.9814682147 (ExtendedPoll)
-	1690+86	(	2 0 4367.5821046999 2 5632.4171280385 )	53.9814662175 (ExtendedPoll)
-	1690+90	(	2 0 4367.5818878523 2 5632.4180567321 )	53.9814586704 (ExtendedPoll)
-	1690+104	(	2 0 4367.5819056985 2 5632.4180679393 )	53.9814584017 (ExtendedPoll)
-	1690+105	(	2 0 4367.5819346476 2 5632.4180608593 )	53.9814582222 (ExtendedPoll)
-	1690+109	(	2 0 4367.5819216978 2 5632.4180774844 )	53.9814581658 (ExtendedPoll)
-	1690+115	(	2 0 4367.5819257648 2 5632.4180741356 )	53.9814581645 (ExtendedPoll)
-	1690+120	(	2 0 4367.5819244247 2 5632.4180754292 )	53.9814581630 (ExtendedPoll)
-	1690+121	(	2 0 4367.5819204043 2 5632.4180793101 )	53.9814581585 (ExtendedPoll)
-	1690+122	(	2 0 4367.5819043228 2 5632.4180948339 )	53.9814581405 (ExtendedPoll)
-	1690+123	(	2 0 4367.5818399969 2 5632.4181569287 )	53.9814580686 (ExtendedPoll)
-	1690+124	(	2 0 4367.5815826929 2 5632.4184053083 )	53.9814577808 (ExtendedPoll)
-	1690+125	(	2 0 4367.5805534773 2 5632.4193988263 )	53.9814566296 (ExtendedPoll)
-	1690+126	(	2 0 4367.5764366146 2 5632.4233728987 )	53.9814520249 (ExtendedPoll)
-	1690+127	(	2 0 4367.5599691638 2 5632.4392691879 )	53.9814336068 (ExtendedPoll)
-	1690+128	(	2 0 4367.4940993607 2 5632.5028543451 )	53.9813599484 (ExtendedPoll)
-	1690+129	(	2 0 4367.2306201483 2 5632.7571949737 )	53.9810655359 (ExtendedPoll)
-	1690+130	(	2 0 4366.1767032985 2 5633.7745574881 )	53.9798914222 (ExtendedPoll)
-	1690+131	(	2 0 4361.9610358996 2 5637.8440075457 )	53.9752515834 (ExtendedPoll)
-	1690+132	(	2 0 4345.0983663039 2 5654.1218077760 )	53.9576001475 (ExtendedPoll)
-	1690+133	(	2 0 4277.6476879210 2 5719.2330086971 )	53.9016513465 (ExtendedPoll)
-	1690+135	(	2 0 4277.6290591203 2 5719.2571811144 )	53.9015782727 (ExtendedPoll)
-	1690+136	(	2 0 4277.5731727181 2 5719.3296983663 )	53.9013590679 (ExtendedPoll)
-	1690+137	(	2 0 4277.3496271092 2 5719.6197673739 )	53.9004824970 (ExtendedPoll)
-	1690+138	(	2 0 4276.4554446736 2 5720.7800434043 )	53.8969801836 (ExtendedPoll)
-	1690+139	(	2 0 4272.8787149315 2 5725.4211475259 )	53.8830344924 (ExtendedPoll)
-	1690+140	(	2 0 4272.2449416972 2 5726.1641037669 )	53.8813532804 (ExtendedPoll)
-	1690+141	(	2 0 4270.3436219944 2 5728.3929724899 )	53.8763261624 (ExtendedPoll)
-	1690+145	(	2 0 4269.8544309447 2 5729.2382877997 )	53.8723721175 (ExtendedPoll)
-	1690+146	(	2 0 4268.9604950773 2 5730.9749800002 )	53.8632736922 (ExtendedPoll)
-	1690+157	(	2 0 4268.9281879962 2 5731.0267642928 )	53.8630526551 (ExtendedPoll)
-	1690+162	(	2 0 4268.9081672520 2 5731.0497967493 )	53.8630044126 (ExtendedPoll)
-	1690+163	(	2 0 4268.8481050197 2 5731.1188941187 )	53.8628597009 (ExtendedPoll)
-	1690+167	(	2 0 4268.9130457179 2 5731.0620335227 )	53.8628413313 (ExtendedPoll)
-	1690+168	(	2 0 4269.1078678127 2 5730.8914517347 )	53.8627863397 (ExtendedPoll)
-	1690+172	(	2 0 4268.9798523367 2 5731.0072720873 )	53.8627858887 (ExtendedPoll)
-	1690+173	(	2 0 4268.5958059087 2 5731.3547331451 )	53.8627850104 (ExtendedPoll)
-	1690+182	(	2 0 4268.5734598444 2 5731.3755169174 )	53.8627794333 (ExtendedPoll)
-	1690+183	(	2 0 4268.5064216515 2 5731.4378682344 )	53.8627627170 (ExtendedPoll)
-	1690+184	(	2 0 4268.2382688801 2 5731.6872735026 )	53.8626960762 (ExtendedPoll)
-	1690+185	(	2 0 4267.1656577944 2 5732.6848945752 )	53.8624331084 (ExtendedPoll)
-	1690+186	(	2 0 4262.8752134514 2 5736.6753788658 )	53.8614387941 (ExtendedPoll)
-	1690+187	(	2 0 4245.7134360797 2 5752.6373160280 )	53.8583843412 (ExtendedPoll)
-	1690+190	(	2 0 4247.8459166796 2 5750.8801520137 )	53.8564841075 (ExtendedPoll)
-	1690+191	(	2 0 4254.2433584792 2 5745.6086599708 )	53.8509013362 (ExtendedPoll)
-	1690+203	(	2 0 4254.3648432334 2 5745.5967180794 )	53.8499381914 (ExtendedPoll)
-	1690+208	(	2 0 4254.3884937761 2 5745.5774316250 )	53.8499159225 (ExtendedPoll)
-	1690+209	(	2 0 4254.4594454040 2 5745.5195722617 )	53.8498491302 (ExtendedPoll)
-	1690+216	(	2 0 4254.4747041982 2 5745.5195660142 )	53.8497136099 (ExtendedPoll)
-	1690+222	(	2 0 4254.4785171266 2 5745.5196821982 )	53.8496785985 (ExtendedPoll)
-	1690+225	(	2 0 4254.4745684192 2 5745.5233580070 )	53.8496778754 (ExtendedPoll)
-	1690+226	(	2 0 4254.4627222968 2 5745.5343854333 )	53.8496757065 (ExtendedPoll)
-	1690+227	(	2 0 4254.4153378073 2 5745.5784951385 )	53.8496670379 (ExtendedPoll)
-	1690+228	(	2 0 4254.2257998495 2 5745.7549339594 )	53.8496324765 (ExtendedPoll)
-	1690+229	(	2 0 4253.4676480183 2 5746.4606892429 )	53.8494960362 (ExtendedPoll)
-	1690+230	(	2 0 4250.4350406932 2 5749.2837103771 )	53.8489791731 (ExtendedPoll)
-	1690+231	(	2 0 4238.3046113928 2 5760.5757949136 )	53.8473747522 (ExtendedPoll)
-	1690+233	(	2 0 4237.9514726055 2 5760.9129400964 )	53.8472576934 (ExtendedPoll)
-	1690+234	(	2 0 4236.8920562434 2 5761.9243756450 )	53.8469104201 (ExtendedPoll)
-	1690+235	(	2 0 4232.6543907954 2 5765.9701178391 )	53.8455799016 (ExtendedPoll)
-	1690+236	(	2 0 4215.7037290030 2 5782.1530866154 )	53.8411968855 (ExtendedPoll)
-	1690+237	(	2 0 4147.9010818337 2 5846.8849617209 )	53.8388064213 (ExtendedPoll)
-	1690+239	(	2 0 4139.4939903168 2 5859.9869225266 )	53.7929039460 (ExtendedPoll)
-	1690+243	(	2 0 4134.1713187395 2 5865.6917346274 )	53.7882968215 (ExtendedPoll)
-	1690+250	(	2 0 4133.4948958932 2 5866.3963062176 )	53.7879136446 (ExtendedPoll)
-	1690+251	(	2 0 4131.4656273543 2 5868.5100209882 )	53.7867806418 (ExtendedPoll)
-	1690+261	(	2 0 4131.5933562783 2 5868.3938874275 )	53.7866942837 (ExtendedPoll)
-	1690+270	(	2 0 4131.5998202039 2 5868.3898345950 )	53.7866729850 (ExtendedPoll)
-	1690+271	(	2 0 4131.6192119808 2 5868.3776760976 )	53.7866090899 (ExtendedPoll)
-	1690+279	(	2 0 4131.6209541211 2 5868.3784525807 )	53.7865860060 (ExtendedPoll)
-	1690+284	(	2 0 4131.6214166274 2 5868.3783365570 )	53.7865828676 (ExtendedPoll)
-	1690+287	(	2 0 4131.6210066099 2 5868.3788719382 )	53.7865816357 (ExtendedPoll)
-	1690+293	(	2 0 4131.6209362583 2 5868.3789681750 )	53.7865813838 (ExtendedPoll)
-	1690+294	(	2 0 4131.6207252036 2 5868.3792568852 )	53.7865806279 (ExtendedPoll)
-	1690+298	(	2 0 4131.6206891940 2 5868.3793043828 )	53.7865805153 (ExtendedPoll)
-	1690+304	(	2 0 4131.6206796375 2 5868.3793158160 )	53.7865804962 (ExtendedPoll)
-	1690+308	(	2 0 4131.6206768768 2 5868.3793227362 )	53.7865804572 (ExtendedPoll)
-	1690+313	(	2 0 4131.6206782642 2 5868.3793214934 )	53.7865804561 (ExtendedPoll)
-	1690+315	(	2 0 4131.6206745081 2 5868.3793251876 )	53.7865804560 (ExtendedPoll)
-	1690+316	(	2 0 4131.6206632396 2 5868.3793362702 )	53.7865804559 (ExtendedPoll)
-	1690+317	(	2 0 4131.6206181660 2 5868.3793806004 )	53.7865804552 (ExtendedPoll)
-	1690+318	(	2 0 4131.6204378713 2 5868.3795579212 )	53.7865804528 (ExtendedPoll)
-	1690+319	(	2 0 4131.6197166927 2 5868.3802672046 )	53.7865804428 (ExtendedPoll)
-	1690+320	(	2 0 4131.6168319783 2 5868.3831043383 )	53.7865804032 (ExtendedPoll)
-	1690+321	(	2 0 4131.6052931206 2 5868.3944528729 )	53.7865802452 (ExtendedPoll)
-	1690+322	(	2 0 4131.5591376898 2 5868.4398470112 )	53.7865796204 (ExtendedPoll)
-	1690+323	(	2 0 4131.3745159668 2 5868.6214235646 )	53.7865772402 (ExtendedPoll)
-	1690+324	(	2 0 4130.6360290747 2 5869.3477297782 )	53.7865696199 (ExtendedPoll)
-	1690+325	(	2 0 4127.6820815062 2 5872.2529546326 )	53.7865695587 (ExtendedPoll)
-	1690+328	(	2 0 4127.6840140147 2 5872.2603352230 )	53.7864835442 (ExtendedPoll)
-	1690+329	(	2 0 4127.6898115401 2 5872.2824769939 )	53.7862255016 (ExtendedPoll)
-	1690+330	(	2 0 4127.6796235307 2 5872.3112438240 )	53.7860518834 (ExtendedPoll)
-	1690+338	(	2 0 4127.6784943469 2 5872.3148875688 )	53.7860284213 (ExtendedPoll)
-	1690+339	(	2 0 4127.6750287014 2 5872.3216844082 )	53.7859970553 (ExtendedPoll)
-	1690+345	(	2 0 4127.6738721701 2 5872.3232011194 )	53.7859935510 (ExtendedPoll)
-	1690+346	(	2 0 4127.6704025761 2 5872.3277512530 )	53.7859830384 (ExtendedPoll)
-	1690+352	(	2 0 4127.6704920471 2 5872.3287007212 )	53.7859734249 (ExtendedPoll)
-	1690+357	(	2 0 4127.6702519860 2 5872.3291127215 )	53.7859717972 (ExtendedPoll)
-	1690+358	(	2 0 4127.6695318024 2 5872.3303487226 )	53.7859669139 (ExtendedPoll)
-	1690+364	(	2 0 4127.6693723329 2 5872.3305259594 )	53.7859667262 (ExtendedPoll)
-	1690+365	(	2 0 4127.6688939242 2 5872.3310576698 )	53.7859661633 (ExtendedPoll)
-	1690+372	(	2 0 4127.6688751072 2 5872.3311142263 )	53.7859658109 (ExtendedPoll)
-	1690+374	(	2 0 4127.6689990935 2 5872.3309999936 )	53.7859657384 (ExtendedPoll)
-	1690+382	(	2 0 4127.6690021165 2 5872.3309978166 )	53.7859657310 (ExtendedPoll)
-	2080+20	(	2 0 4999.9878997345 2 5000.0092959702 )	55.9016794952 (ExtendedPoll)
-	2080+21	(	2 0 4999.9515989379 2 5000.0371838810 )	55.9016196708 (ExtendedPoll)
-	2080+22	(	2 0 4999.8063957515 2 5000.1487355238 )	55.9013804121 (ExtendedPoll)
-	2080+23	(	2 0 4999.2255830062 2 5000.5949420954 )	55.9004239959 (ExtendedPoll)
-	2080+24	(	2 0 4996.9023320246 2 5002.3797683814 )	55.8966082342 (ExtendedPoll)
-	2080+25	(	2 0 4987.6093280984 2 5009.5190735258 )	55.8815039246 (ExtendedPoll)
-	2080+26	(	2 0 4950.4373123937 2 5038.0762941031 )	55.8236448341 (ExtendedPoll)
-	2080+27	(	2 0 4801.7492495748 2 5152.3051764124 )	55.6343152023 (ExtendedPoll)
-	2080+28	(	2 0 4206.9969982993 2 5609.2207056496 )	55.6253373563 (ExtendedPoll)
-	2080+32	(	2 0 4217.9971862258 2 5610.1214654550 )	55.5187948731 (ExtendedPoll)
-	2080+33	(	2 0 4250.9977500050 2 5612.8237448711 )	55.2000072940 (ExtendedPoll)
-	2080+34	(	2 0 4279.8220637775 2 5600.5952481192 )	55.0710067569 (ExtendedPoll)
-	2080+35	(	2 0 4366.2950050949 2 5563.9097578633 )	54.6951789859 (ExtendedPoll)
-	2080+39	(	2 0 4393.3723907599 2 5548.1874048965 )	54.6249740689 (ExtendedPoll)
-	2080+40	(	2 0 4474.6045477550 2 5501.0203459961 )	54.4266469861 (ExtendedPoll)
-	2080+42	(	2 0 4525.2654628702 2 5464.3348557403 )	54.3900963042 (ExtendedPoll)
-	2080+48	(	2 0 4514.4563452056 2 5483.6602479286 )	54.2742359116 (ExtendedPoll)
-	2080+49	(	2 0 4491.7462798091 2 5505.0601172445 )	54.2385084897 (ExtendedPoll)
-	2080+50	(	2 0 4423.6160836196 2 5569.2597251923 )	54.1460338788 (ExtendedPoll)
-	2080+51	(	2 0 4151.0952988618 2 5826.0581569833 )	54.0054730693 (ExtendedPoll)
-	2080+57	(	2 0 4119.6505929283 2 5880.2129283134 )	53.7862527117 (ExtendedPoll)
-	2080+75	(	2 0 4119.5665931846 2 5880.3014995623 )	53.7862021958 (ExtendedPoll)
-	2080+76	(	2 0 4119.3145939537 2 5880.5672133090 )	53.7860509080 (ExtendedPoll)
-	2080+77	(	2 0 4118.3065970302 2 5881.6300682960 )	53.7854496575 (ExtendedPoll)
-	2080+88	(	2 0 4118.3108711544 2 5881.6602849630 )	53.7851316932 (ExtendedPoll)
-	2080+96	(	2 0 4118.3198847115 2 5881.6662155602 )	53.7849945777 (ExtendedPoll)
-	2080+97	(	2 0 4118.3348277986 2 5881.6631276284 )	53.7848865134 (ExtendedPoll)
-	2080+99	(	2 0 4118.3462668702 2 5881.6530292707 )	53.7848751796 (ExtendedPoll)
-	2080+108	(	2 0 4118.3455932557 2 5881.6537043543 )	53.7848751047 (ExtendedPoll)
-	2080+109	(	2 0 4118.3435724122 2 5881.6557296052 )	53.7848748801 (ExtendedPoll)
-	2080+110	(	2 0 4118.3354890381 2 5881.6638306090 )	53.7848739818 (ExtendedPoll)
-	2080+111	(	2 0 4118.3031555418 2 5881.6962346240 )	53.7848703922 (ExtendedPoll)
-	2080+112	(	2 0 4118.1738215565 2 5881.8258506839 )	53.7848560937 (ExtendedPoll)
-	2080+122	(	2 0 4118.1735085463 2 5881.8262104036 )	53.7848556344 (ExtendedPoll)
-	2080+123	(	2 0 4118.1725695157 2 5881.8272895629 )	53.7848542566 (ExtendedPoll)
-	2080+132	(	2 0 4118.1726545887 2 5881.8272060557 )	53.7848542498 (ExtendedPoll)
-	2080+133	(	2 0 4118.1729098077 2 5881.8269555344 )	53.7848542294 (ExtendedPoll)
-	2080+134	(	2 0 4118.1739306837 2 5881.8259534489 )	53.7848541479 (ExtendedPoll)
-	2080+135	(	2 0 4118.1780141879 2 5881.8219451070 )	53.7848538220 (ExtendedPoll)
-	2080+151	(	2 0 4118.1780093963 2 5881.8219592167 )	53.7848537356 (ExtendedPoll)
-	2080+152	(	2 0 4118.1779950216 2 5881.8220015460 )	53.7848534763 (ExtendedPoll)
-	2080+159	(	2 0 4118.1779947385 2 5881.8220052606 )	53.7848534446 (ExtendedPoll)
-	2251+6	(	2 0 4168.4622208673 2 5740.6975175468 )	54.6654457702 (ExtendedPoll)
-	2251+7	(	2 0 3937.8677106876 2 6034.1814395937 )	54.1025876908 (ExtendedPoll)
-	2251+15	(	2 0 3968.8756845943 2 6029.8141193251 )	53.8471893590 (ExtendedPoll)
-	2251+23	(	2 0 3966.3440036262 2 6032.7893562581 )	53.8453293272 (ExtendedPoll)
-	2251+29	(	2 0 3967.2852805629 2 6032.5287671287 )	53.8387026417 (ExtendedPoll)
-	2251+32	(	2 0 3966.9613567598 2 6032.8941676795 )	53.8385991104 (ExtendedPoll)
-	2251+33	(	2 0 3965.9895853505 2 6033.9903693319 )	53.8382928991 (ExtendedPoll)
-	2251+45	(	2 0 3966.0039197226 2 6033.9851390276 )	53.8382028409 (ExtendedPoll)
-	2251+46	(	2 0 3966.0291479677 2 6033.9679675607 )	53.8381131770 (ExtendedPoll)
-	2251+52	(	2 0 3966.0378553973 2 6033.9615960721 )	53.8380860741 (ExtendedPoll)
-	2251+64	(	2 0 3966.0380469160 2 6033.9618735742 )	53.8380818691 (ExtendedPoll)
-	2251+69	(	2 0 3966.0381004053 2 6033.9618472758 )	53.8380815916 (ExtendedPoll)
-	2251+74	(	2 0 3966.0381302064 2 6033.9618470067 )	53.8380813128 (ExtendedPoll)
-	2251+79	(	2 0 3966.0381451069 2 6033.9618471499 )	53.8380811710 (ExtendedPoll)
-	2251+84	(	2 0 3966.0381513080 2 6033.9618430199 )	53.8380811481 (ExtendedPoll)
-	2251+86	(	2 0 3966.0381381930 2 6033.9618595149 )	53.8380811293 (ExtendedPoll)
-	2251+91	(	2 0 3966.0381418784 2 6033.9618557502 )	53.8380811271 (ExtendedPoll)
-	2251+92	(	2 0 3966.0381529347 2 6033.9618444560 )	53.8380811204 (ExtendedPoll)
-	2251+93	(	2 0 3966.0381971599 2 6033.9617992793 )	53.8380810935 (ExtendedPoll)
-	2251+94	(	2 0 3966.0383740607 2 6033.9616185725 )	53.8380809858 (ExtendedPoll)
-	2251+95	(	2 0 3966.0390816638 2 6033.9608957451 )	53.8380805552 (ExtendedPoll)
-	2251+96	(	2 0 3966.0419120761 2 6033.9580044356 )	53.8380788327 (ExtendedPoll)
-	2251+97	(	2 0 3966.0532337255 2 6033.9464391976 )	53.8380719433 (ExtendedPoll)
-	2251+98	(	2 0 3966.0985203229 2 6033.9001782457 )	53.8380443936 (ExtendedPoll)
-	2251+99	(	2 0 3966.2796667126 2 6033.7151344380 )	53.8379343190 (ExtendedPoll)
-	2251+100	(	2 0 3967.0042522715 2 6032.9749592074 )	53.8374960138 (ExtendedPoll)
-	2251+101	(	2 0 3969.9025945070 2 6030.0142582847 )	53.8357746693 (ExtendedPoll)
-	2251+102	(	2 0 3981.4959634492 2 6018.1714545940 )	53.8293988351 (ExtendedPoll)
-	2251+103	(	2 0 4027.8694392178 2 5970.8002398312 )	53.8120165816 (ExtendedPoll)
-	2251+105	(	2 0 4027.8996279793 2 5970.7957732839 )	53.8117751288 (ExtendedPoll)
-	2251+106	(	2 0 4027.9901942637 2 5970.7823736422 )	53.8110507797 (ExtendedPoll)
-	2251+107	(	2 0 4028.3524594017 2 5970.7287750751 )	53.8081535202 (ExtendedPoll)
-	2251+108	(	2 0 4028.5782890972 2 5970.8215646372 )	53.8052259801 (ExtendedPoll)
-	2251+109	(	2 0 4029.0659874104 2 5970.8447020517 )	53.8004791353 (ExtendedPoll)
-	2251+117	(	2 0 4029.1224148462 2 5970.8679660822 )	53.7997469853 (ExtendedPoll)
-	2251+125	(	2 0 4029.1289146169 2 5970.8639709871 )	53.7997219690 (ExtendedPoll)
-	2251+129	(	2 0 4029.1327113864 2 5970.8636015775 )	53.7996898997 (ExtendedPoll)
-	2251+134	(	2 0 4029.1345329350 2 5970.8641672091 )	53.7996679124 (ExtendedPoll)
-	2251+136	(	2 0 4029.1361890843 2 5970.8632210851 )	53.7996608999 (ExtendedPoll)
-	2251+142	(	2 0 4029.1366590260 2 5970.8631402857 )	53.7996572423 (ExtendedPoll)
-	2251+146	(	2 0 4029.1368554851 2 5970.8630052034 )	53.7996566135 (ExtendedPoll)
-	2251+147	(	2 0 4029.1372198865 2 5970.8626976562 )	53.7996559536 (ExtendedPoll)
-	2251+158	(	2 0 4029.1372434032 2 5970.8627159631 )	53.7996555720 (ExtendedPoll)
-	2251+159	(	2 0 4029.1372160758 2 5970.8627689341 )	53.7996553557 (ExtendedPoll)
-	2251+165	(	2 0 4029.1372107574 2 5970.8627828538 )	53.7996552815 (ExtendedPoll)
-	2251+168	(	2 0 4029.1372020883 2 5970.8627949737 )	53.7996552545 (ExtendedPoll)
-	2251+172	(	2 0 4029.1371973626 2 5970.8628007338 )	53.7996552473 (ExtendedPoll)
-	2251+179	(	2 0 4029.1371969852 2 5970.8628025579 )	53.7996552346 (ExtendedPoll)
-	2251+181	(	2 0 4029.1372006890 2 5970.8627988111 )	53.7996552334 (ExtendedPoll)
-	2251+182	(	2 0 4029.1372118001 2 5970.8627875709 )	53.7996552298 (ExtendedPoll)
-	2251+183	(	2 0 4029.1372562449 2 5970.8627426102 )	53.7996552156 (ExtendedPoll)
-	2251+184	(	2 0 4029.1374340239 2 5970.8625627674 )	53.7996551585 (ExtendedPoll)
-	2251+185	(	2 0 4029.1381451401 2 5970.8618433959 )	53.7996549302 (ExtendedPoll)
-	2251+186	(	2 0 4029.1409896047 2 5970.8589659099 )	53.7996540170 (ExtendedPoll)
-	2251+187	(	2 0 4029.1523674632 2 5970.8474559659 )	53.7996503647 (ExtendedPoll)
-	2251+188	(	2 0 4029.1978788972 2 5970.8014161900 )	53.7996357631 (ExtendedPoll)
-	2251+189	(	2 0 4029.3799246331 2 5970.6172570866 )	53.7995774796 (ExtendedPoll)
-	2251+190	(	2 0 4030.1081075767 2 5969.8806206727 )	53.7993463077 (ExtendedPoll)
-	2251+191	(	2 0 4033.0208393511 2 5966.9340750174 )	53.7984530101 (ExtendedPoll)
-	2251+192	(	2 0 4044.6717664489 2 5955.1478923961 )	53.7953815270 (ExtendedPoll)
-	2251+193	(	2 0 4091.2754748399 2 5908.0031619108 )	53.7910882360 (ExtendedPoll)
-	2251+196	(	2 0 4091.3024169829 2 5908.0174949293 )	53.7907097823 (ExtendedPoll)
-	2251+197	(	2 0 4091.3832434122 2 5908.0604939849 )	53.7895744291 (ExtendedPoll)
-	2251+198	(	2 0 4091.7065491291 2 5908.2324902073 )	53.7850331320 (ExtendedPoll)
-	2251+201	(	2 0 4091.7062625770 2 5908.2935241345 )	53.7844786297 (ExtendedPoll)
-	2251+218	(	2 0 4091.7061814853 2 5908.2937483387 )	53.7844773284 (ExtendedPoll)
-	2251+225	(	2 0 4091.7061774429 2 5908.2938078061 )	53.7844768227 (ExtendedPoll)
-	2251+228	(	2 0 4091.7061404988 2 5908.2938545806 )	53.7844767353 (ExtendedPoll)
-	2251+237	(	2 0 4091.7061392073 2 5908.2938580748 )	53.7844767152 (ExtendedPoll)
-	2251+242	(	2 0 4091.7061402086 2 5908.2938596455 )	53.7844766917 (ExtendedPoll)
-	2251+251	(	2 0 4091.7061402086 2 5908.2938597496 )	53.7844766907 (ExtendedPoll)
-	2507+6	(	2 0 4987.7715032480 2 5009.7172875975 )	55.8778410034 (ExtendedPoll)
-	2507+7	(	2 0 4951.0860129922 2 5038.8691503901 )	55.8090330212 (ExtendedPoll)
-	2507+8	(	2 0 4804.3440519688 2 5155.4766015605 )	55.5765193455 (ExtendedPoll)
-	2507+9	(	2 0 4217.3762078751 2 5621.9064062421 )	55.4051303015 (ExtendedPoll)
-	2507+11	(	2 0 4105.5728090001 2 5845.5132039921 )	54.2371769988 (ExtendedPoll)
-	2507+17	(	2 0 4084.6096717110 2 5904.9087596444 )	53.8806341533 (ExtendedPoll)
-	2507+25	(	2 0 4086.4930785768 2 5912.4969786111 )	53.7940773323 (ExtendedPoll)
-	2507+28	(	2 0 4089.6866815232 2 5910.2450790976 )	53.7852355401 (ExtendedPoll)
-	2507+40	(	2 0 4089.7473972443 2 5910.2388432578 )	53.7847342099 (ExtendedPoll)
-	2507+48	(	2 0 4089.7542955796 2 5910.2355843266 )	53.7847005125 (ExtendedPoll)
-	2507+49	(	2 0 4089.7673972155 2 5910.2277626627 )	53.7846513996 (ExtendedPoll)
-	2507+51	(	2 0 4089.7801055712 2 5910.2193169774 )	53.7846115945 (ExtendedPoll)
-	2507+62	(	2 0 4089.7805040628 2 5910.2190551032 )	53.7846103195 (ExtendedPoll)
-	2507+63	(	2 0 4089.7816995375 2 5910.2182694805 )	53.7846064942 (ExtendedPoll)
-	2507+73	(	2 0 4089.7816945523 2 5910.2182988629 )	53.7846062720 (ExtendedPoll)
-	2507+80	(	2 0 4089.7816938911 2 5910.2183025290 )	53.7846062447 (ExtendedPoll)
-	2507+83	(	2 0 4089.7816931323 2 5910.2183061762 )	53.7846062184 (ExtendedPoll)
-	2507+86	(	2 0 4089.7816946030 2 5910.2183050332 )	53.7846062153 (ExtendedPoll)
-	2507+97	(	2 0 4089.7816947071 2 5910.2183050332 )	53.7846062143 (ExtendedPoll)
-	2609+6	(	2 0 4993.6127941072 2 5004.5037990269 )	55.8961392637 (ExtendedPoll)
-	2609+7	(	2 0 4974.4511764290 2 5018.0151961078 )	55.8801113087 (ExtendedPoll)
-	2609+8	(	2 0 4897.8047057158 2 5072.0607844311 )	55.8259328921 (ExtendedPoll)
-	2609+9	(	2 0 4591.2188228633 2 5288.2431377246 )	55.7773330381 (ExtendedPoll)
-	2609+12	(	2 0 4584.2311104336 2 5414.0219614589 )	54.4414663757 (ExtendedPoll)
-	2609+22	(	2 0 4587.3564740008 2 5411.6745268146 )	54.4410956907 (ExtendedPoll)
-	2609+29	(	2 0 4587.5587397857 2 5412.1189357716 )	54.4345618898 (ExtendedPoll)
-	2609+33	(	2 0 4587.4405737045 2 5412.3325570157 )	54.4332122013 (ExtendedPoll)
-	2609+34	(	2 0 4587.0527821074 2 5412.6292916912 )	54.4331973113 (ExtendedPoll)
-	2609+35	(	2 0 4585.8894073161 2 5413.5194957176 )	54.4331558220 (ExtendedPoll)
-	2609+36	(	2 0 4581.2359081511 2 5417.0803118233 )	54.4330376116 (ExtendedPoll)
-	2609+38	(	2 0 4579.3525012852 2 5420.4991047210 )	54.4114704020 (ExtendedPoll)
-	2609+39	(	2 0 4573.3201401643 2 5425.4669315265 )	54.4076771370 (ExtendedPoll)
-	2609+40	(	2 0 4555.2230568015 2 5440.3704119429 )	54.3971432812 (ExtendedPoll)
-	2609+41	(	2 0 4482.8347233502 2 5499.9843336087 )	54.3678394409 (ExtendedPoll)
-	2609+49	(	2 0 4485.3459325046 2 5507.3814823136 )	54.2681454161 (ExtendedPoll)
-	2609+50	(	2 0 4475.1919128802 2 5519.2824300454 )	54.2285251876 (ExtendedPoll)
-	2609+51	(	2 0 4444.7298540071 2 5554.9852732408 )	54.1136470777 (ExtendedPoll)
-	2609+58	(	2 0 4443.9800738281 2 5555.6109430488 )	54.1135341068 (ExtendedPoll)
-	2609+59	(	2 0 4441.7307332914 2 5557.4879524728 )	54.1132091099 (ExtendedPoll)
-	2609+60	(	2 0 4432.7333711444 2 5564.9959901689 )	54.1121181220 (ExtendedPoll)
-	2609+61	(	2 0 4396.7439225563 2 5595.0281409531 )	54.1111148301 (ExtendedPoll)
-	2609+63	(	2 0 4386.2623539118 2 5606.6015396648 )	54.0828747897 (ExtendedPoll)
-	2609+64	(	2 0 4354.8176479782 2 5641.3217357998 )	54.0021675011 (ExtendedPoll)
-	2609+67	(	2 0 4332.5443146086 2 5663.1583371426 )	53.9763377152 (ExtendedPoll)
-	2609+68	(	2 0 4265.7243144997 2 5728.6681411709 )	53.9145504521 (ExtendedPoll)
-	2609+69	(	2 0 3998.4443140642 2 5990.7073572841 )	53.9107416673 (ExtendedPoll)
-	2609+77	(	2 0 3977.9179088020 2 6014.2908867343 )	53.8968485442 (ExtendedPoll)
-	2609+85	(	2 0 3977.6108315956 2 6018.1873552864 )	53.8658100136 (ExtendedPoll)
-	2609+87	(	2 0 3985.4720080790 2 6010.4353618097 )	53.8594585168 (ExtendedPoll)
-	2609+88	(	2 0 4009.0555375292 2 5987.1793813797 )	53.8425419841 (ExtendedPoll)
-	2609+89	(	2 0 4103.3896553299 2 5894.1554596595 )	53.8066758321 (ExtendedPoll)
-	2609+98	(	2 0 4105.0239884617 2 5893.0858073906 )	53.8015202481 (ExtendedPoll)
-	2609+99	(	2 0 4109.9269878569 2 5889.8768505839 )	53.7861093451 (ExtendedPoll)
-	2609+108	(	2 0 4110.1419152454 2 5889.7610302313 )	53.7852071379 (ExtendedPoll)
-	2609+116	(	2 0 4110.1058896513 2 5889.8103005292 )	53.7850837032 (ExtendedPoll)
-	2609+117	(	2 0 4109.9978128689 2 5889.9581114227 )	53.7847134692 (ExtendedPoll)
-	2609+120	(	2 0 4110.1308929863 2 5889.8481353998 )	53.7845067680 (ExtendedPoll)
-	2609+123	(	2 0 4110.2185046189 2 5889.7631360559 )	53.7844866226 (ExtendedPoll)
-	2609+124	(	2 0 4110.4813395169 2 5889.5081380242 )	53.7844264399 (ExtendedPoll)
-	2609+134	(	2 0 4110.4929230099 2 5889.4982056417 )	53.7844117835 (ExtendedPoll)
-	2609+135	(	2 0 4110.5276734889 2 5889.4684084945 )	53.7843678178 (ExtendedPoll)
-	2609+142	(	2 0 4110.5308528491 2 5889.4663005158 )	53.7843581081 (ExtendedPoll)
-	2609+143	(	2 0 4110.5369402846 2 5889.4617014955 )	53.7843446963 (ExtendedPoll)
-	2609+148	(	2 0 4110.5385864786 2 5889.4607381551 )	53.7843384902 (ExtendedPoll)
-	2609+154	(	2 0 4110.5389368624 2 5889.4610615818 )	53.7843323072 (ExtendedPoll)
-	2609+174	(	2 0 4110.5389372789 2 5889.4610615818 )	53.7843323034 (ExtendedPoll)
-	2609+179	(	2 0 4110.5389372789 2 5889.4610619983 )	53.7843322995 (ExtendedPoll)
-	2609+185	(	2 0 4110.5389372789 2 5889.4610621024 )	53.7843322986 (ExtendedPoll)
-	2609+186	(	2 0 4110.5389372789 2 5889.4610624148 )	53.7843322957 (ExtendedPoll)
-	2609+193	(	2 0 4110.5389373050 2 5889.4610624148 )	53.7843322955 (ExtendedPoll)
-	2609+194	(	2 0 4110.5389373831 2 5889.4610624148 )	53.7843322947 (ExtendedPoll)
-	2808+6	(	2 0 4329.1796067501 2 5670.8203932499 )	53.9289318169 (ExtendedPoll)
-	2867+10	(	2 0 4992.1115277649 2 5007.7246977250 )	55.8685413615 (ExtendedPoll)
-	2867+11	(	2 0 4968.4461110597 2 5030.8987909000 )	55.7705699043 (ExtendedPoll)
-	2867+12	(	2 0 4873.7844442388 2 5123.5951636001 )	55.4016911655 (ExtendedPoll)
-	2867+13	(	2 0 4495.1377769551 2 5494.3806544003 )	54.3231819620 (ExtendedPoll)
-	2867+15	(	2 0 4411.2852277989 2 5585.2209159863 )	54.0868469342 (ExtendedPoll)
-	2867+22	(	2 0 4407.4365268122 2 5592.0175581542 )	54.0499159225 (ExtendedPoll)
-	2867+28	(	2 0 4405.3364599175 2 5593.8105478426 )	54.0495510124 (ExtendedPoll)
-	2867+29	(	2 0 4399.0362592332 2 5599.1895169077 )	54.0485700853 (ExtendedPoll)
-	2867+30	(	2 0 4373.8354564960 2 5620.7053931683 )	54.0463593230 (ExtendedPoll)
-	2867+33	(	2 0 4369.7137979926 2 5627.3382608261 )	54.0145749170 (ExtendedPoll)
-	2867+40	(	2 0 4368.6287918634 2 5628.9623580510 )	54.0074781800 (ExtendedPoll)
-	2867+41	(	2 0 4365.3737734757 2 5633.8346497256 )	53.9862560504 (ExtendedPoll)
-	2867+43	(	2 0 4362.6919658733 2 5636.6802318381 )	53.9806946516 (ExtendedPoll)
-	2867+44	(	2 0 4354.6465430661 2 5645.2169781755 )	53.9642607181 (ExtendedPoll)
-	2867+50	(	2 0 4354.0247117231 2 5645.9701703234 )	53.9620624682 (ExtendedPoll)
-	2867+61	(	2 0 4354.0368388529 2 5645.9609094433 )	53.9620504600 (ExtendedPoll)
-	2867+65	(	2 0 4354.0401585606 2 5645.9590302273 )	53.9620405451 (ExtendedPoll)
-	2867+71	(	2 0 4354.0409392116 2 5645.9584824325 )	53.9620392835 (ExtendedPoll)
-	2867+74	(	2 0 4354.0405359427 2 5645.9593466482 )	53.9620340616 (ExtendedPoll)
-	2867+87	(	2 0 4354.0405617934 2 5645.9593318187 )	53.9620339864 (ExtendedPoll)
-	2867+88	(	2 0 4354.0406393458 2 5645.9592873300 )	53.9620337607 (ExtendedPoll)
-	2867+89	(	2 0 4354.0407417896 2 5645.9592263700 )	53.9620334847 (ExtendedPoll)
-	2867+98	(	2 0 4354.0407563620 2 5645.9592294825 )	53.9620333264 (ExtendedPoll)
-	2867+99	(	2 0 4354.0407811713 2 5645.9592129695 )	53.9620332772 (ExtendedPoll)
-	2867+106	(	2 0 4354.0407786145 2 5645.9592156788 )	53.9620332721 (ExtendedPoll)
-	2867+107	(	2 0 4354.0407709439 2 5645.9592238067 )	53.9620332568 (ExtendedPoll)
-	2867+108	(	2 0 4354.0407402615 2 5645.9592563181 )	53.9620331954 (ExtendedPoll)
-	2867+114	(	2 0 4354.0407434536 2 5645.9592543977 )	53.9620331870 (ExtendedPoll)
-	2867+122	(	2 0 4354.0407434536 2 5645.9592560637 )	53.9620331701 (ExtendedPoll)
-	2867+123	(	2 0 4354.0407422389 2 5645.9592574757 )	53.9620331665 (ExtendedPoll)
-	3058+8	(	2 0 4991.1561764562 2 5006.6055719062 )	55.8895337846 (ExtendedPoll)
-	3058+9	(	2 0 4964.6247058247 2 5026.4222876248 )	55.8543769246 (ExtendedPoll)
-	3058+10	(	2 0 4858.4988232988 2 5105.6891504990 )	55.7342678543 (ExtendedPoll)
-	3058+11	(	2 0 4433.9952931954 2 5422.7566019961 )	55.6083992097 (ExtendedPoll)
-	3058+16	(	2 0 4468.9338553438 2 5473.4175171113 )	54.7683907188 (ExtendedPoll)
-	3058+17	(	2 0 4371.1058813282 2 5557.2700662675 )	54.7224471575 (ExtendedPoll)
-	3058+22	(	2 0 4374.5997375430 2 5620.1594781347 )	54.0452990385 (ExtendedPoll)
-	3058+26	(	2 0 4353.6366002540 2 5643.3062755580 )	53.9923716603 (ExtendedPoll)
-	3058+34	(	2 0 4352.3741717388 2 5647.0048499105 )	53.9659824019 (ExtendedPoll)
-	3058+41	(	2 0 4352.7757178358 2 5646.7270943123 )	53.9652910126 (ExtendedPoll)
-	3058+42	(	2 0 4353.9803561267 2 5645.8938275179 )	53.9632201609 (ExtendedPoll)
-	3058+50	(	2 0 4353.8820221150 2 5646.1172848288 )	53.9618183016 (ExtendedPoll)
-	3058+67	(	2 0 4353.8828862995 2 5646.1168814928 )	53.9618148524 (ExtendedPoll)
-	3058+70	(	2 0 4353.8819301637 2 5646.1178326989 )	53.9618135661 (ExtendedPoll)
-	3058+71	(	2 0 4353.8790617562 2 5646.1206863173 )	53.9618097072 (ExtendedPoll)
-	3058+72	(	2 0 4353.8675881265 2 5646.1321007910 )	53.9617942721 (ExtendedPoll)
-	3058+73	(	2 0 4353.8216936077 2 5646.1777586857 )	53.9617325386 (ExtendedPoll)
-	3058+74	(	2 0 4353.6381155322 2 5646.3603902646 )	53.9614857168 (ExtendedPoll)
-	3058+75	(	2 0 4352.9038032305 2 5647.0909165803 )	53.9605002241 (ExtendedPoll)
-	3058+76	(	2 0 4349.9665540238 2 5650.0130218428 )	53.9565869794 (ExtendedPoll)
-	3058+77	(	2 0 4338.2175571967 2 5661.7014428928 )	53.9413943430 (ExtendedPoll)
-	3058+78	(	2 0 4291.2215698885 2 5708.4551270929 )	53.8880355778 (ExtendedPoll)
-	3058+79	(	2 0 4103.2376206554 2 5895.4698638933 )	53.7960048025 (ExtendedPoll)
-	3058+83	(	2 0 4103.0824826918 2 5895.9328254315 )	53.7931789654 (ExtendedPoll)
-	3058+84	(	2 0 4102.6170688008 2 5897.3217100462 )	53.7847063488 (ExtendedPoll)
-	3058+88	(	2 0 4102.3017815441 2 5897.6944676551 )	53.7841793274 (ExtendedPoll)
-	3058+104	(	2 0 4102.3028217662 2 5897.6960663778 )	53.7841551305 (ExtendedPoll)
-	3058+106	(	2 0 4102.3045951993 2 5897.6953642985 )	53.7841453060 (ExtendedPoll)
-	3058+116	(	2 0 4102.3046242597 2 5897.6953709067 )	53.7841449789 (ExtendedPoll)
-	3058+126	(	2 0 4102.3046246516 2 5897.6953727277 )	53.7841449586 (ExtendedPoll)
-	3058+128	(	2 0 4102.3046253455 2 5897.6953744562 )	53.7841449364 (ExtendedPoll)
-	3058+140	(	2 0 4102.3046253471 2 5897.6953744562 )	53.7841449364 (ExtendedPoll)
-	3058+141	(	2 0 4102.3046253520 2 5897.6953744562 )	53.7841449364 (ExtendedPoll)
-	3058+142	(	2 0 4102.3046253715 2 5897.6953744562 )	53.7841449362 (ExtendedPoll)
-	3058+143	(	2 0 4102.3046254496 2 5897.6953744562 )	53.7841449355 (ExtendedPoll)
-	3211+9	(	2 0 4999.2843395107 2 5000.6644809549 )	55.8991235044 (ExtendedPoll)
-	3211+10	(	2 0 4997.1373580427 2 5002.6579238197 )	55.8914071579 (ExtendedPoll)
-	3211+11	(	2 0 4988.5494321709 2 5010.6316952788 )	55.8607138749 (ExtendedPoll)
-	3211+12	(	2 0 4954.1977286835 2 5042.5267811150 )	55.7407142386 (ExtendedPoll)
-	3211+13	(	2 0 4816.7909147341 2 5170.1071244602 )	55.3063592103 (ExtendedPoll)
-	3211+14	(	2 0 4267.1636589366 2 5680.4284978408 )	54.3782156485 (ExtendedPoll)
-	3211+16	(	2 0 4258.4290183995 2 5741.5709816005 )	53.8530873348 (ExtendedPoll)
-	3275+16	(	2 0 4999.4544048385 2 5000.4231907750 )	55.9007514521 (ExtendedPoll)
-	3275+17	(	2 0 4997.8176193541 2 5001.6927631002 )	55.8979127990 (ExtendedPoll)
-	3275+18	(	2 0 4991.2704774163 2 5006.7710524007 )	55.8866378337 (ExtendedPoll)
-	3275+19	(	2 0 4965.0819096653 2 5027.0842096030 )	55.8428188421 (ExtendedPoll)
-	3275+20	(	2 0 4860.3276386613 2 5108.3368384118 )	55.6884538793 (ExtendedPoll)
-	3275+21	(	2 0 4441.3105546452 2 5433.3473536473 )	55.4321933111 (ExtendedPoll)
-	3275+24	(	2 0 4440.4370905915 2 5464.7920595809 )	55.1023491348 (ExtendedPoll)
-	3275+25	(	2 0 4437.8166984304 2 5559.1261773817 )	54.1296401397 (ExtendedPoll)
-	3275+28	(	2 0 4394.1434957448 2 5604.5463081746 )	54.0358312283 (ExtendedPoll)
-	3275+31	(	2 0 4348.7233649518 2 5648.2195108602 )	53.9855229289 (ExtendedPoll)
-	3275+32	(	2 0 4212.4629725730 2 5779.2391189168 )	53.8982210340 (ExtendedPoll)
-	3275+39	(	2 0 4246.9648026945 2 5751.7250012249 )	53.8561122313 (ExtendedPoll)
-	3275+44	(	2 0 4253.1063468222 2 5746.8663574261 )	53.8487569023 (ExtendedPoll)
-	3275+54	(	2 0 4253.0200213419 2 5746.9526629144 )	53.8486838339 (ExtendedPoll)
-	3275+55	(	2 0 4252.7610449010 2 5747.2115793792 )	53.8484648755 (ExtendedPoll)
-	3275+56	(	2 0 4251.7251391376 2 5748.2472452386 )	53.8475927460 (ExtendedPoll)
-	3275+57	(	2 0 4247.5815160840 2 5752.3899086759 )	53.8441635235 (ExtendedPoll)
-	3275+58	(	2 0 4231.0070238695 2 5768.9605624254 )	53.8313972696 (ExtendedPoll)
-	3275+59	(	2 0 4164.7090550115 2 5835.2431774231 )	53.7956619398 (ExtendedPoll)
-	3275+72	(	2 0 4164.7639497269 2 5835.2164964256 )	53.7954160381 (ExtendedPoll)
-	3275+76	(	2 0 4164.7917332002 2 5835.2038710575 )	53.7952833211 (ExtendedPoll)
-	3275+77	(	2 0 4164.8360404827 2 5835.1618928437 )	53.7952771546 (ExtendedPoll)
-	3275+85	(	2 0 4164.8422068711 2 5835.1574002652 )	53.7952636014 (ExtendedPoll)
-	3275+97	(	2 0 4164.8424175700 2 5835.1572886885 )	53.7952627439 (ExtendedPoll)
-	3275+102	(	2 0 4164.8423842792 2 5835.1574031550 )	53.7952619685 (ExtendedPoll)
-	3275+109	(	2 0 4164.8424622828 2 5835.1574351058 )	53.7952609619 (ExtendedPoll)
-	3275+110	(	2 0 4164.8424186334 2 5835.1575460363 )	53.7952603135 (ExtendedPoll)
-	3275+117	(	2 0 4164.8424468760 2 5835.1575365215 )	53.7952601474 (ExtendedPoll)
-	3275+121	(	2 0 4164.8424209888 2 5835.1575697812 )	53.7952600688 (ExtendedPoll)
-	3275+129	(	2 0 4164.8424239711 2 5835.1575675489 )	53.7952600628 (ExtendedPoll)
-	3275+130	(	2 0 4164.8424329181 2 5835.1575608518 )	53.7952600448 (ExtendedPoll)
-	3275+135	(	2 0 4164.8424361867 2 5835.1575626390 )	53.7952599984 (ExtendedPoll)
-	3275+138	(	2 0 4164.8424402468 2 5835.1575592816 )	53.7952599933 (ExtendedPoll)
-	3275+145	(	2 0 4164.8424410483 2 5835.1575588074 )	53.7952599905 (ExtendedPoll)
-	3275+147	(	2 0 4164.8424392431 2 5835.1575607257 )	53.7952599888 (ExtendedPoll)
-	3436	(	3 0 3333.3333333333 2 3333.3333333333 1 3333.3333333333 )	47.1682905221
+	1689+27	(	2 0 4999.9918793150 2 5000.0071042165 )	55.9016755069 (ExtendedPoll)
+	1689+28	(	2 0 4999.9675172600 2 5000.0284168659 )	55.9016037165 (ExtendedPoll)
+	1689+29	(	2 0 4999.8700690400 2 5000.1136674635 )	55.9013165752 (ExtendedPoll)
+	1689+30	(	2 0 4999.4802761598 2 5000.4546698539 )	55.9001683374 (ExtendedPoll)
+	1689+31	(	2 0 4997.9211046392 2 5001.8186794156 )	55.8955806263 (ExtendedPoll)
+	1689+32	(	2 0 4991.6844185568 2 5007.2747176624 )	55.8773137258 (ExtendedPoll)
+	1689+33	(	2 0 4966.7376742271 2 5029.0988706497 )	55.8055960661 (ExtendedPoll)
+	1689+34	(	2 0 4866.9506969084 2 5116.3954825988 )	55.5407618647 (ExtendedPoll)
+	1689+35	(	2 0 4467.8027876336 2 5465.5819303951 )	54.8617064546 (ExtendedPoll)
+	1689+37	(	2 0 4466.8269645111 2 5469.3623920026 )	54.8295561915 (ExtendedPoll)
+	1689+38	(	2 0 4463.8994951436 2 5480.7037768250 )	54.7333779337 (ExtendedPoll)
+	1689+39	(	2 0 4452.1896176735 2 5526.0693161146 )	54.3527873521 (ExtendedPoll)
+	1689+40	(	2 0 4432.0999444382 2 5550.0895775916 )	54.2727755505 (ExtendedPoll)
+	1689+41	(	2 0 4371.8309247321 2 5622.1503620228 )	54.0490159101 (ExtendedPoll)
+	1689+48	(	2 0 4367.1633511951 2 5628.4010891571 )	54.0259049915 (ExtendedPoll)
+	1689+52	(	2 0 4367.4363087119 2 5632.2975577092 )	53.9839463746 (ExtendedPoll)
+	1689+64	(	2 0 4367.5173563027 2 5632.3888412069 )	53.9823156833 (ExtendedPoll)
+	1689+67	(	2 0 4367.5750698909 2 5632.4087032645 )	53.9816128497 (ExtendedPoll)
+	1689+77	(	2 0 4367.5769053809 2 5632.4193356014 )	53.9814889495 (ExtendedPoll)
+	1689+82	(	2 0 4367.5805624212 2 5632.4182502476 )	53.9814682147 (ExtendedPoll)
+	1689+86	(	2 0 4367.5821046999 2 5632.4171280385 )	53.9814662175 (ExtendedPoll)
+	1689+90	(	2 0 4367.5818878523 2 5632.4180567321 )	53.9814586704 (ExtendedPoll)
+	1689+104	(	2 0 4367.5819056985 2 5632.4180679393 )	53.9814584017 (ExtendedPoll)
+	1689+105	(	2 0 4367.5819346476 2 5632.4180608593 )	53.9814582222 (ExtendedPoll)
+	1689+109	(	2 0 4367.5819216978 2 5632.4180774844 )	53.9814581658 (ExtendedPoll)
+	1689+115	(	2 0 4367.5819257648 2 5632.4180741356 )	53.9814581645 (ExtendedPoll)
+	1689+120	(	2 0 4367.5819244247 2 5632.4180754292 )	53.9814581630 (ExtendedPoll)
+	1689+121	(	2 0 4367.5819204043 2 5632.4180793101 )	53.9814581585 (ExtendedPoll)
+	1689+122	(	2 0 4367.5819043228 2 5632.4180948339 )	53.9814581405 (ExtendedPoll)
+	1689+123	(	2 0 4367.5818399969 2 5632.4181569287 )	53.9814580686 (ExtendedPoll)
+	1689+124	(	2 0 4367.5815826929 2 5632.4184053083 )	53.9814577808 (ExtendedPoll)
+	1689+125	(	2 0 4367.5805534773 2 5632.4193988263 )	53.9814566296 (ExtendedPoll)
+	1689+126	(	2 0 4367.5764366146 2 5632.4233728987 )	53.9814520249 (ExtendedPoll)
+	1689+127	(	2 0 4367.5599691638 2 5632.4392691879 )	53.9814336068 (ExtendedPoll)
+	1689+128	(	2 0 4367.4940993607 2 5632.5028543451 )	53.9813599484 (ExtendedPoll)
+	1689+129	(	2 0 4367.2306201483 2 5632.7571949737 )	53.9810655359 (ExtendedPoll)
+	1689+130	(	2 0 4366.1767032985 2 5633.7745574881 )	53.9798914222 (ExtendedPoll)
+	1689+131	(	2 0 4361.9610358996 2 5637.8440075457 )	53.9752515834 (ExtendedPoll)
+	1689+132	(	2 0 4345.0983663039 2 5654.1218077760 )	53.9576001475 (ExtendedPoll)
+	1689+133	(	2 0 4277.6476879210 2 5719.2330086971 )	53.9016513465 (ExtendedPoll)
+	1689+135	(	2 0 4277.6290591203 2 5719.2571811144 )	53.9015782727 (ExtendedPoll)
+	1689+136	(	2 0 4277.5731727181 2 5719.3296983663 )	53.9013590679 (ExtendedPoll)
+	1689+137	(	2 0 4277.3496271092 2 5719.6197673739 )	53.9004824970 (ExtendedPoll)
+	1689+138	(	2 0 4276.4554446736 2 5720.7800434043 )	53.8969801836 (ExtendedPoll)
+	1689+139	(	2 0 4272.8787149315 2 5725.4211475259 )	53.8830344924 (ExtendedPoll)
+	1689+140	(	2 0 4272.2449416972 2 5726.1641037669 )	53.8813532804 (ExtendedPoll)
+	1689+141	(	2 0 4270.3436219944 2 5728.3929724899 )	53.8763261624 (ExtendedPoll)
+	1689+145	(	2 0 4269.8544309447 2 5729.2382877997 )	53.8723721175 (ExtendedPoll)
+	1689+146	(	2 0 4268.9604950773 2 5730.9749800002 )	53.8632736922 (ExtendedPoll)
+	1689+157	(	2 0 4268.9281879962 2 5731.0267642928 )	53.8630526551 (ExtendedPoll)
+	1689+162	(	2 0 4268.9081672520 2 5731.0497967493 )	53.8630044126 (ExtendedPoll)
+	1689+163	(	2 0 4268.8481050197 2 5731.1188941187 )	53.8628597009 (ExtendedPoll)
+	1689+167	(	2 0 4268.9130457179 2 5731.0620335227 )	53.8628413313 (ExtendedPoll)
+	1689+168	(	2 0 4269.1078678127 2 5730.8914517347 )	53.8627863397 (ExtendedPoll)
+	1689+172	(	2 0 4268.9798523367 2 5731.0072720873 )	53.8627858887 (ExtendedPoll)
+	1689+173	(	2 0 4268.5958059087 2 5731.3547331451 )	53.8627850104 (ExtendedPoll)
+	1689+182	(	2 0 4268.5734598444 2 5731.3755169174 )	53.8627794333 (ExtendedPoll)
+	1689+183	(	2 0 4268.5064216515 2 5731.4378682344 )	53.8627627170 (ExtendedPoll)
+	1689+184	(	2 0 4268.2382688801 2 5731.6872735026 )	53.8626960762 (ExtendedPoll)
+	1689+185	(	2 0 4267.1656577944 2 5732.6848945752 )	53.8624331084 (ExtendedPoll)
+	1689+186	(	2 0 4262.8752134514 2 5736.6753788658 )	53.8614387941 (ExtendedPoll)
+	1689+187	(	2 0 4245.7134360797 2 5752.6373160280 )	53.8583843412 (ExtendedPoll)
+	1689+190	(	2 0 4247.8459166796 2 5750.8801520137 )	53.8564841075 (ExtendedPoll)
+	1689+191	(	2 0 4254.2433584792 2 5745.6086599708 )	53.8509013362 (ExtendedPoll)
+	1689+203	(	2 0 4254.3648432334 2 5745.5967180794 )	53.8499381914 (ExtendedPoll)
+	1689+208	(	2 0 4254.3884937761 2 5745.5774316250 )	53.8499159225 (ExtendedPoll)
+	1689+209	(	2 0 4254.4594454040 2 5745.5195722617 )	53.8498491302 (ExtendedPoll)
+	1689+216	(	2 0 4254.4747041982 2 5745.5195660142 )	53.8497136099 (ExtendedPoll)
+	1689+222	(	2 0 4254.4785171266 2 5745.5196821982 )	53.8496785985 (ExtendedPoll)
+	1689+225	(	2 0 4254.4745684192 2 5745.5233580070 )	53.8496778754 (ExtendedPoll)
+	1689+226	(	2 0 4254.4627222968 2 5745.5343854333 )	53.8496757065 (ExtendedPoll)
+	1689+227	(	2 0 4254.4153378073 2 5745.5784951385 )	53.8496670379 (ExtendedPoll)
+	1689+228	(	2 0 4254.2257998495 2 5745.7549339594 )	53.8496324765 (ExtendedPoll)
+	1689+229	(	2 0 4253.4676480183 2 5746.4606892429 )	53.8494960362 (ExtendedPoll)
+	1689+230	(	2 0 4250.4350406932 2 5749.2837103771 )	53.8489791731 (ExtendedPoll)
+	1689+231	(	2 0 4238.3046113928 2 5760.5757949136 )	53.8473747522 (ExtendedPoll)
+	1689+233	(	2 0 4237.9514726055 2 5760.9129400964 )	53.8472576934 (ExtendedPoll)
+	1689+234	(	2 0 4236.8920562434 2 5761.9243756450 )	53.8469104201 (ExtendedPoll)
+	1689+235	(	2 0 4232.6543907954 2 5765.9701178391 )	53.8455799016 (ExtendedPoll)
+	1689+236	(	2 0 4215.7037290030 2 5782.1530866154 )	53.8411968855 (ExtendedPoll)
+	1689+237	(	2 0 4147.9010818337 2 5846.8849617209 )	53.8388064213 (ExtendedPoll)
+	1689+239	(	2 0 4139.4939903168 2 5859.9869225266 )	53.7929039460 (ExtendedPoll)
+	1689+243	(	2 0 4134.1713187395 2 5865.6917346274 )	53.7882968215 (ExtendedPoll)
+	1689+250	(	2 0 4133.4948958932 2 5866.3963062176 )	53.7879136446 (ExtendedPoll)
+	1689+251	(	2 0 4131.4656273543 2 5868.5100209882 )	53.7867806418 (ExtendedPoll)
+	1689+261	(	2 0 4131.5933562783 2 5868.3938874275 )	53.7866942837 (ExtendedPoll)
+	1689+270	(	2 0 4131.5998202039 2 5868.3898345950 )	53.7866729850 (ExtendedPoll)
+	1689+271	(	2 0 4131.6192119808 2 5868.3776760976 )	53.7866090899 (ExtendedPoll)
+	1689+279	(	2 0 4131.6209541211 2 5868.3784525807 )	53.7865860060 (ExtendedPoll)
+	1689+284	(	2 0 4131.6214166274 2 5868.3783365570 )	53.7865828676 (ExtendedPoll)
+	1689+287	(	2 0 4131.6210066099 2 5868.3788719382 )	53.7865816357 (ExtendedPoll)
+	1689+293	(	2 0 4131.6209362583 2 5868.3789681750 )	53.7865813838 (ExtendedPoll)
+	1689+294	(	2 0 4131.6207252036 2 5868.3792568852 )	53.7865806279 (ExtendedPoll)
+	1689+298	(	2 0 4131.6206891940 2 5868.3793043828 )	53.7865805153 (ExtendedPoll)
+	1689+304	(	2 0 4131.6206796375 2 5868.3793158160 )	53.7865804962 (ExtendedPoll)
+	1689+308	(	2 0 4131.6206768768 2 5868.3793227362 )	53.7865804572 (ExtendedPoll)
+	1689+313	(	2 0 4131.6206782642 2 5868.3793214934 )	53.7865804561 (ExtendedPoll)
+	1689+315	(	2 0 4131.6206745081 2 5868.3793251876 )	53.7865804560 (ExtendedPoll)
+	1689+316	(	2 0 4131.6206632396 2 5868.3793362702 )	53.7865804559 (ExtendedPoll)
+	1689+317	(	2 0 4131.6206181660 2 5868.3793806004 )	53.7865804552 (ExtendedPoll)
+	1689+318	(	2 0 4131.6204378713 2 5868.3795579212 )	53.7865804528 (ExtendedPoll)
+	1689+319	(	2 0 4131.6197166927 2 5868.3802672046 )	53.7865804428 (ExtendedPoll)
+	1689+320	(	2 0 4131.6168319783 2 5868.3831043383 )	53.7865804032 (ExtendedPoll)
+	1689+321	(	2 0 4131.6052931206 2 5868.3944528729 )	53.7865802452 (ExtendedPoll)
+	1689+322	(	2 0 4131.5591376898 2 5868.4398470112 )	53.7865796204 (ExtendedPoll)
+	1689+323	(	2 0 4131.3745159668 2 5868.6214235646 )	53.7865772402 (ExtendedPoll)
+	1689+324	(	2 0 4130.6360290747 2 5869.3477297782 )	53.7865696199 (ExtendedPoll)
+	1689+325	(	2 0 4127.6820815062 2 5872.2529546326 )	53.7865695587 (ExtendedPoll)
+	1689+328	(	2 0 4127.6840140147 2 5872.2603352230 )	53.7864835442 (ExtendedPoll)
+	1689+329	(	2 0 4127.6898115401 2 5872.2824769939 )	53.7862255016 (ExtendedPoll)
+	1689+330	(	2 0 4127.6796235307 2 5872.3112438240 )	53.7860518834 (ExtendedPoll)
+	1689+338	(	2 0 4127.6784943469 2 5872.3148875688 )	53.7860284213 (ExtendedPoll)
+	1689+339	(	2 0 4127.6750287014 2 5872.3216844082 )	53.7859970553 (ExtendedPoll)
+	1689+345	(	2 0 4127.6738721701 2 5872.3232011194 )	53.7859935510 (ExtendedPoll)
+	1689+346	(	2 0 4127.6704025761 2 5872.3277512530 )	53.7859830384 (ExtendedPoll)
+	1689+352	(	2 0 4127.6704920471 2 5872.3287007212 )	53.7859734249 (ExtendedPoll)
+	1689+357	(	2 0 4127.6702519860 2 5872.3291127215 )	53.7859717972 (ExtendedPoll)
+	1689+358	(	2 0 4127.6695318024 2 5872.3303487226 )	53.7859669139 (ExtendedPoll)
+	1689+364	(	2 0 4127.6693723329 2 5872.3305259594 )	53.7859667262 (ExtendedPoll)
+	1689+365	(	2 0 4127.6688939242 2 5872.3310576698 )	53.7859661633 (ExtendedPoll)
+	1689+372	(	2 0 4127.6688751072 2 5872.3311142263 )	53.7859658109 (ExtendedPoll)
+	1689+374	(	2 0 4127.6689990935 2 5872.3309999936 )	53.7859657384 (ExtendedPoll)
+	1689+382	(	2 0 4127.6690021165 2 5872.3309978166 )	53.7859657310 (ExtendedPoll)
+	2076+20	(	2 0 4999.9878997345 2 5000.0092959702 )	55.9016794952 (ExtendedPoll)
+	2076+21	(	2 0 4999.9515989379 2 5000.0371838810 )	55.9016196708 (ExtendedPoll)
+	2076+22	(	2 0 4999.8063957515 2 5000.1487355238 )	55.9013804121 (ExtendedPoll)
+	2076+23	(	2 0 4999.2255830062 2 5000.5949420954 )	55.9004239959 (ExtendedPoll)
+	2076+24	(	2 0 4996.9023320246 2 5002.3797683814 )	55.8966082342 (ExtendedPoll)
+	2076+25	(	2 0 4987.6093280984 2 5009.5190735258 )	55.8815039246 (ExtendedPoll)
+	2076+26	(	2 0 4950.4373123937 2 5038.0762941031 )	55.8236448341 (ExtendedPoll)
+	2076+27	(	2 0 4801.7492495748 2 5152.3051764124 )	55.6343152023 (ExtendedPoll)
+	2076+28	(	2 0 4206.9969982993 2 5609.2207056496 )	55.6253373563 (ExtendedPoll)
+	2076+32	(	2 0 4217.9971862258 2 5610.1214654550 )	55.5187948731 (ExtendedPoll)
+	2076+33	(	2 0 4250.9977500050 2 5612.8237448711 )	55.2000072940 (ExtendedPoll)
+	2076+34	(	2 0 4279.8220637775 2 5600.5952481192 )	55.0710067569 (ExtendedPoll)
+	2076+35	(	2 0 4366.2950050949 2 5563.9097578633 )	54.6951789859 (ExtendedPoll)
+	2076+39	(	2 0 4393.3723907599 2 5548.1874048965 )	54.6249740689 (ExtendedPoll)
+	2076+40	(	2 0 4474.6045477550 2 5501.0203459961 )	54.4266469861 (ExtendedPoll)
+	2076+42	(	2 0 4525.2654628702 2 5464.3348557403 )	54.3900963042 (ExtendedPoll)
+	2076+48	(	2 0 4514.4563452056 2 5483.6602479286 )	54.2742359116 (ExtendedPoll)
+	2076+49	(	2 0 4491.7462798091 2 5505.0601172445 )	54.2385084897 (ExtendedPoll)
+	2076+50	(	2 0 4423.6160836196 2 5569.2597251923 )	54.1460338788 (ExtendedPoll)
+	2076+51	(	2 0 4151.0952988618 2 5826.0581569833 )	54.0054730693 (ExtendedPoll)
+	2076+57	(	2 0 4119.6505929283 2 5880.2129283134 )	53.7862527117 (ExtendedPoll)
+	2076+75	(	2 0 4119.5665931846 2 5880.3014995623 )	53.7862021958 (ExtendedPoll)
+	2076+76	(	2 0 4119.3145939537 2 5880.5672133090 )	53.7860509080 (ExtendedPoll)
+	2076+77	(	2 0 4118.3065970302 2 5881.6300682960 )	53.7854496575 (ExtendedPoll)
+	2076+88	(	2 0 4118.3108711544 2 5881.6602849630 )	53.7851316932 (ExtendedPoll)
+	2076+96	(	2 0 4118.3198847115 2 5881.6662155602 )	53.7849945777 (ExtendedPoll)
+	2076+97	(	2 0 4118.3348277986 2 5881.6631276284 )	53.7848865134 (ExtendedPoll)
+	2076+99	(	2 0 4118.3462668702 2 5881.6530292707 )	53.7848751796 (ExtendedPoll)
+	2076+108	(	2 0 4118.3455932557 2 5881.6537043543 )	53.7848751047 (ExtendedPoll)
+	2076+109	(	2 0 4118.3435724122 2 5881.6557296052 )	53.7848748801 (ExtendedPoll)
+	2076+110	(	2 0 4118.3354890381 2 5881.6638306090 )	53.7848739818 (ExtendedPoll)
+	2076+111	(	2 0 4118.3031555418 2 5881.6962346240 )	53.7848703922 (ExtendedPoll)
+	2076+112	(	2 0 4118.1738215565 2 5881.8258506839 )	53.7848560937 (ExtendedPoll)
+	2076+122	(	2 0 4118.1735085463 2 5881.8262104036 )	53.7848556344 (ExtendedPoll)
+	2076+123	(	2 0 4118.1725695157 2 5881.8272895629 )	53.7848542566 (ExtendedPoll)
+	2076+132	(	2 0 4118.1726545887 2 5881.8272060557 )	53.7848542498 (ExtendedPoll)
+	2076+133	(	2 0 4118.1729098077 2 5881.8269555344 )	53.7848542294 (ExtendedPoll)
+	2076+134	(	2 0 4118.1739306837 2 5881.8259534489 )	53.7848541479 (ExtendedPoll)
+	2076+135	(	2 0 4118.1780141879 2 5881.8219451070 )	53.7848538220 (ExtendedPoll)
+	2076+151	(	2 0 4118.1780093963 2 5881.8219592167 )	53.7848537356 (ExtendedPoll)
+	2076+152	(	2 0 4118.1779950216 2 5881.8220015460 )	53.7848534763 (ExtendedPoll)
+	2076+159	(	2 0 4118.1779947385 2 5881.8220052606 )	53.7848534446 (ExtendedPoll)
+	2244+6	(	2 0 4168.4622208673 2 5740.6975175468 )	54.6654457702 (ExtendedPoll)
+	2244+7	(	2 0 3937.8677106876 2 6034.1814395937 )	54.1025876908 (ExtendedPoll)
+	2244+15	(	2 0 3968.8756845943 2 6029.8141193251 )	53.8471893590 (ExtendedPoll)
+	2244+23	(	2 0 3966.3440036262 2 6032.7893562581 )	53.8453293272 (ExtendedPoll)
+	2244+29	(	2 0 3967.2852805629 2 6032.5287671287 )	53.8387026417 (ExtendedPoll)
+	2244+32	(	2 0 3966.9613567598 2 6032.8941676795 )	53.8385991104 (ExtendedPoll)
+	2244+33	(	2 0 3965.9895853505 2 6033.9903693319 )	53.8382928991 (ExtendedPoll)
+	2244+45	(	2 0 3966.0039197226 2 6033.9851390276 )	53.8382028409 (ExtendedPoll)
+	2244+46	(	2 0 3966.0291479677 2 6033.9679675607 )	53.8381131770 (ExtendedPoll)
+	2244+52	(	2 0 3966.0378553973 2 6033.9615960721 )	53.8380860741 (ExtendedPoll)
+	2244+64	(	2 0 3966.0380469160 2 6033.9618735742 )	53.8380818691 (ExtendedPoll)
+	2244+69	(	2 0 3966.0381004053 2 6033.9618472758 )	53.8380815916 (ExtendedPoll)
+	2244+74	(	2 0 3966.0381302064 2 6033.9618470067 )	53.8380813128 (ExtendedPoll)
+	2244+79	(	2 0 3966.0381451069 2 6033.9618471499 )	53.8380811710 (ExtendedPoll)
+	2244+84	(	2 0 3966.0381513080 2 6033.9618430199 )	53.8380811481 (ExtendedPoll)
+	2244+86	(	2 0 3966.0381381930 2 6033.9618595149 )	53.8380811293 (ExtendedPoll)
+	2244+91	(	2 0 3966.0381418784 2 6033.9618557502 )	53.8380811271 (ExtendedPoll)
+	2244+92	(	2 0 3966.0381529347 2 6033.9618444560 )	53.8380811204 (ExtendedPoll)
+	2244+93	(	2 0 3966.0381971599 2 6033.9617992793 )	53.8380810935 (ExtendedPoll)
+	2244+94	(	2 0 3966.0383740607 2 6033.9616185725 )	53.8380809858 (ExtendedPoll)
+	2244+95	(	2 0 3966.0390816638 2 6033.9608957451 )	53.8380805552 (ExtendedPoll)
+	2244+96	(	2 0 3966.0419120761 2 6033.9580044356 )	53.8380788327 (ExtendedPoll)
+	2244+97	(	2 0 3966.0532337255 2 6033.9464391976 )	53.8380719433 (ExtendedPoll)
+	2244+98	(	2 0 3966.0985203229 2 6033.9001782457 )	53.8380443936 (ExtendedPoll)
+	2244+99	(	2 0 3966.2796667126 2 6033.7151344380 )	53.8379343190 (ExtendedPoll)
+	2244+100	(	2 0 3967.0042522715 2 6032.9749592074 )	53.8374960138 (ExtendedPoll)
+	2244+101	(	2 0 3969.9025945070 2 6030.0142582847 )	53.8357746693 (ExtendedPoll)
+	2244+102	(	2 0 3981.4959634492 2 6018.1714545940 )	53.8293988351 (ExtendedPoll)
+	2244+103	(	2 0 4027.8694392178 2 5970.8002398312 )	53.8120165816 (ExtendedPoll)
+	2244+105	(	2 0 4027.8996279793 2 5970.7957732839 )	53.8117751288 (ExtendedPoll)
+	2244+106	(	2 0 4027.9901942637 2 5970.7823736422 )	53.8110507797 (ExtendedPoll)
+	2244+107	(	2 0 4028.3524594017 2 5970.7287750751 )	53.8081535202 (ExtendedPoll)
+	2244+108	(	2 0 4028.5782890972 2 5970.8215646372 )	53.8052259801 (ExtendedPoll)
+	2244+109	(	2 0 4029.0659874104 2 5970.8447020517 )	53.8004791353 (ExtendedPoll)
+	2244+117	(	2 0 4029.1224148462 2 5970.8679660822 )	53.7997469853 (ExtendedPoll)
+	2244+125	(	2 0 4029.1289146169 2 5970.8639709871 )	53.7997219690 (ExtendedPoll)
+	2244+129	(	2 0 4029.1327113864 2 5970.8636015775 )	53.7996898997 (ExtendedPoll)
+	2244+134	(	2 0 4029.1345329350 2 5970.8641672091 )	53.7996679124 (ExtendedPoll)
+	2244+136	(	2 0 4029.1361890843 2 5970.8632210851 )	53.7996608999 (ExtendedPoll)
+	2244+142	(	2 0 4029.1366590260 2 5970.8631402857 )	53.7996572423 (ExtendedPoll)
+	2244+146	(	2 0 4029.1368554851 2 5970.8630052034 )	53.7996566135 (ExtendedPoll)
+	2244+147	(	2 0 4029.1372198865 2 5970.8626976562 )	53.7996559536 (ExtendedPoll)
+	2244+158	(	2 0 4029.1372434032 2 5970.8627159631 )	53.7996555720 (ExtendedPoll)
+	2244+159	(	2 0 4029.1372160758 2 5970.8627689341 )	53.7996553557 (ExtendedPoll)
+	2244+165	(	2 0 4029.1372107574 2 5970.8627828538 )	53.7996552815 (ExtendedPoll)
+	2244+168	(	2 0 4029.1372020883 2 5970.8627949737 )	53.7996552545 (ExtendedPoll)
+	2244+172	(	2 0 4029.1371973626 2 5970.8628007338 )	53.7996552473 (ExtendedPoll)
+	2244+179	(	2 0 4029.1371969852 2 5970.8628025579 )	53.7996552346 (ExtendedPoll)
+	2244+181	(	2 0 4029.1372006890 2 5970.8627988111 )	53.7996552334 (ExtendedPoll)
+	2244+182	(	2 0 4029.1372118001 2 5970.8627875709 )	53.7996552298 (ExtendedPoll)
+	2244+183	(	2 0 4029.1372562449 2 5970.8627426102 )	53.7996552156 (ExtendedPoll)
+	2244+184	(	2 0 4029.1374340239 2 5970.8625627674 )	53.7996551585 (ExtendedPoll)
+	2244+185	(	2 0 4029.1381451401 2 5970.8618433959 )	53.7996549302 (ExtendedPoll)
+	2244+186	(	2 0 4029.1409896047 2 5970.8589659099 )	53.7996540170 (ExtendedPoll)
+	2244+187	(	2 0 4029.1523674632 2 5970.8474559659 )	53.7996503647 (ExtendedPoll)
+	2244+188	(	2 0 4029.1978788972 2 5970.8014161900 )	53.7996357631 (ExtendedPoll)
+	2244+189	(	2 0 4029.3799246331 2 5970.6172570866 )	53.7995774796 (ExtendedPoll)
+	2244+190	(	2 0 4030.1081075767 2 5969.8806206727 )	53.7993463077 (ExtendedPoll)
+	2244+191	(	2 0 4033.0208393511 2 5966.9340750174 )	53.7984530101 (ExtendedPoll)
+	2244+192	(	2 0 4044.6717664489 2 5955.1478923961 )	53.7953815270 (ExtendedPoll)
+	2244+193	(	2 0 4091.2754748399 2 5908.0031619108 )	53.7910882360 (ExtendedPoll)
+	2244+196	(	2 0 4091.3024169829 2 5908.0174949293 )	53.7907097823 (ExtendedPoll)
+	2244+197	(	2 0 4091.3832434122 2 5908.0604939849 )	53.7895744291 (ExtendedPoll)
+	2244+198	(	2 0 4091.7065491291 2 5908.2324902073 )	53.7850331320 (ExtendedPoll)
+	2244+201	(	2 0 4091.7062625770 2 5908.2935241345 )	53.7844786297 (ExtendedPoll)
+	2244+218	(	2 0 4091.7061814853 2 5908.2937483387 )	53.7844773284 (ExtendedPoll)
+	2244+225	(	2 0 4091.7061774429 2 5908.2938078061 )	53.7844768227 (ExtendedPoll)
+	2244+228	(	2 0 4091.7061404988 2 5908.2938545806 )	53.7844767353 (ExtendedPoll)
+	2244+237	(	2 0 4091.7061392073 2 5908.2938580748 )	53.7844767152 (ExtendedPoll)
+	2244+242	(	2 0 4091.7061402086 2 5908.2938596455 )	53.7844766917 (ExtendedPoll)
+	2494+9	(	2 0 4996.9428758120 2 5002.4361458373 )	55.8956087809 (ExtendedPoll)
+	2494+10	(	2 0 4987.7715032480 2 5009.7445833492 )	55.8775091797 (ExtendedPoll)
+	2494+11	(	2 0 4951.0860129922 2 5038.9783333968 )	55.8077152532 (ExtendedPoll)
+	2494+12	(	2 0 4804.3440519688 2 5155.9133335874 )	55.5714059083 (ExtendedPoll)
+	2494+13	(	2 0 4217.3762078751 2 5623.6533343496 )	55.3875012518 (ExtendedPoll)
+	2494+15	(	2 0 4161.4745084376 2 5735.4567332245 )	54.7792090326 (ExtendedPoll)
+	2494+19	(	2 0 4301.2287570313 2 5616.6656219199 )	54.7199123025 (ExtendedPoll)
+	2494+25	(	2 0 4362.3712407911 2 5630.6410467792 )	54.0447637843 (ExtendedPoll)
+	2494+30	(	2 0 4360.6789041870 2 5638.2565614975 )	53.9822178137 (ExtendedPoll)
+	2494+34	(	2 0 4357.7855545091 2 5640.8837775966 )	53.9807745427 (ExtendedPoll)
+	2494+35	(	2 0 4349.1055054753 2 5648.7654258937 )	53.9766818176 (ExtendedPoll)
+	2494+36	(	2 0 4314.3853093403 2 5680.2920190824 )	53.9638836443 (ExtendedPoll)
+	2494+38	(	2 0 4293.8589040781 2 5703.8755485326 )	53.9100589240 (ExtendedPoll)
+	2494+44	(	2 0 4288.6181197559 2 5709.6895436401 )	53.8988093078 (ExtendedPoll)
+	2494+48	(	2 0 4286.0250233464 2 5712.6101890697 )	53.8928738710 (ExtendedPoll)
+	2494+49	(	2 0 4278.2457341180 2 5721.3721253585 )	53.8753278023 (ExtendedPoll)
+	2494+58	(	2 0 4278.6875840983 2 5721.1643151240 )	53.8734640832 (ExtendedPoll)
+	2494+62	(	2 0 4278.5548371810 2 5721.3692198536 )	53.8726233086 (ExtendedPoll)
+	2494+70	(	2 0 4278.5803407327 2 5721.3524598889 )	53.8725625799 (ExtendedPoll)
+	2494+71	(	2 0 4278.6568513877 2 5721.3021799948 )	53.8723804067 (ExtendedPoll)
+	2494+76	(	2 0 4278.6854324587 2 5721.3128786333 )	53.8720225267 (ExtendedPoll)
+	2494+84	(	2 0 4278.6872107890 2 5721.3121890539 )	53.8720135829 (ExtendedPoll)
+	2494+86	(	2 0 4278.6834607716 2 5721.3160673533 )	53.8720086108 (ExtendedPoll)
+	2494+87	(	2 0 4278.6722107195 2 5721.3277022515 )	53.8719936947 (ExtendedPoll)
+	2494+96	(	2 0 4278.6723989724 2 5721.3275559496 )	53.8719934685 (ExtendedPoll)
+	2494+98	(	2 0 4278.6719110434 2 5721.3280214306 )	53.8719932064 (ExtendedPoll)
+	2494+99	(	2 0 4278.6704472565 2 5721.3294178739 )	53.8719924200 (ExtendedPoll)
+	2494+100	(	2 0 4278.6645921088 2 5721.3350036468 )	53.8719892745 (ExtendedPoll)
+	2494+101	(	2 0 4278.6411715181 2 5721.3573467387 )	53.8719766944 (ExtendedPoll)
+	2494+102	(	2 0 4278.5474891555 2 5721.4467191061 )	53.8719264022 (ExtendedPoll)
+	2494+103	(	2 0 4278.1727597049 2 5721.8042085755 )	53.8717256857 (ExtendedPoll)
+	2494+104	(	2 0 4276.6738419026 2 5723.2341664534 )	53.8709300560 (ExtendedPoll)
+	2494+105	(	2 0 4270.6781706935 2 5728.9539979649 )	53.8678634044 (ExtendedPoll)
+	2494+106	(	2 0 4246.6954858570 2 5751.8333240110 )	53.8574561057 (ExtendedPoll)
+	2494+107	(	2 0 4150.7647465111 2 5843.3506281954 )	53.8459142947 (ExtendedPoll)
+	2494+110	(	2 0 4151.0319463303 2 5843.7593181024 )	53.8396594450 (ExtendedPoll)
+	2494+111	(	2 0 4151.8335457878 2 5844.9853878233 )	53.8208980002 (ExtendedPoll)
+	2494+112	(	2 0 4153.3279881922 2 5846.2426983850 )	53.7955624715 (ExtendedPoll)
+	2494+116	(	2 0 4153.1058903377 2 5846.6776178033 )	53.7935050825 (ExtendedPoll)
+	2494+118	(	2 0 4152.8591623323 2 5847.0989959699 )	53.7917987292 (ExtendedPoll)
+	2494+127	(	2 0 4152.8542659569 2 5847.1291180913 )	53.7915611730 (ExtendedPoll)
+	2494+129	(	2 0 4152.9186835311 2 5847.0716643992 )	53.7915145196 (ExtendedPoll)
+	2494+133	(	2 0 4152.8895239414 2 5847.1034820926 )	53.7914812417 (ExtendedPoll)
+	2494+138	(	2 0 4152.8811001224 2 5847.1162049217 )	53.7914385729 (ExtendedPoll)
+	2494+141	(	2 0 4152.8973868388 2 5847.1020486033 )	53.7914233161 (ExtendedPoll)
+	2494+150	(	2 0 4152.8955121262 2 5847.1039880394 )	53.7914221706 (ExtendedPoll)
+	2494+151	(	2 0 4152.8898879885 2 5847.1098063475 )	53.7914187344 (ExtendedPoll)
+	2494+159	(	2 0 4152.8896638419 2 5847.1102272180 )	53.7914168283 (ExtendedPoll)
+	2494+168	(	2 0 4152.8897034201 2 5847.1102717856 )	53.7914160520 (ExtendedPoll)
+	2494+172	(	2 0 4152.8897151731 2 5847.1102626252 )	53.7914160311 (ExtendedPoll)
+	2494+173	(	2 0 4152.8897504319 2 5847.1102351440 )	53.7914159684 (ExtendedPoll)
+	2494+177	(	2 0 4152.8897404990 2 5847.1102462518 )	53.7914159546 (ExtendedPoll)
+	2494+178	(	2 0 4152.8897107004 2 5847.1102795751 )	53.7914159130 (ExtendedPoll)
+	2494+182	(	2 0 4152.8897044864 2 5847.1102931188 )	53.7914158426 (ExtendedPoll)
+	2494+188	(	2 0 4152.8897024353 2 5847.1102962286 )	53.7914158321 (ExtendedPoll)
+	2494+193	(	2 0 4152.8897041880 2 5847.1102955980 )	53.7914158221 (ExtendedPoll)
+	2494+202	(	2 0 4152.8897041652 2 5847.1102957121 )	53.7914158212 (ExtendedPoll)
+	2494+205	(	2 0 4152.8897042523 2 5847.1102956349 )	53.7914158212 (ExtendedPoll)
+	2494+206	(	2 0 4152.8897045137 2 5847.1102954032 )	53.7914158210 (ExtendedPoll)
+	2494+207	(	2 0 4152.8897048775 2 5847.1102951127 )	53.7914158204 (ExtendedPoll)
+	2761	(	3 0 3333.3333333249 2 3333.3333333165 1 3333.3333333555 )	47.1682905221
+	2762	(	3 0 3333.3333332996 2 3333.3333332658 1 3333.3333334220 )	47.1682905221
+	2763	(	3 0 3333.3333331985 2 3333.3333330633 1 3333.3333336880 )	47.1682905221
+	2764	(	3 0 3333.3333327939 2 3333.3333322533 1 3333.3333347518 )	47.1682905219
+	2765	(	3 0 3333.3333311757 2 3333.3333290134 1 3333.3333390073 )	47.1682905212
+	2766	(	3 0 3333.3333247026 2 3333.3333160534 1 3333.3333560290 )	47.1682905185
+	2767	(	3 0 3333.3332988105 2 3333.3332642138 1 3333.3334241161 )	47.1682905075
+	2768	(	3 0 3333.3331952421 2 3333.3330568551 1 3333.3336964646 )	47.1682904637
+	2769	(	3 0 3333.3327809684 2 3333.3322274206 1 3333.3347858583 )	47.1682902884
+	2770	(	3 0 3333.3311238738 2 3333.3289096824 1 3333.3391434333 )	47.1682895873
+	2771	(	3 0 3333.3244954951 2 3333.3156387294 1 3333.3565737331 )	47.1682867830
+	2772	(	3 0 3333.2979819803 2 3333.2625549176 1 3333.4262949324 )	47.1682755667
+	2773	(	3 0 3333.1919279212 2 3333.0502196704 1 3333.7051797296 )	47.1682307194
+	2774	(	3 0 3332.7677116849 2 3332.2008786818 1 3334.8207189184 )	47.1680516124
+	2775	(	3 0 3331.0708467397 2 3328.8035147270 1 3339.2828756735 )	47.1673397044
+	2776	(	3 0 3324.2833869587 2 3315.2140589080 1 3357.1315026938 )	47.1645644377
+	2777	(	3 0 3297.1335478348 2 3260.8562356320 1 3428.5260107754 )	47.1546240959
+	2778	(	3 0 3188.5341913391 2 3043.4249425281 1 3714.1040431015 )	47.1336301248
+	2783	(	3 0 3188.5440963277 2 3043.4291749044 1 3714.1116982164 )	47.1334189419
+	2784	(	3 0 3188.5738112936 2 3043.4418720333 1 3714.1346635611 )	47.1327853954
+	2785	(	3 0 3188.6926711573 2 3043.4926605491 1 3714.2265249397 )	47.1302512441
+	2786	(	3 0 3189.1681106120 2 3043.6958146122 1 3714.5939704540 )	47.1201151932
+	2787	(	3 0 3191.0698684310 2 3044.5084308647 1 3716.0637525116 )	47.0795798665
+	2788	(	3 0 3198.6768997067 2 3047.7588958743 1 3721.9428807416 )	46.9175811367
+	2789	(	3 0 3198.8948848743 2 3047.5863280381 1 3722.3442473958 )	46.9131329647
+	2790	(	3 0 3199.5488403769 2 3047.0686245294 1 3723.5483473581 )	46.8997895433
+	2791	(	3 0 3202.1646623876 2 3044.9978104945 1 3728.3647472073 )	46.8464322782
+	2792	(	3 0 3212.6279504301 2 3036.7145543550 1 3747.6303466044 )	46.6332660653
+	2797+6	(	2 0 4900.6584516792 2 5075.3512624213 )	55.7642295241 (ExtendedPoll)
+	2797+7	(	2 0 4607.1745296323 2 5305.9457726010 )	55.4472050367 (ExtendedPoll)
+	2797+13	(	2 0 4509.3465556167 2 5389.7983217572 )	55.3312037272 (ExtendedPoll)
+	2797+14	(	2 0 4215.8626335698 2 5641.3559692260 )	55.2227885943 (ExtendedPoll)
+	2797+16	(	2 0 3880.4524369449 2 6088.5695647259 )	54.1867250496 (ExtendedPoll)
+	2797+25	(	2 0 3865.6035480318 2 6116.0836824178 )	54.0994049526 (ExtendedPoll)
+	2797+30	(	2 0 3858.1791035753 2 6129.8407412638 )	54.0570067200 (ExtendedPoll)
+	2797+35	(	2 0 3865.9856885553 2 6129.2948262302 )	53.9862513494 (ExtendedPoll)
+	2797+41	(	2 0 3867.9219809400 2 6129.0355165892 )	53.9697415456 (ExtendedPoll)
+	2797+42	(	2 0 3871.2247668931 2 6126.9473915858 )	53.9552082161 (ExtendedPoll)
+	2797+47	(	2 0 3872.9461052333 2 6126.0261599667 )	53.9462662728 (ExtendedPoll)
+	2797+51	(	2 0 3873.9223548519 2 6126.0547352067 )	53.9366367060 (ExtendedPoll)
+	2797+63	(	2 0 3873.9150839053 2 6126.0681502590 )	53.9365956057 (ExtendedPoll)
+	2797+64	(	2 0 3873.9023656577 2 6126.0958912493 )	53.9364883221 (ExtendedPoll)
+	2797+71	(	2 0 3873.8992381518 2 6126.1002869850 )	53.9364820231 (ExtendedPoll)
+	2797+82	(	2 0 3873.8993365564 2 6126.1005041485 )	53.9364792786 (ExtendedPoll)
+	2797+86	(	2 0 3873.8994440785 2 6126.1004526718 )	53.9364786703 (ExtendedPoll)
+	2797+89	(	2 0 3873.8995441434 2 6126.1003878808 )	53.9364782440 (ExtendedPoll)
+	2797+90	(	2 0 3873.8997141999 2 6126.1002207754 )	53.9364779912 (ExtendedPoll)
+	2797+91	(	2 0 3873.9002243693 2 6126.0997194591 )	53.9364772329 (ExtendedPoll)
+	2797+92	(	2 0 3873.9022650468 2 6126.0977141941 )	53.9364741996 (ExtendedPoll)
+	2797+99	(	2 0 3873.9023564295 2 6126.0976376432 )	53.9364739541 (ExtendedPoll)
+	2797+108	(	2 0 3873.9023666523 2 6126.0976268016 )	53.9364739455 (ExtendedPoll)
+	2797+109	(	2 0 3873.9023973206 2 6126.0975942769 )	53.9364739197 (ExtendedPoll)
+	2797+110	(	2 0 3873.9025199938 2 6126.0974641781 )	53.9364738164 (ExtendedPoll)
+	2797+111	(	2 0 3873.9030106867 2 6126.0969437827 )	53.9364734034 (ExtendedPoll)
+	2797+112	(	2 0 3873.9049734581 2 6126.0948622015 )	53.9364717515 (ExtendedPoll)
+	2797+113	(	2 0 3873.9128245438 2 6126.0865358764 )	53.9364651438 (ExtendedPoll)
+	2797+114	(	2 0 3873.9442288869 2 6126.0532305760 )	53.9364387171 (ExtendedPoll)
+	2797+115	(	2 0 3874.0698462589 2 6125.9200093744 )	53.9363330745 (ExtendedPoll)
+	2797+116	(	2 0 3874.5723157471 2 6125.3871245682 )	53.9359115277 (ExtendedPoll)
+	2797+117	(	2 0 3876.5821937000 2 6123.2555853431 )	53.9342417174 (ExtendedPoll)
+	2797+118	(	2 0 3884.6217055116 2 6114.7294284431 )	53.9278243645 (ExtendedPoll)
+	2797+119	(	2 0 3916.7797527577 2 6080.6248008429 )	53.9063357782 (ExtendedPoll)
+	2797+120	(	2 0 4045.4119417422 2 5944.2062904420 )	53.8866188839 (ExtendedPoll)
+	2797+123	(	2 0 4045.5215045970 2 5944.2601089211 )	53.8851192623 (ExtendedPoll)
+	2797+124	(	2 0 4045.8501931615 2 5944.4215643586 )	53.8806205222 (ExtendedPoll)
+	2797+125	(	2 0 4047.1649474193 2 5945.0673861082 )	53.8626274298 (ExtendedPoll)
+	2797+126	(	2 0 4048.1386380613 2 5945.1403169447 )	53.8529449201 (ExtendedPoll)
+	2797+127	(	2 0 4051.0597099870 2 5945.3591094543 )	53.8239051878 (ExtendedPoll)
+	2797+130	(	2 0 4052.9055851942 2 5944.7227772433 )	53.8125206018 (ExtendedPoll)
+	2797+135	(	2 0 4053.8541125651 2 5944.9547911326 )	53.8016493716 (ExtendedPoll)
+	2797+138	(	2 0 4054.7420774868 2 5944.5483403302 )	53.7970783073 (ExtendedPoll)
+	2797+144	(	2 0 4055.1565250914 2 5944.8064771068 )	53.7909201097 (ExtendedPoll)
+	2797+153	(	2 0 4055.1705529195 2 5944.8124812684 )	53.7907362425 (ExtendedPoll)
+	2797+158	(	2 0 4055.1759264999 2 5944.8178972016 )	53.7906378043 (ExtendedPoll)
+	2797+159	(	2 0 4055.1662131965 2 5944.8296651001 )	53.7906219881 (ExtendedPoll)
+	2797+163	(	2 0 4055.1612269352 2 5944.8354395879 )	53.7906162644 (ExtendedPoll)
+	2797+164	(	2 0 4055.1462681513 2 5944.8527630512 )	53.7905990941 (ExtendedPoll)
+	2797+170	(	2 0 4055.1439936051 2 5944.8558254594 )	53.7905926341 (ExtendedPoll)
+	2797+176	(	2 0 4055.1459887350 2 5944.8540101306 )	53.7905904735 (ExtendedPoll)
+	2797+198	(	2 0 4055.1459891780 2 5944.8540106179 )	53.7905904650 (ExtendedPoll)
+	2797+200	(	2 0 4055.1459895782 2 5944.8540103798 )	53.7905904635 (ExtendedPoll)
+	2797+211	(	2 0 4055.1459895943 2 5944.8540104040 )	53.7905904631 (ExtendedPoll)
+	3014	(	3 0 3210.5286604494 2 3038.4216692843 1 3750.4447793258 )	46.6015154107
+	3019+6	(	2 0 4692.2382076236 2 5223.3043522798 )	55.6902400114 (ExtendedPoll)
+	3019+14	(	2 0 4751.6337632759 2 5242.5205614614 )	54.9900785314 (ExtendedPoll)
+	3019+23	(	2 0 4744.8371211080 2 5251.2279062468 )	54.9451839171 (ExtendedPoll)
+	3019+24	(	2 0 4735.4473825306 2 5263.6747690122 )	54.8789033947 (ExtendedPoll)
+	3019+33	(	2 0 4734.9854872326 2 5264.5350116862 )	54.8728327514 (ExtendedPoll)
+	3019+34	(	2 0 4733.7844741588 2 5266.0755156716 )	54.8649914704 (ExtendedPoll)
+	3019+39	(	2 0 4733.0120896855 2 5266.6730367357 )	54.8644320425 (ExtendedPoll)
+	3019+40	(	2 0 4730.6949362657 2 5268.4655999279 )	54.8627657851 (ExtendedPoll)
+	3019+41	(	2 0 4721.4263225864 2 5275.6358526969 )	54.8562814361 (ExtendedPoll)
+	3019+42	(	2 0 4684.3518678691 2 5304.3168637731 )	54.8332529571 (ExtendedPoll)
+	3019+43	(	2 0 4536.0540490000 2 5419.0409080777 )	54.7888275928 (ExtendedPoll)
+	3019+46	(	2 0 4533.8703888657 2 5450.0488819844 )	54.4714998393 (ExtendedPoll)
+	3019+49	(	2 0 4509.4133953618 2 5469.7018231929 )	54.4660067399 (ExtendedPoll)
+	3019+50	(	2 0 4436.0424148501 2 5528.6606468184 )	54.4633610125 (ExtendedPoll)
+	3019+53	(	2 0 4390.6222840571 2 5570.5869213965 )	54.4160608763 (ExtendedPoll)
+	3019+54	(	2 0 4254.3618916782 2 5696.3657451309 )	54.3333134172 (ExtendedPoll)
+	3019+58	(	2 0 4163.5216300923 2 5787.2060067168 )	54.2619287838 (ExtendedPoll)
+	3019+64	(	2 0 4151.2931333404 2 5848.3484904766 )	53.7943165716 (ExtendedPoll)
+	3019+80	(	2 0 4151.1660641526 2 5848.5569671112 )	53.7935193903 (ExtendedPoll)
+	3019+81	(	2 0 4150.7848565894 2 5849.1823970151 )	53.7911289956 (ExtendedPoll)
+	3019+86	(	2 0 4150.6155109737 2 5849.3582466966 )	53.7910215159 (ExtendedPoll)
+	3019+87	(	2 0 4150.1074741268 2 5849.8857957410 )	53.7907001042 (ExtendedPoll)
+	3019+102	(	2 0 4150.1089861817 2 5849.8869583539 )	53.7906755049 (ExtendedPoll)
+	3019+103	(	2 0 4150.1127107275 2 5849.8861339310 )	53.7906493993 (ExtendedPoll)
+	3019+107	(	2 0 4150.1143060889 2 5849.8850885612 )	53.7906446904 (ExtendedPoll)
+	3019+108	(	2 0 4150.1171485655 2 5849.8825445004 )	53.7906426731 (ExtendedPoll)
+	3019+114	(	2 0 4150.1178834653 2 5849.8819367039 )	53.7906416845 (ExtendedPoll)
+	3019+125	(	2 0 4150.1179323692 2 5849.8819026286 )	53.7906415591 (ExtendedPoll)
+	3019+126	(	2 0 4150.1180790807 2 5849.8818004026 )	53.7906411831 (ExtendedPoll)
+	3019+127	(	2 0 4150.1182616331 2 5849.8816470466 )	53.7906409597 (ExtendedPoll)
+	3019+128	(	2 0 4150.1188092902 2 5849.8811869788 )	53.7906402897 (ExtendedPoll)
+	3019+142	(	2 0 4150.1188123412 2 5849.8811848413 )	53.7906402820 (ExtendedPoll)
+	3019+143	(	2 0 4150.1188214943 2 5849.8811784287 )	53.7906402588 (ExtendedPoll)
+	3019+153	(	2 0 4150.1188216858 2 5849.8811782962 )	53.7906402583 (ExtendedPoll)
+	3181+18	(	2 0 4999.8309411913 2 5000.1672333819 )	55.9009656850 (ExtendedPoll)
+	3181+20	(	2 0 4999.4491205399 2 5000.4715383635 )	55.9002031428 (ExtendedPoll)
+	3181+21	(	2 0 4998.3036585857 2 5001.3844533083 )	55.8979182003 (ExtendedPoll)
+	3181+22	(	2 0 4993.7218107688 2 5005.0361130876 )	55.8888187275 (ExtendedPoll)
+	3181+23	(	2 0 4975.3944195012 2 5019.6427522045 )	55.8530679233 (ExtendedPoll)
+	3181+24	(	2 0 4902.0848544307 2 5078.0693086723 )	55.7205670458 (ExtendedPoll)
+	3181+25	(	2 0 4608.8465941490 2 5311.7755345433 )	55.3681229992 (ExtendedPoll)
+	3181+27	(	2 0 4583.9528686182 2 5330.5550116980 )	55.3637996156 (ExtendedPoll)
+	3181+28	(	2 0 4509.2716920260 2 5386.8934431624 )	55.3635911500 (ExtendedPoll)
+	3181+30	(	2 0 4432.4068552994 2 5484.7214171780 )	54.9584061960 (ExtendedPoll)
+	3181+31	(	2 0 4201.8123451197 2 5778.2053392249 )	54.0036331278 (ExtendedPoll)
+	3181+43	(	2 0 4200.8569938110 2 5785.9573327015 )	53.9378132020 (ExtendedPoll)
+	3181+44	(	2 0 4192.2315362806 2 5799.0592935072 )	53.8900546358 (ExtendedPoll)
+	3181+52	(	2 0 4194.7836890625 2 5802.0140586264 )	53.8389301385 (ExtendedPoll)
+	3181+54	(	2 0 4192.4430783561 2 5805.1394221936 )	53.8302201837 (ExtendedPoll)
+	3181+55	(	2 0 4185.4212462368 2 5814.5155128951 )	53.8043694686 (ExtendedPoll)
+	3181+71	(	2 0 4185.4407963358 2 5814.5389460247 )	53.8039710219 (ExtendedPoll)
+	3181+77	(	2 0 4185.4480076188 2 5814.5364550417 )	53.8039296544 (ExtendedPoll)
+	3181+78	(	2 0 4185.4696414679 2 5814.5289820924 )	53.8038055528 (ExtendedPoll)
+	3181+81	(	2 0 4185.4807342197 2 5814.5185044072 )	53.8038049529 (ExtendedPoll)
+	3181+90	(	2 0 4185.4816714853 2 5814.5183282598 )	53.8037981763 (ExtendedPoll)
+	3181+108	(	2 0 4185.4816706336 2 5814.5183292645 )	53.8037981745 (ExtendedPoll)
+	3181+112	(	2 0 4185.4816710094 2 5814.5183289895 )	53.8037981737 (ExtendedPoll)
+	3304+6	(	2 0 4901.8695805142 2 5076.5623912563 )	55.7402643064 (ExtendedPoll)
+	3304+7	(	2 0 4608.3856584673 2 5307.1569014360 )	55.4236611469 (ExtendedPoll)
+	3304+15	(	2 0 4606.6387303599 2 5338.1648753428 )	55.0917439291 (ExtendedPoll)
+	3304+16	(	2 0 4589.1694492857 2 5397.5604309951 )	54.5804183615 (ExtendedPoll)
+	3304+22	(	2 0 4562.9655276744 2 5433.3724571972 )	54.4082368778 (ExtendedPoll)
+	3304+23	(	2 0 4514.0515406666 2 5471.8048755605 )	54.4043973012 (ExtendedPoll)
+	3304+30	(	2 0 4527.6994165058 2 5464.1620650905 )	54.3714868324 (ExtendedPoll)
+	3304+37	(	2 0 4526.1776783497 2 5467.7582803742 )	54.3456878637 (ExtendedPoll)
+	3304+38	(	2 0 4521.0733727858 2 5473.6814584884 )	54.3251632561 (ExtendedPoll)
+	3304+39	(	2 0 4505.7604560942 2 5491.4509928311 )	54.2645642604 (ExtendedPoll)
+	3304+43	(	2 0 4501.4477273290 2 5497.9746774822 )	54.2316163720 (ExtendedPoll)
+	3304+45	(	2 0 4495.7156194766 2 5503.2973490595 )	54.2235944245 (ExtendedPoll)
+	3304+46	(	2 0 4478.5192959191 2 5519.2653637914 )	54.2004433791 (ExtendedPoll)
+	3304+47	(	2 0 4409.7340016894 2 5583.1374227190 )	54.1217038236 (ExtendedPoll)
+	3304+48	(	2 0 4134.5928247705 2 5838.6256584295 )	54.0371198163 (ExtendedPoll)
+	3304+50	(	2 0 4057.7279880439 2 5936.4536324451 )	53.8423122971 (ExtendedPoll)
+	3304+55	(	2 0 4036.3281187280 2 5959.1636978416 )	53.8369788559 (ExtendedPoll)
+	3304+63	(	2 0 4033.2436987883 2 5966.3424805330 )	53.8016467560 (ExtendedPoll)
+	3304+73	(	2 0 4033.3453648009 2 5966.5644451074 )	53.7987246325 (ExtendedPoll)
+	3304+77	(	2 0 4033.4533282953 2 5966.5074812194 )	53.7982274597 (ExtendedPoll)
+	3304+84	(	2 0 4033.4322917074 2 5966.5295898786 )	53.7982263075 (ExtendedPoll)
+	3304+85	(	2 0 4033.3691819436 2 5966.5959158563 )	53.7982228672 (ExtendedPoll)
+	3304+86	(	2 0 4033.1167428886 2 5966.8612197669 )	53.7982093544 (ExtendedPoll)
+	3304+94	(	2 0 4033.1071823367 2 5966.8731120948 )	53.7981924297 (ExtendedPoll)
+	3304+95	(	2 0 4033.0785006809 2 5966.9087890783 )	53.7981416597 (ExtendedPoll)
+	3304+100	(	2 0 4033.0925954613 2 5966.9029438115 )	53.7980625663 (ExtendedPoll)
+	3304+105	(	2 0 4033.0991795212 2 5966.8990892331 )	53.7980356267 (ExtendedPoll)
+	3304+115	(	2 0 4033.0989658428 2 5966.8995155138 )	53.7980338197 (ExtendedPoll)
+	3304+116	(	2 0 4033.0983248077 2 5966.9007943557 )	53.7980283990 (ExtendedPoll)
+	3304+119	(	2 0 4033.0980226539 2 5966.9016988988 )	53.7980231575 (ExtendedPoll)
+	3304+127	(	2 0 4033.0981418065 2 5966.9016952224 )	53.7980220818 (ExtendedPoll)
+	3304+129	(	2 0 4033.0982490223 2 5966.9016431107 )	53.7980215482 (ExtendedPoll)
+	3304+133	(	2 0 4033.0983032868 2 5966.9016184516 )	53.7980212629 (ExtendedPoll)
+	3304+134	(	2 0 4033.0983898253 2 5966.9015364642 )	53.7980211876 (ExtendedPoll)
+	3304+135	(	2 0 4033.0986494409 2 5966.9012905019 )	53.7980209620 (ExtendedPoll)
+	3304+136	(	2 0 4033.0996879031 2 5966.9003066526 )	53.7980200592 (ExtendedPoll)
+	3304+144	(	2 0 4033.0996674107 2 5966.9003282915 )	53.7980200572 (ExtendedPoll)
+	3304+145	(	2 0 4033.0996059334 2 5966.9003932080 )	53.7980200513 (ExtendedPoll)
+	3304+160	(	2 0 4033.0996058034 2 5966.9003936551 )	53.7980200485 (ExtendedPoll)
+	3304+167	(	2 0 4033.0996061081 2 5966.9003937799 )	53.7980200446 (ExtendedPoll)
+	3304+171	(	2 0 4033.0996062242 2 5966.9003937721 )	53.7980200436 (ExtendedPoll)
+	3483	(	3 0 3210.2889578675 2 3039.3458759311 1 3750.2389595149 )	46.5961289316
+	3488+3	(	2 0 4552.7233011568 2 5335.3470932817 )	55.5692389089 (ExtendedPoll)
+	3488+7	(	2 0 4440.9199022818 2 5558.9538910317 )	54.1048755479 (ExtendedPoll)
+	3488+29	(	2 0 4440.9496420561 2 5559.0071913847 )	54.1040659660 (ExtendedPoll)
+	3488+33	(	2 0 4440.9365610370 2 5559.0347632759 )	54.1038907469 (ExtendedPoll)
+	3488+34	(	2 0 4440.8905377740 2 5559.0748522452 )	54.1038670525 (ExtendedPoll)
+	3488+35	(	2 0 4440.7524679852 2 5559.1951191530 )	54.1037960247 (ExtendedPoll)
+	3488+36	(	2 0 4440.2001888298 2 5559.6761867843 )	54.1035127440 (ExtendedPoll)
+	3488+37	(	2 0 4437.9910722084 2 5561.6004573097 )	54.1023929098 (ExtendedPoll)
+	3488+38	(	2 0 4429.1546057226 2 5569.2975394109 )	54.0981264568 (ExtendedPoll)
+	3488+39	(	2 0 4393.8087397796 2 5600.0858678158 )	54.0844835555 (ExtendedPoll)
+	3488+42	(	2 0 4394.2113521169 2 5603.9686884921 )	54.0411680120 (ExtendedPoll)
+	3488+43	(	2 0 4388.9432720429 2 5609.7553878479 )	54.0274056417 (ExtendedPoll)
+	3488+48	(	2 0 4388.0032745945 2 5611.4664902813 )	54.0180260116 (ExtendedPoll)
+	3488+51	(	2 0 4386.7886136448 2 5612.9967583598 )	54.0128824739 (ExtendedPoll)
+	3488+57	(	2 0 4386.4467770046 2 5613.3454189378 )	54.0122750804 (ExtendedPoll)
+	3488+58	(	2 0 4385.4212670842 2 5614.3914006721 )	54.0104567213 (ExtendedPoll)
+	3488+59	(	2 0 4381.3192274022 2 5618.5753276090 )	54.0032406382 (ExtendedPoll)
+	3488+62	(	2 0 4380.5784036418 2 5619.2116598200 )	54.0031640007 (ExtendedPoll)
+	3488+63	(	2 0 4378.3559323606 2 5621.1206564531 )	54.0029484717 (ExtendedPoll)
+	3488+64	(	2 0 4369.4660472359 2 5628.7566429851 )	54.0023023644 (ExtendedPoll)
+	3488+72	(	2 0 4369.5969815447 2 5629.7243626813 )	53.9913292971 (ExtendedPoll)
+	3488+75	(	2 0 4369.6824940167 2 5630.2051304326 )	53.9857012024 (ExtendedPoll)
+	3488+82	(	2 0 4369.6472614388 2 5630.3220036975 )	53.9848193694 (ExtendedPoll)
+	3488+85	(	2 0 4369.6050333250 2 5630.3660727419 )	53.9847380922 (ExtendedPoll)
+	3488+86	(	2 0 4369.4783489833 2 5630.4982798750 )	53.9844943213 (ExtendedPoll)
+	3488+87	(	2 0 4368.9716116168 2 5631.0271084078 )	53.9835201449 (ExtendedPoll)
+	3488+91	(	2 0 4368.8845997443 2 5631.1127275039 )	53.9834056991 (ExtendedPoll)
+	3488+92	(	2 0 4368.6235641269 2 5631.3695847921 )	53.9830625988 (ExtendedPoll)
+	3488+93	(	2 0 4367.5794216571 2 5632.3970139452 )	53.9816937566 (ExtendedPoll)
+	3488+94	(	2 0 4363.4028517782 2 5636.5067305573 )	53.9762753650 (ExtendedPoll)
+	3488+95	(	2 0 4346.6965722627 2 5652.9455970056 )	53.9555155106 (ExtendedPoll)
+	3488+96	(	2 0 4279.8714542003 2 5718.7010627990 )	53.8872266051 (ExtendedPoll)
+	3488+97	(	2 0 4012.5709819511 2 5981.7229259727 )	53.8578815474 (ExtendedPoll)
+	3488+99	(	2 0 4003.8363414140 2 5994.7157037717 )	53.8249871296 (ExtendedPoll)
+	3488+107	(	2 0 4003.0106449257 2 5996.4848096773 )	53.8171655728 (ExtendedPoll)
+	3488+110	(	2 0 4002.3593853505 2 5997.2124120580 )	53.8168706752 (ExtendedPoll)
+	3488+111	(	2 0 4000.4056066249 2 5999.3952192000 )	53.8160033453 (ExtendedPoll)
+	3488+119	(	2 0 4000.3383801740 2 5999.4971117887 )	53.8157389067 (ExtendedPoll)
+	3488+120	(	2 0 4000.1367008212 2 5999.8027895547 )	53.8149458834 (ExtendedPoll)
+	3488+126	(	2 0 4000.1340485485 2 5999.8637668378 )	53.8144356991 (ExtendedPoll)
+	3488+134	(	2 0 4000.1293216626 2 5999.8697555108 )	53.8144274351 (ExtendedPoll)
+	3488+142	(	2 0 4000.1301279381 2 5999.8692461828 )	53.8144243508 (ExtendedPoll)
+	3488+146	(	2 0 4000.1294111560 2 5999.8703886418 )	53.8144210416 (ExtendedPoll)
+	3488+148	(	2 0 4000.1312576800 2 5999.8684223480 )	53.8144209958 (ExtendedPoll)
+	3488+149	(	2 0 4000.1367972520 2 5999.8625234666 )	53.8144208588 (ExtendedPoll)
+	3488+150	(	2 0 4000.1589555398 2 5999.8389279410 )	53.8144203127 (ExtendedPoll)
+	3488+151	(	2 0 4000.2475886910 2 5999.7445458387 )	53.8144181595 (ExtendedPoll)
+	3488+152	(	2 0 4000.6021212960 2 5999.3670174292 )	53.8144100483 (ExtendedPoll)
+	3488+153	(	2 0 4002.0202517159 2 5997.8569037914 )	53.8143856278 (ExtendedPoll)
+	3488+155	(	2 0 4002.1422495983 2 5997.8527654463 )	53.8132795659 (ExtendedPoll)
+	3488+164	(	2 0 4002.1489902101 2 5997.8491916670 )	53.8132478315 (ExtendedPoll)
+	3488+169	(	2 0 4002.1460036830 2 5997.8536843822 )	53.8132363424 (ExtendedPoll)
+	3488+176	(	2 0 4002.1464898557 2 5997.8532170669 )	53.8132358938 (ExtendedPoll)
+	3488+177	(	2 0 4002.1479483737 2 5997.8518151211 )	53.8132345481 (ExtendedPoll)
+	3488+178	(	2 0 4002.1537824458 2 5997.8462073379 )	53.8132291653 (ExtendedPoll)
+	3488+194	(	2 0 4002.1537952967 2 5997.8461997948 )	53.8132291112 (ExtendedPoll)
+	3488+205	(	2 0 4002.1537979211 2 5997.8462000219 )	53.8132290846 (ExtendedPoll)
+	3488+207	(	2 0 4002.1537995406 2 5997.8461991017 )	53.8132290775 (ExtendedPoll)
+	3488+208	(	2 0 4002.1538022459 2 5997.8461965406 )	53.8132290747 (ExtendedPoll)
+	3488+209	(	2 0 4002.1538103616 2 5997.8461888572 )	53.8132290662 (ExtendedPoll)
+	3488+218	(	2 0 4002.1538099327 2 5997.8461896839 )	53.8132290629 (ExtendedPoll)
+	3488+226	(	2 0 4002.1538099976 2 5997.8461897805 )	53.8132290615 (ExtendedPoll)
+	3488+229	(	2 0 4002.1538101107 2 5997.8461898084 )	53.8132290602 (ExtendedPoll)
+	3488+234	(	2 0 4002.1538101371 2 5997.8461898603 )	53.8132290595 (ExtendedPoll)
+	3729+22	(	2 0 4999.8953615990 2 4999.9816204393 )	55.9027305088 (ExtendedPoll)
+	3729+23	(	2 0 4999.7707564260 2 5000.1157917870 )	55.9020567360 (ExtendedPoll)
+	3729+24	(	2 0 4999.2723357338 2 5000.6524771780 )	55.8993623523 (ExtendedPoll)
+	3729+27	(	2 0 4999.1349773271 2 5000.8543164668 )	55.8979629118 (ExtendedPoll)
+	3729+34	(	2 0 4999.0739417340 2 5000.9153520600 )	55.8976901754 (ExtendedPoll)
+	3729+35	(	2 0 4998.8908349545 2 5001.0984588395 )	55.8968720583 (ExtendedPoll)
+	3729+36	(	2 0 4998.1584078364 2 5001.8308859575 )	55.8936009704 (ExtendedPoll)
+	3729+37	(	2 0 4995.2286993643 2 5004.7605944297 )	55.8805387184 (ExtendedPoll)
+	3729+38	(	2 0 4983.5098654757 2 5016.4794283182 )	55.8286442151 (ExtendedPoll)
+	3729+39	(	2 0 4936.6345299214 2 5063.3547638726 )	55.6267962813 (ExtendedPoll)
+	3729+40	(	2 0 4749.1331877041 2 5250.8561060898 )	54.9147822323 (ExtendedPoll)
+	3729+41	(	2 0 3999.1278188349 2 6000.8614749590 )	53.8151109452 (ExtendedPoll)
+	3729+58	(	2 0 3999.1207593662 2 6000.8750024663 )	53.8150584528 (ExtendedPoll)
+	3729+65	(	2 0 3999.1195214058 2 6000.8764534763 )	53.8150573268 (ExtendedPoll)
+	3729+66	(	2 0 3999.1158075247 2 6000.8808065061 )	53.8150539489 (ExtendedPoll)
+	3729+67	(	2 0 3999.1009520003 2 6000.8982186254 )	53.8150404383 (ExtendedPoll)
+	3729+77	(	2 0 3999.1012090993 2 6000.8986202144 )	53.8150345073 (ExtendedPoll)
+	3729+84	(	2 0 3999.1012443818 2 6000.8986682546 )	53.8150337554 (ExtendedPoll)
+	3729+85	(	2 0 3999.1011692098 2 6000.8987607750 )	53.8150336483 (ExtendedPoll)
+	3729+86	(	2 0 3999.1009436941 2 6000.8990383364 )	53.8150333272 (ExtendedPoll)
+	3729+96	(	2 0 3999.1009378077 2 6000.8990520256 )	53.8150332623 (ExtendedPoll)
+	3729+100	(	2 0 3999.1009370763 2 6000.8990594402 )	53.8150332041 (ExtendedPoll)
+	3729+103	(	2 0 3999.1009434424 2 6000.8990555693 )	53.8150331784 (ExtendedPoll)
+	3729+109	(	2 0 3999.1009426080 2 6000.8990572346 )	53.8150331716 (ExtendedPoll)
+	3729+113	(	2 0 3999.1009445289 2 6000.8990554321 )	53.8150331694 (ExtendedPoll)
+	3857+21	(	2 0 4999.7695768976 2 5000.1146922267 )	55.9020792324 (ExtendedPoll)
+	3857+22	(	2 0 4999.2676176204 2 5000.6480789368 )	55.8994523349 (ExtendedPoll)
+	3857+26	(	2 0 4999.0614867145 2 5000.9250615107 )	55.8976679710 (ExtendedPoll)
+	3857+37	(	2 0 4999.0655499855 2 5000.9315188764 )	55.8975579561 (ExtendedPoll)
+	3857+39	(	2 0 4999.0601491243 2 5000.9369076070 )	55.8975339712 (ExtendedPoll)
+	3857+40	(	2 0 4999.0439465409 2 5000.9530737988 )	55.8974620175 (ExtendedPoll)
+	3857+41	(	2 0 4998.9791362072 2 5001.0177385657 )	55.8971742134 (ExtendedPoll)
+	3857+42	(	2 0 4998.7198948722 2 5001.2763976335 )	55.8960231692 (ExtendedPoll)
+	3857+43	(	2 0 4997.6829295325 2 5002.3110339045 )	55.8914217511 (ExtendedPoll)
+	3857+44	(	2 0 4993.5350681737 2 5006.4495789887 )	55.8730602592 (ExtendedPoll)
+	3857+45	(	2 0 4976.9436227384 2 5023.0037593255 )	55.8003237383 (ExtendedPoll)
+	3857+46	(	2 0 4910.5778409973 2 5089.2204806727 )	55.5208926377 (ExtendedPoll)
+	3857+47	(	2 0 4645.1147140329 2 5354.0873660614 )	54.5978092091 (ExtendedPoll)
+	3857+49	(	2 0 4641.9961744036 2 5356.4416246436 )	54.5973154410 (ExtendedPoll)
+	3857+50	(	2 0 4632.6405555159 2 5363.5044003904 )	54.5960322314 (ExtendedPoll)
+	3857+51	(	2 0 4595.2180799647 2 5391.7555033777 )	54.5938886963 (ExtendedPoll)
+	3857+54	(	2 0 4589.5405636156 2 5406.2768432706 )	54.4819217775 (ExtendedPoll)
+	3857+59	(	2 0 4586.8655799511 2 5409.1224253831 )	54.4730509300 (ExtendedPoll)
+	3857+60	(	2 0 4578.8406289576 2 5417.6591717205 )	54.4466693127 (ExtendedPoll)
+	3857+61	(	2 0 4546.7408249837 2 5451.8061570703 )	54.3446263871 (ExtendedPoll)
+	3857+67	(	2 0 4544.4002142773 2 5454.9315206375 )	54.3305581908 (ExtendedPoll)
+	3857+70	(	2 0 4543.3834475273 2 5456.5982674743 )	54.3211315639 (ExtendedPoll)
+	3857+84	(	2 0 4543.3817833230 2 5456.6057131428 )	54.3210653441 (ExtendedPoll)
+	3857+87	(	2 0 4543.3799196151 2 5456.6131114083 )	54.3210013080 (ExtendedPoll)
+	3857+88	(	2 0 4543.3724892530 2 5456.6264388915 )	54.3209201075 (ExtendedPoll)
+	3857+99	(	2 0 4543.3733273061 2 5456.6259837410 )	54.3209179808 (ExtendedPoll)
+	3857+101	(	2 0 4543.3714783336 2 5456.6279477327 )	54.3209123378 (ExtendedPoll)
+	3857+102	(	2 0 4543.3659314160 2 5456.6338397077 )	54.3208954091 (ExtendedPoll)
+	3857+112	(	2 0 4543.3658531448 2 5456.6339296214 )	54.3208950973 (ExtendedPoll)
+	3857+113	(	2 0 4543.3656183312 2 5456.6341993626 )	54.3208941618 (ExtendedPoll)
+	3857+114	(	2 0 4543.3646790771 2 5456.6352783273 )	54.3208904201 (ExtendedPoll)
+	3857+118	(	2 0 4543.3645278465 2 5456.6354626442 )	54.3208897035 (ExtendedPoll)
+	3857+127	(	2 0 4543.3645352524 2 5456.6354634587 )	54.3208896327 (ExtendedPoll)
+	3857+131	(	2 0 4543.3645324236 2 5456.6354658827 )	54.3208896303 (ExtendedPoll)
+	3857+132	(	2 0 4543.3645239373 2 5456.6354731547 )	54.3208896231 (ExtendedPoll)
+	3857+133	(	2 0 4543.3644899919 2 5456.6355022427 )	54.3208895946 (ExtendedPoll)
+	3857+134	(	2 0 4543.3643542104 2 5456.6356185947 )	54.3208894804 (ExtendedPoll)
+	3857+135	(	2 0 4543.3638110842 2 5456.6360840029 )	54.3208890235 (ExtendedPoll)
+	3857+136	(	2 0 4543.3616385797 2 5456.6379456356 )	54.3208871959 (ExtendedPoll)
+	3857+137	(	2 0 4543.3529485614 2 5456.6453921663 )	54.3208798860 (ExtendedPoll)
+	3857+138	(	2 0 4543.3181884885 2 5456.6751782893 )	54.3208506492 (ExtendedPoll)
+	3857+139	(	2 0 4543.1791481970 2 5456.7943227813 )	54.3207337517 (ExtendedPoll)
+	3857+140	(	2 0 4542.6229870307 2 5457.2709007492 )	54.3202669568 (ExtendedPoll)
+	3857+141	(	2 0 4540.3983423657 2 5459.1772126208 )	54.3184125004 (ExtendedPoll)
+	3857+142	(	2 0 4531.4997637056 2 5466.8024601073 )	54.3111985229 (ExtendedPoll)
+	3857+143	(	2 0 4495.9054490650 2 5497.3034500534 )	54.2856217202 (ExtendedPoll)
+	3857+144	(	2 0 4353.5281905028 2 5619.3074098378 )	54.2368825197 (ExtendedPoll)
+	3857+146	(	2 0 4353.5041867680 2 5619.3635257316 )	54.2365196285 (ExtendedPoll)
+	3857+147	(	2 0 4353.4321755638 2 5619.5318734129 )	54.2354310246 (ExtendedPoll)
+	3857+148	(	2 0 4353.1441307467 2 5620.2052641384 )	54.2310776574 (ExtendedPoll)
+	3857+149	(	2 0 4351.9919514786 2 5622.8988270401 )	54.2136809672 (ExtendedPoll)
+	3857+150	(	2 0 4347.3832344061 2 5633.6730786469 )	54.1443630877 (ExtendedPoll)
+	3857+151	(	2 0 4346.4159412060 2 5635.3688272200 )	54.1355996268 (ExtendedPoll)
+	3857+152	(	2 0 4343.5140616057 2 5640.4560729390 )	54.1093792188 (ExtendedPoll)
+	3857+153	(	2 0 4331.9065432045 2 5660.8050558153 )	54.0055500944 (ExtendedPoll)
+	3857+156	(	2 0 4329.8320660769 2 5668.3386832786 )	53.9480883416 (ExtendedPoll)
+	3857+162	(	2 0 4334.3358651038 2 5665.1314324564 )	53.9408691910 (ExtendedPoll)
+	3857+170	(	2 0 4334.7698249059 2 5664.9075219934 )	53.9393230537 (ExtendedPoll)
+	3857+174	(	2 0 4335.0132475664 2 5664.9262078546 )	53.9370077879 (ExtendedPoll)
+	3857+178	(	2 0 4335.0593141454 2 5664.8861671994 )	53.9370070214 (ExtendedPoll)
+	3857+179	(	2 0 4335.1975138822 2 5664.7660452336 )	53.9370047791 (ExtendedPoll)
+	3857+185	(	2 0 4335.2265889224 2 5664.7567731080 )	53.9368437214 (ExtendedPoll)
+	3857+191	(	2 0 4335.2341353579 2 5664.7556510827 )	53.9367890253 (ExtendedPoll)
+	3857+193	(	2 0 4335.2400852963 2 5664.7508755444 )	53.9367849554 (ExtendedPoll)
+	3857+194	(	2 0 4335.2579351117 2 5664.7365489296 )	53.9367727467 (ExtendedPoll)
+	3857+197	(	2 0 4335.2420401136 2 5664.7511438225 )	53.9367651768 (ExtendedPoll)
+	3857+198	(	2 0 4335.1943551193 2 5664.7949285015 )	53.9367424744 (ExtendedPoll)
+	3857+199	(	2 0 4335.0036151422 2 5664.9700672173 )	53.9366517744 (ExtendedPoll)
+	3857+200	(	2 0 4334.2406552335 2 5665.6706220803 )	53.9362907282 (ExtendedPoll)
+	3857+201	(	2 0 4331.1888155990 2 5668.4728415326 )	53.9348746183 (ExtendedPoll)
+	3857+202	(	2 0 4318.9814570610 2 5679.6817193417 )	53.9296600779 (ExtendedPoll)
+	3857+203	(	2 0 4270.1520229090 2 5724.5172305782 )	53.9160449943 (ExtendedPoll)
+	3857+206	(	2 0 4270.2287922106 2 5726.4688768232 )	53.8962132135 (ExtendedPoll)
+	3857+209	(	2 0 4269.9967783213 2 5728.4085811769 )	53.8792448146 (ExtendedPoll)
+	3857+210	(	2 0 4267.4719212911 2 5731.3906420478 )	53.8723914551 (ExtendedPoll)
+	3857+213	(	2 0 4266.5745734546 2 5733.1256282638 )	53.8633577202 (ExtendedPoll)
+	3857+222	(	2 0 4266.4308176062 2 5733.3229626873 )	53.8627005560 (ExtendedPoll)
+	3857+223	(	2 0 4265.9995500609 2 5733.9149659579 )	53.8607301402 (ExtendedPoll)
+	3857+227	(	2 0 4265.8268724443 2 5734.0875636064 )	53.8605721022 (ExtendedPoll)
+	3857+228	(	2 0 4265.3088395946 2 5734.6053565521 )	53.8600989724 (ExtendedPoll)
+	3857+229	(	2 0 4263.2367081957 2 5736.6765283347 )	53.8582212182 (ExtendedPoll)
+	3857+230	(	2 0 4254.9481826001 2 5744.9612154653 )	53.8509466860 (ExtendedPoll)
+	3857+231	(	2 0 4221.7940802176 2 5778.0999639874 )	53.8256476388 (ExtendedPoll)
+	3857+232	(	2 0 4089.1776706878 2 5910.6549580759 )	53.7861774796 (ExtendedPoll)
+	3857+247	(	2 0 4089.1136696138 2 5910.7589031772 )	53.7858180957 (ExtendedPoll)
+	3857+248	(	2 0 4088.9216663918 2 5911.0707384809 )	53.7847402348 (ExtendedPoll)
+	3857+252	(	2 0 4088.8359939837 2 5911.1576970414 )	53.7847351920 (ExtendedPoll)
+	3857+253	(	2 0 4088.5789767594 2 5911.4185727227 )	53.7847203220 (ExtendedPoll)
+	3857+266	(	2 0 4088.5833028094 2 5911.4153495129 )	53.7847099233 (ExtendedPoll)
+	3857+273	(	2 0 4088.5841710836 2 5911.4149550584 )	53.7847055346 (ExtendedPoll)
+	3857+276	(	2 0 4088.5850132823 2 5911.4145076255 )	53.7847018687 (ExtendedPoll)
+	3857+280	(	2 0 4088.5854359861 2 5911.4142869556 )	53.7846999932 (ExtendedPoll)
+	3857+283	(	2 0 4088.5850617172 2 5911.4148479102 )	53.7846983212 (ExtendedPoll)
+	3857+291	(	2 0 4088.5850276880 2 5911.4148968462 )	53.7846981880 (ExtendedPoll)
+	3857+292	(	2 0 4088.5849256003 2 5911.4150436540 )	53.7846977884 (ExtendedPoll)
+	3857+297	(	2 0 4088.5849005844 2 5911.4150977550 )	53.7846975253 (ExtendedPoll)
+	3857+308	(	2 0 4088.5849003997 2 5911.4150986678 )	53.7846975187 (ExtendedPoll)
+	3857+309	(	2 0 4088.5848992968 2 5911.4151001689 )	53.7846975151 (ExtendedPoll)
+	3857+313	(	2 0 4088.5848988407 2 5911.4151009808 )	53.7846975119 (ExtendedPoll)
+	3857+316	(	2 0 4088.5848979979 2 5911.4151019930 )	53.7846975104 (ExtendedPoll)
+	4187+1	(	2 0 4105.5097056568 2 5894.3640876566 )	53.7853303801 (ExtendedPoll)
+	4187+33	(	2 0 4105.5249912111 2 5894.4490403525 )	53.7844103322 (ExtendedPoll)
+	4187+38	(	2 0 4105.5402085635 2 5894.4501641740 )	53.7842605703 (ExtendedPoll)
+	4187+42	(	2 0 4105.5590123984 2 5894.4395775740 )	53.7841854603 (ExtendedPoll)
+	4187+50	(	2 0 4105.5607070024 2 5894.4387021916 )	53.7841779690 (ExtendedPoll)
+	4187+51	(	2 0 4105.5636102425 2 5894.4362276993 )	53.7841740843 (ExtendedPoll)
+	4187+61	(	2 0 4105.5638149153 2 5894.4361054192 )	53.7841733315 (ExtendedPoll)
+	4187+65	(	2 0 4105.5638612668 2 5894.4360679458 )	53.7841732508 (ExtendedPoll)
+	4187+66	(	2 0 4105.5640003213 2 5894.4359555257 )	53.7841730088 (ExtendedPoll)
+	4187+72	(	2 0 4105.5640265310 2 5894.4359413401 )	53.7841728988 (ExtendedPoll)
+	4187+79	(	2 0 4105.5640472452 2 5894.4359452146 )	53.7841726734 (ExtendedPoll)
+	4187+85	(	2 0 4105.5640494603 2 5894.4359482098 )	53.7841726256 (ExtendedPoll)
+	4187+91	(	2 0 4105.5640494863 2 5894.4359491407 )	53.7841726169 (ExtendedPoll)
+	4187+92	(	2 0 4105.5640486402 2 5894.4359508001 )	53.7841726094 (ExtendedPoll)
+	4187+98	(	2 0 4105.5640493116 2 5894.4359501547 )	53.7841726092 (ExtendedPoll)
+	4187+99	(	2 0 4105.5640513257 2 5894.4359482183 )	53.7841726085 (ExtendedPoll)
+	4187+100	(	2 0 4105.5640593820 2 5894.4359404726 )	53.7841726058 (ExtendedPoll)
+	4187+112	(	2 0 4105.5640593940 2 5894.4359405296 )	53.7841726051 (ExtendedPoll)
+	4187+113	(	2 0 4105.5640595037 2 5894.4359404905 )	53.7841726045 (ExtendedPoll)
+	4310+8	(	2 0 4986.7257528443 2 5008.3439881737 )	55.9026187973 (ExtendedPoll)
+	4310+12	(	2 0 4975.6982691662 2 5019.3714718518 )	55.8540052955 (ExtendedPoll)
+	4310+13	(	2 0 4942.6158181319 2 5052.4539228861 )	55.7112095080 (ExtendedPoll)
+	4310+14	(	2 0 4810.2860139947 2 5184.7837270233 )	55.1870194047 (ExtendedPoll)
+	4310+15	(	2 0 4280.9667974460 2 5714.1029435721 )	53.9228267897 (ExtendedPoll)
+	4310+31	(	2 0 4282.9099137686 2 5713.8982254345 )	53.9076802800 (ExtendedPoll)
+	4310+34	(	2 0 4283.1982251457 2 5715.8293998657 )	53.8861047342 (ExtendedPoll)
+	4310+37	(	2 0 4285.4740084419 2 5714.2633061132 )	53.8814393469 (ExtendedPoll)
+	4310+44	(	2 0 4285.1205497824 2 5714.8564555920 )	53.8787142179 (ExtendedPoll)
+	4310+55	(	2 0 4285.1005852658 2 5714.8795367790 )	53.8786630424 (ExtendedPoll)
+	4310+56	(	2 0 4285.0406917160 2 5714.9487803400 )	53.8785095322 (ExtendedPoll)
+	4310+58	(	2 0 4285.0005710927 2 5714.9947752809 )	53.8784105470 (ExtendedPoll)
+	4310+70	(	2 0 4285.0007834768 2 5714.9966707681 )	53.8783899929 (ExtendedPoll)
+	4310+71	(	2 0 4284.9983617564 2 5714.9996181702 )	53.8783823323 (ExtendedPoll)
+	4310+72	(	2 0 4284.9910965952 2 5715.0084603766 )	53.8783593509 (ExtendedPoll)
+	4310+76	(	2 0 4284.9884190656 2 5715.0111774997 )	53.8783562185 (ExtendedPoll)
+	4310+77	(	2 0 4284.9803864769 2 5715.0193288691 )	53.8783468217 (ExtendedPoll)
+	4310+93	(	2 0 4284.9804412318 2 5715.0194883169 )	53.8783447670 (ExtendedPoll)
+	4310+98	(	2 0 4284.9804170022 2 5715.0195427745 )	53.8783444443 (ExtendedPoll)
+	4310+105	(	2 0 4284.9804316104 2 5715.0195457146 )	53.8783442863 (ExtendedPoll)
+	4310+107	(	2 0 4284.9804399767 2 5715.0195580455 )	53.8783440910 (ExtendedPoll)
+	4310+114	(	2 0 4284.9804363154 2 5715.0195618337 )	53.8783440860 (ExtendedPoll)
+	4310+115	(	2 0 4284.9804253315 2 5715.0195731983 )	53.8783440710 (ExtendedPoll)
+	4310+123	(	2 0 4284.9804248959 2 5715.0195740214 )	53.8783440667 (ExtendedPoll)
+	4310+124	(	2 0 4284.9804240703 2 5715.0195756911 )	53.8783440575 (ExtendedPoll)
+	4310+134	(	2 0 4284.9804241092 2 5715.0195758008 )	53.8783440561 (ExtendedPoll)
+	4310+139	(	2 0 4284.9804241503 2 5715.0195758421 )	53.8783440553 (ExtendedPoll)
+	4454	(	3 0 3210.2718306224 2 3039.4036796793 1 3750.2294356176 )	46.5957725777
+	4455	(	3 0 3210.2204488871 2 3039.5770909239 1 3750.2008639259 )	46.5947035783
+	4459+17	(	2 0 4999.8234054990 2 5000.1686007961 )	55.9010071498 (ExtendedPoll)
+	4459+18	(	2 0 4999.2960163907 2 5000.6767975791 )	55.8988833670 (ExtendedPoll)
+	4459+19	(	2 0 4997.1864599572 2 5002.7095847109 )	55.8903991267 (ExtendedPoll)
+	4459+20	(	2 0 4988.7482342235 2 5010.8407332383 )	55.8566367335 (ExtendedPoll)
+	4459+21	(	2 0 4954.9953312886 2 5043.3653273476 )	55.7244004145 (ExtendedPoll)
+	4459+22	(	2 0 4819.9837195490 2 5173.4637037851 )	55.2417552587 (ExtendedPoll)
+	4459+23	(	2 0 4279.9372725906 2 5693.8572095350 )	54.1320597545 (ExtendedPoll)
+	4459+25	(	2 0 4260.7210634090 2 5718.3142030389 )	54.0605176484 (ExtendedPoll)
+	4459+26	(	2 0 4203.0724358640 2 5791.6851835507 )	53.8630778677 (ExtendedPoll)
+	4459+35	(	2 0 4211.2611613676 2 5784.2607390941 )	53.8607636217 (ExtendedPoll)
+	4459+36	(	2 0 4235.8273378782 2 5761.9874057245 )	53.8557950144 (ExtendedPoll)
+	4459+41	(	2 0 4239.2666025897 2 5760.1381185483 )	53.8430394257 (ExtendedPoll)
+	4459+48	(	2 0 4238.4020949545 2 5761.2154477473 )	53.8403110732 (ExtendedPoll)
+	4459+49	(	2 0 4236.9895398051 2 5762.5631754865 )	53.8398579750 (ExtendedPoll)
+	4459+50	(	2 0 4232.7518743570 2 5766.6063587038 )	53.8385611120 (ExtendedPoll)
+	4459+51	(	2 0 4215.8012125647 2 5782.7790915733 )	53.8343120215 (ExtendedPoll)
+	4459+52	(	2 0 4147.9985653954 2 5847.4700230513 )	53.8324459450 (ExtendedPoll)
+	4459+58	(	2 0 4142.8942598315 2 5853.3659054138 )	53.8237142063 (ExtendedPoll)
+	4459+59	(	2 0 4127.5813431399 2 5871.0535525015 )	53.7986042338 (ExtendedPoll)
+	4459+68	(	2 0 4129.7411194915 2 5869.3305081768 )	53.7948876409 (ExtendedPoll)
+	4459+73	(	2 0 4130.5591390496 2 5868.7973880268 )	53.7923765042 (ExtendedPoll)
+	4459+78	(	2 0 4131.0192217390 2 5868.6337201408 )	53.7897014772 (ExtendedPoll)
+	4459+79	(	2 0 4131.7293377788 2 5867.9632682402 )	53.7894517155 (ExtendedPoll)
+	4459+80	(	2 0 4133.8596858981 2 5865.9519125383 )	53.7887184190 (ExtendedPoll)
+	4459+85	(	2 0 4134.5843028059 2 5865.2972409942 )	53.7882006022 (ExtendedPoll)
+	4459+88	(	2 0 4134.9640976007 2 5864.9903770359 )	53.7875931645 (ExtendedPoll)
+	4459+96	(	2 0 4134.9859247059 2 5864.9690484814 )	53.7875925935 (ExtendedPoll)
+	4459+97	(	2 0 4135.0514060213 2 5864.9050628179 )	53.7875908962 (ExtendedPoll)
+	4459+98	(	2 0 4135.3133312830 2 5864.6491201639 )	53.7875843437 (ExtendedPoll)
+	4459+99	(	2 0 4136.3610323297 2 5863.6253495479 )	53.7875619231 (ExtendedPoll)
+	4459+112	(	2 0 4136.3648032632 2 5863.6247733590 )	53.7875329472 (ExtendedPoll)
+	4459+113	(	2 0 4136.3761160637 2 5863.6230447924 )	53.7874460195 (ExtendedPoll)
+	4459+119	(	2 0 4136.3737259452 2 5863.6260178809 )	53.7874401351 (ExtendedPoll)
+	4459+133	(	2 0 4136.3738000302 2 5863.6261693177 )	53.7874380524 (ExtendedPoll)
+	4459+138	(	2 0 4136.3737497999 2 5863.6262370108 )	53.7874378803 (ExtendedPoll)
+	4459+140	(	2 0 4136.3737091508 2 5863.6262806039 )	53.7874378451 (ExtendedPoll)
+	4459+141	(	2 0 4136.3735872034 2 5863.6264113833 )	53.7874377393 (ExtendedPoll)
+	4459+150	(	2 0 4136.3735928884 2 5863.6264065675 )	53.7874377323 (ExtendedPoll)
+	4459+157	(	2 0 4136.3735936795 2 5863.6264060760 )	53.7874377297 (ExtendedPoll)
+	4459+158	(	2 0 4136.3735950382 2 5863.6264048019 )	53.7874377291 (ExtendedPoll)
+	4459+167	(	2 0 4136.3735951385 2 5863.6264047429 )	53.7874377288 (ExtendedPoll)
+	4459+171	(	2 0 4136.3735950627 2 5863.6264048312 )	53.7874377287 (ExtendedPoll)
+	4459+172	(	2 0 4136.3735948352 2 5863.6264050962 )	53.7874377283 (ExtendedPoll)
+	4459+181	(	2 0 4136.3735948402 2 5863.6264051370 )	53.7874377278 (ExtendedPoll)
+	4646+2	(	2 0 4105.5720108686 2 5894.4263928684 )	53.7841874022 (ExtendedPoll)
+	4646+29	(	2 0 4105.5833069765 2 5894.4161347829 )	53.7841780742 (ExtendedPoll)
+	4646+42	(	2 0 4105.5835293721 2 5894.4160488549 )	53.7841768253 (ExtendedPoll)
+	4646+43	(	2 0 4105.5841965588 2 5894.4157910708 )	53.7841730784 (ExtendedPoll)
+	4646+48	(	2 0 4105.5842867579 2 5894.4157131287 )	53.7841729675 (ExtendedPoll)
+	4646+67	(	2 0 4105.5842868659 2 5894.4157130854 )	53.7841729669 (ExtendedPoll)
+	4646+74	(	2 0 4105.5842868950 2 5894.4157130859 )	53.7841729666 (ExtendedPoll)
+	4725+19	(	2 0 4999.8031735893 2 5000.1447170134 )	55.9014542318 (ExtendedPoll)
+	4725+20	(	2 0 4999.2150887519 2 5000.5812624482 )	55.9006716187 (ExtendedPoll)
+	4725+21	(	2 0 4996.8627494022 2 5002.3274441874 )	55.8975509135 (ExtendedPoll)
+	4725+22	(	2 0 4987.4533920033 2 5009.3121711443 )	55.8852243268 (ExtendedPoll)
+	4725+23	(	2 0 4949.8159624076 2 5037.2510789717 )	55.8384358459 (ExtendedPoll)
+	4725+24	(	2 0 4799.2662440251 2 5149.0067102812 )	55.6927299999 (ExtendedPoll)
+	4725+27	(	2 0 4798.1744139579 2 5164.6198802413 )	55.5187163710 (ExtendedPoll)
+	4725+28	(	2 0 4798.1744139579 2 5196.0645861749 )	55.1525452486 (ExtendedPoll)
+	4725+33	(	2 0 4792.1420528370 2 5201.0324129804 )	55.1431419649 (ExtendedPoll)
+	4725+34	(	2 0 4774.0449694742 2 5215.9358933968 )	55.1157026271 (ExtendedPoll)
+	4725+35	(	2 0 4701.6566360229 2 5275.5498150626 )	55.0176540485 (ExtendedPoll)
+	4725+36	(	2 0 4412.1033022177 2 5514.0055017256 )	54.8221696457 (ExtendedPoll)
+	4725+40	(	2 0 4371.9239557470 2 5561.1725606260 )	54.6749065998 (ExtendedPoll)
+	4725+41	(	2 0 4251.3859163349 2 5702.6737373272 )	54.2973393293 (ExtendedPoll)
+	4725+44	(	2 0 4391.1401649287 2 5590.8703384522 )	54.2022453171 (ExtendedPoll)
+	4725+50	(	2 0 4362.3158511562 2 5624.4987045201 )	54.1076851285 (ExtendedPoll)
+	4725+55	(	2 0 4358.6036289279 2 5639.6751424533 )	53.9858955384 (ExtendedPoll)
+	4725+60	(	2 0 4355.6625116846 2 5642.2409431111 )	53.9855132092 (ExtendedPoll)
+	4725+61	(	2 0 4346.8391599545 2 5649.9383450844 )	53.9845992440 (ExtendedPoll)
+	4725+62	(	2 0 4311.5457530343 2 5680.7279529777 )	53.9844549147 (ExtendedPoll)
+	4725+67	(	2 0 4308.5432203496 2 5687.9340314208 )	53.9390274262 (ExtendedPoll)
+	4725+71	(	2 0 4307.7243477993 2 5691.7554366558 )	53.9082186256 (ExtendedPoll)
+	4725+83	(	2 0 4308.0052488063 2 5691.9562363603 )	53.9037540967 (ExtendedPoll)
+	4725+87	(	2 0 4308.1049356103 2 5691.8857845325 )	53.9035781830 (ExtendedPoll)
+	4725+93	(	2 0 4308.1185770304 2 5691.8789477872 )	53.9035262437 (ExtendedPoll)
+	4725+96	(	2 0 4308.1246647783 2 5691.8743491833 )	53.9035184462 (ExtendedPoll)
+	4725+100	(	2 0 4308.1208413138 2 5691.8781550898 )	53.9035142224 (ExtendedPoll)
+	4725+101	(	2 0 4308.1093709201 2 5691.8895728093 )	53.9035015515 (ExtendedPoll)
+	4725+102	(	2 0 4308.0634893453 2 5691.9352436871 )	53.9034508749 (ExtendedPoll)
+	4725+103	(	2 0 4307.8799630460 2 5692.1179271984 )	53.9032482824 (ExtendedPoll)
+	4725+104	(	2 0 4307.1458578490 2 5692.8486612434 )	53.9024397326 (ExtendedPoll)
+	4725+105	(	2 0 4304.2094370610 2 5695.7715974237 )	53.8992346674 (ExtendedPoll)
+	4725+106	(	2 0 4292.4637539088 2 5707.4633421446 )	53.8868812553 (ExtendedPoll)
+	4725+107	(	2 0 4245.4810213003 2 5754.2303210285 )	53.8449818536 (ExtendedPoll)
+	4725+108	(	2 0 4057.5500908662 2 5941.2982365638 )	53.8003145611 (ExtendedPoll)
+	4725+112	(	2 0 4057.3125325273 2 5942.2454844463 )	53.7939890318 (ExtendedPoll)
+	4725+119	(	2 0 4057.4393884670 2 5942.4540943610 )	53.7909379794 (ExtendedPoll)
+	4725+120	(	2 0 4057.1333775009 2 5942.8346355240 )	53.7903471560 (ExtendedPoll)
+	4725+123	(	2 0 4057.6371760427 2 5942.3623976952 )	53.7899322822 (ExtendedPoll)
+	4725+143	(	2 0 4057.6378562203 2 5942.3617292243 )	53.7899320010 (ExtendedPoll)
+	4725+144	(	2 0 4057.6398967532 2 5942.3597238116 )	53.7899311575 (ExtendedPoll)
+	4725+145	(	2 0 4057.6480588849 2 5942.3517021609 )	53.7899277838 (ExtendedPoll)
+	4725+154	(	2 0 4057.6479540349 2 5942.3519162868 )	53.7899268277 (ExtendedPoll)
+	4725+158	(	2 0 4057.6478865326 2 5942.3520145431 )	53.7899265685 (ExtendedPoll)
+	4725+159	(	2 0 4057.6476840256 2 5942.3523093118 )	53.7899257907 (ExtendedPoll)
+	4725+171	(	2 0 4057.6476847788 2 5942.3523129602 )	53.7899257509 (ExtendedPoll)
+	4725+175	(	2 0 4057.6476860982 2 5942.3523116454 )	53.7899257506 (ExtendedPoll)
+	4725+176	(	2 0 4057.6476900565 2 5942.3523077012 )	53.7899257494 (ExtendedPoll)
+	4725+177	(	2 0 4057.6477058896 2 5942.3522919242 )	53.7899257448 (ExtendedPoll)
+	4725+178	(	2 0 4057.6477692222 2 5942.3522288165 )	53.7899257264 (ExtendedPoll)
+	4725+179	(	2 0 4057.6480225525 2 5942.3519763854 )	53.7899256529 (ExtendedPoll)
+	4725+190	(	2 0 4057.6480214853 2 5942.3519779120 )	53.7899256490 (ExtendedPoll)
+	4725+197	(	2 0 4057.6480212763 2 5942.3519783281 )	53.7899256472 (ExtendedPoll)
+	4725+200	(	2 0 4057.6480210350 2 5942.3519787264 )	53.7899256458 (ExtendedPoll)
+	4725+203	(	2 0 4057.6480213991 2 5942.3519784360 )	53.7899256451 (ExtendedPoll)
+	4725+207	(	2 0 4057.6480219221 2 5942.3519780358 )	53.7899256438 (ExtendedPoll)
+	4725+211	(	2 0 4057.6480221025 2 5942.3519778887 )	53.7899256435 (ExtendedPoll)
+	4725+216	(	2 0 4057.6480219897 2 5942.3519780086 )	53.7899256435 (ExtendedPoll)
+	4725+221	(	2 0 4057.6480219698 2 5942.3519780298 )	53.7899256435 (ExtendedPoll)
+	4950	(	3 0 3210.2137213322 2 3039.6012428177 1 3750.1834642275 )	46.5946997610
+	4951	(	3 0 3210.1935386677 2 3039.6736984988 1 3750.1312651323 )	46.5946883143
+	4952	(	3 0 3210.1128080096 2 3039.9635212235 1 3749.9224687515 )	46.5946426050
+	4953	(	3 0 3209.7898853771 2 3041.1228121224 1 3749.0872832281 )	46.5944610083
+	4957+21	(	2 0 4999.9515314082 2 5000.0370988583 )	55.9016212277 (ExtendedPoll)
+	4957+22	(	2 0 4999.8061545413 2 5000.1484243416 )	55.9013860644 (ExtendedPoll)
+	4957+23	(	2 0 4999.2246470737 2 5000.5937262748 )	55.9004460290 (ExtendedPoll)
+	4957+24	(	2 0 4996.8986172034 2 5002.3749340079 )	55.8966957757 (ExtendedPoll)
+	4957+25	(	2 0 4987.5944977221 2 5009.4997649402 )	55.8818532664 (ExtendedPoll)
+	4957+26	(	2 0 4950.3780197968 2 5037.9990886692 )	55.8250376177 (ExtendedPoll)
+	4957+27	(	2 0 4801.5121080959 2 5151.9963835853 )	55.6398202521 (ExtendedPoll)
+	4957+29	(	2 0 4799.9016587469 2 5159.6391940553 )	55.5631771412 (ExtendedPoll)
+	4957+30	(	2 0 4795.0703106998 2 5182.5676254652 )	55.3341978198 (ExtendedPoll)
+	4957+31	(	2 0 4780.2214217867 2 5210.0817431571 )	55.1338115001 (ExtendedPoll)
+	4957+36	(	2 0 4799.2192649549 2 5198.7267104589 )	55.1133076930 (ExtendedPoll)
+	4957+47	(	2 0 4800.1328196439 2 5199.0717458199 )	55.1020064789 (ExtendedPoll)
+	4957+51	(	2 0 4800.6067634573 2 5199.1893521250 )	55.0968559487 (ExtendedPoll)
+	4957+57	(	2 0 4800.7025918042 2 5199.2649685543 )	55.0952132428 (ExtendedPoll)
+	4957+63	(	2 0 4800.7285047755 2 5199.2488491668 )	55.0951932210 (ExtendedPoll)
+	4957+65	(	2 0 4800.7568088740 2 5199.2374387295 )	55.0950994742 (ExtendedPoll)
+	4957+69	(	2 0 4800.7456186612 2 5199.2478121856 )	55.0950685340 (ExtendedPoll)
+	4957+70	(	2 0 4800.7120480229 2 5199.2789325537 )	55.0949757164 (ExtendedPoll)
+	4957+71	(	2 0 4800.5777654696 2 5199.4034140262 )	55.0946044924 (ExtendedPoll)
+	4957+72	(	2 0 4800.0406352565 2 5199.9013399163 )	55.0931203333 (ExtendedPoll)
+	4957+73	(	2 0 4797.8921144041 2 5201.8930434766 )	55.0871954955 (ExtendedPoll)
+	4957+74	(	2 0 4789.2980309945 2 5209.8598577177 )	55.0636852238 (ExtendedPoll)
+	4957+75	(	2 0 4754.9216973563 2 5241.7271146822 )	54.9726888507 (ExtendedPoll)
+	4957+76	(	2 0 4617.4163628032 2 5369.1961425400 )	54.6586519092 (ExtendedPoll)
+	4957+77	(	2 0 4067.3950245908 2 5879.0722539713 )	54.2760732951 (ExtendedPoll)
+	4957+81	(	2 0 4078.4498040205 2 5879.1268454747 )	54.1738605186 (ExtendedPoll)
+	4957+82	(	2 0 4111.6141423099 2 5879.2906199847 )	53.8682373433 (ExtendedPoll)
+	4957+83	(	2 0 4135.6344037869 2 5859.2009467494 )	53.8353496249 (ExtendedPoll)
+	4957+91	(	2 0 4139.1419078776 2 5857.4881383315 )	53.8193865804 (ExtendedPoll)
+	4957+96	(	2 0 4141.0884361692 2 5857.6587367795 )	53.8000899204 (ExtendedPoll)
+	4957+101	(	2 0 4141.5688840483 2 5857.7459552361 )	53.7949073397 (ExtendedPoll)
+	4957+104	(	2 0 4141.9346044712 2 5857.4223513050 )	53.7945977867 (ExtendedPoll)
+	4957+105	(	2 0 4143.0317657398 2 5856.4515395119 )	53.7936730233 (ExtendedPoll)
+	4957+106	(	2 0 4147.4204108144 2 5852.5682923396 )	53.7900323766 (ExtendedPoll)
+	4957+117	(	2 0 4147.4162293615 2 5852.5829669923 )	53.7899332894 (ExtendedPoll)
+	4957+128	(	2 0 4147.4160645968 2 5852.5834144589 )	53.7899306065 (ExtendedPoll)
+	4957+129	(	2 0 4147.4153897141 2 5852.5840882751 )	53.7899304432 (ExtendedPoll)
+	4957+130	(	2 0 4147.4133650660 2 5852.5861097238 )	53.7899299534 (ExtendedPoll)
+	4957+131	(	2 0 4147.4052664734 2 5852.5941955188 )	53.7899279944 (ExtendedPoll)
+	4957+132	(	2 0 4147.3728721030 2 5852.6265386988 )	53.7899201620 (ExtendedPoll)
+	4957+133	(	2 0 4147.2432946213 2 5852.7559114185 )	53.7898888919 (ExtendedPoll)
+	4957+134	(	2 0 4146.7249846949 2 5853.2734022975 )	53.7897647629 (ExtendedPoll)
+	4957+135	(	2 0 4144.6517449892 2 5855.3433658132 )	53.7892834747 (ExtendedPoll)
+	4957+136	(	2 0 4136.3587861663 2 5863.6232198764 )	53.7876021773 (ExtendedPoll)
+	4957+137	(	2 0 4103.1869508749 2 5896.7426361291 )	53.7847922558 (ExtendedPoll)
+	4957+145	(	2 0 4103.1682983337 2 5896.8007512235 )	53.7844302124 (ExtendedPoll)
+	4957+150	(	2 0 4103.1669213843 2 5896.8312377825 )	53.7841632090 (ExtendedPoll)
+	4957+157	(	2 0 4103.1650483182 2 5896.8345609654 )	53.7841499007 (ExtendedPoll)
+	4957+160	(	2 0 4103.1624316887 2 5896.8373367825 )	53.7841484300 (ExtendedPoll)
+	4957+170	(	2 0 4103.1626410673 2 5896.8372227473 )	53.7841475564 (ExtendedPoll)
+	4957+174	(	2 0 4103.1625629696 2 5896.8373128117 )	53.7841474463 (ExtendedPoll)
+	4957+175	(	2 0 4103.1623286764 2 5896.8375830050 )	53.7841471160 (ExtendedPoll)
+	4957+184	(	2 0 4103.1623613751 2 5896.8376095974 )	53.7841465724 (ExtendedPoll)
+	4957+185	(	2 0 4103.1623318769 2 5896.8376613910 )	53.7841463677 (ExtendedPoll)
+	4957+189	(	2 0 4103.1623225735 2 5896.8376730311 )	53.7841463463 (ExtendedPoll)
+	4957+199	(	2 0 4103.1623243672 2 5896.8376725291 )	53.7841463344 (ExtendedPoll)
+	4957+202	(	2 0 4103.1623260046 2 5896.8376734171 )	53.7841463113 (ExtendedPoll)
+	4957+206	(	2 0 4103.1623267413 2 5896.8376728473 )	53.7841463097 (ExtendedPoll)
+	4957+214	(	2 0 4103.1623267301 2 5896.8376730798 )	53.7841463077 (ExtendedPoll)
+	4957+216	(	2 0 4103.1623264493 2 5896.8376734513 )	53.7841463069 (ExtendedPoll)
+	4957+221	(	2 0 4103.1623262249 2 5896.8376736923 )	53.7841463067 (ExtendedPoll)
+	4957+222	(	2 0 4103.1623255517 2 5896.8376744152 )	53.7841463063 (ExtendedPoll)
+	4957+228	(	2 0 4103.1623256446 2 5896.8376743450 )	53.7841463061 (ExtendedPoll)
+	5195+2	(	2 0 4552.7863948639 2 5335.4101869888 )	55.5680147602 (ExtendedPoll)
+	5195+12	(	2 0 4572.0026040455 2 5394.8057426411 )	54.7532818545 (ExtendedPoll)
+	5195+14	(	2 0 4528.3294013600 2 5438.4789453267 )	54.6428900648 (ExtendedPoll)
+	5195+15	(	2 0 4397.3097933033 2 5569.4985533833 )	54.3697111024 (ExtendedPoll)
+	5195+16	(	2 0 3873.2313610768 2 6093.5769856098 )	54.2139782157 (ExtendedPoll)
+	5195+25	(	2 0 3901.1822107956 2 6079.1648287236 )	54.0675524851 (ExtendedPoll)
+	5195+30	(	2 0 3904.6760670104 2 6094.4504496635 )	53.9053251878 (ExtendedPoll)
+	5195+38	(	2 0 3905.5158378706 2 6093.9518756993 )	53.9014892203 (ExtendedPoll)
+	5195+42	(	2 0 3905.9712291027 2 6093.7758394257 )	53.8986171016 (ExtendedPoll)
+	5195+47	(	2 0 3906.2152648514 2 6093.7828499557 )	53.8962262883 (ExtendedPoll)
+	5195+53	(	2 0 3906.2570598051 2 6093.7383694092 )	53.8962008251 (ExtendedPoll)
+	5195+54	(	2 0 3906.3824446664 2 6093.6049277697 )	53.8961245036 (ExtendedPoll)
+	5195+55	(	2 0 3906.8839841115 2 6093.0711612115 )	53.8958202370 (ExtendedPoll)
+	5195+56	(	2 0 3908.8901418918 2 6090.9360949789 )	53.8946194836 (ExtendedPoll)
+	5195+57	(	2 0 3916.9147730132 2 6082.3958300485 )	53.8900773214 (ExtendedPoll)
+	5195+58	(	2 0 3949.0132974987 2 6048.2347703268 )	53.8760722747 (ExtendedPoll)
+	5195+60	(	2 0 3952.3160834518 2 6046.1534692613 )	53.8626856098 (ExtendedPoll)
+	5195+68	(	2 0 3953.1776056142 2 6046.6132320786 )	53.8505840740 (ExtendedPoll)
+	5195+71	(	2 0 3953.5789384631 2 6046.3350499844 )	53.8491773294 (ExtendedPoll)
+	5195+80	(	2 0 3953.6091921986 2 6046.3390542165 )	53.8488567166 (ExtendedPoll)
+	5195+81	(	2 0 3953.6616312293 2 6046.3078233717 )	53.8486289876 (ExtendedPoll)
+	5195+82	(	2 0 3953.7497026781 2 6046.2232971719 )	53.8485221437 (ExtendedPoll)
+	5195+83	(	2 0 3954.0139170244 2 6045.9697185726 )	53.8482018728 (ExtendedPoll)
+	5195+94	(	2 0 3954.0185845590 2 6045.9794463233 )	53.8480741214 (ExtendedPoll)
+	5195+100	(	2 0 3954.0184347508 2 6045.9813477797 )	53.8480591976 (ExtendedPoll)
+	5195+112	(	2 0 3954.0185244766 2 6045.9812692933 )	53.8480590234 (ExtendedPoll)
+	5195+113	(	2 0 3954.0187936542 2 6045.9810338338 )	53.8480585006 (ExtendedPoll)
+	5195+114	(	2 0 3954.0198703645 2 6045.9800919962 )	53.8480564096 (ExtendedPoll)
+	5195+119	(	2 0 3954.0199556739 2 6045.9800087306 )	53.8480563182 (ExtendedPoll)
+	5195+120	(	2 0 3954.0202116021 2 6045.9797589338 )	53.8480560440 (ExtendedPoll)
+	5195+121	(	2 0 3954.0212353150 2 6045.9787597466 )	53.8480549472 (ExtendedPoll)
+	5195+131	(	2 0 3954.0212561678 2 6045.9787384550 )	53.8480549329 (ExtendedPoll)
+	5195+132	(	2 0 3954.0213187265 2 6045.9786745799 )	53.8480548901 (ExtendedPoll)
+	5195+133	(	2 0 3954.0215689610 2 6045.9784190796 )	53.8480547188 (ExtendedPoll)
+	5195+134	(	2 0 3954.0225698990 2 6045.9773970786 )	53.8480540335 (ExtendedPoll)
+	5195+135	(	2 0 3954.0265736512 2 6045.9733090745 )	53.8480512924 (ExtendedPoll)
+	5195+136	(	2 0 3954.0425886598 2 6045.9569570580 )	53.8480403289 (ExtendedPoll)
+	5195+137	(	2 0 3954.1066486941 2 6045.8915489921 )	53.8479964904 (ExtendedPoll)
+	5195+138	(	2 0 3954.3628888317 2 6045.6299167285 )	53.8478213863 (ExtendedPoll)
+	5195+139	(	2 0 3955.3878493820 2 6044.5833876740 )	53.8471249631 (ExtendedPoll)
+	5195+140	(	2 0 3959.4876915833 2 6040.3972714563 )	53.8444031448 (ExtendedPoll)
+	5195+141	(	2 0 3975.8870603884 2 6023.6528065852 )	53.8345365224 (ExtendedPoll)
+	5195+142	(	2 0 4041.4845356089 2 5956.6749471009 )	53.8113115046 (ExtendedPoll)
+	5195+145	(	2 0 4041.6035546824 2 5956.7020629246 )	53.8099638531 (ExtendedPoll)
+	5195+146	(	2 0 4041.9606119028 2 5956.7834103954 )	53.8059210158 (ExtendedPoll)
+	5195+147	(	2 0 4042.3009558066 2 5957.1335637099 )	53.7996303534 (ExtendedPoll)
+	5195+148	(	2 0 4043.0741932721 2 5956.5373221342 )	53.7977822528 (ExtendedPoll)
+	5195+151	(	2 0 4043.9165231091 2 5956.0430131312 )	53.7943836123 (ExtendedPoll)
+	5195+153	(	2 0 4044.5989169010 2 5955.3444124866 )	53.7942993075 (ExtendedPoll)
+	5195+154	(	2 0 4046.6460982769 2 5953.2486105531 )	53.7940631506 (ExtendedPoll)
+	5195+155	(	2 0 4054.8348237804 2 5944.8654028188 )	53.7933696899 (ExtendedPoll)
+	5195+166	(	2 0 4055.0724354313 2 5944.9214870586 )	53.7906651766 (ExtendedPoll)
+	5195+176	(	2 0 4055.0761548684 2 5944.9206398974 )	53.7906383460 (ExtendedPoll)
+	5195+180	(	2 0 4055.0778890903 2 5944.9198458871 )	53.7906294220 (ExtendedPoll)
+	5195+181	(	2 0 4055.0811305415 2 5944.9178346926 )	53.7906174793 (ExtendedPoll)
+	5195+184	(	2 0 4055.0777945058 2 5944.9220743514 )	53.7906102701 (ExtendedPoll)
+	5195+198	(	2 0 4055.0778330577 2 5944.9221198097 )	53.7906095046 (ExtendedPoll)
+	5195+199	(	2 0 4055.0777705351 2 5944.9222213074 )	53.7906091714 (ExtendedPoll)
+	5195+201	(	2 0 4055.0780084500 2 5944.9219823862 )	53.7906091154 (ExtendedPoll)
+	5195+202	(	2 0 4055.0787221949 2 5944.9212656228 )	53.7906089474 (ExtendedPoll)
+	5195+203	(	2 0 4055.0815771745 2 5944.9183985692 )	53.7906082755 (ExtendedPoll)
+	5195+204	(	2 0 4055.0929970928 2 5944.9069303548 )	53.7906055884 (ExtendedPoll)
+	5195+205	(	2 0 4055.1386767659 2 5944.8610574972 )	53.7905948477 (ExtendedPoll)
+	5195+206	(	2 0 4055.3213954584 2 5944.6775660669 )	53.7905520064 (ExtendedPoll)
+	5195+207	(	2 0 4056.0522702285 2 5943.9436003453 )	53.7903825885 (ExtendedPoll)
+	5195+208	(	2 0 4058.9757693086 2 5941.0077374592 )	53.7897360619 (ExtendedPoll)
+	5195+209	(	2 0 4070.6697656292 2 5929.2642859147 )	53.7876477253 (ExtendedPoll)
+	5195+210	(	2 0 4117.4457509116 2 5882.2904797367 )	53.7872228417 (ExtendedPoll)
+	5195+213	(	2 0 4117.6891202600 2 5882.3097520301 )	53.7848204977 (ExtendedPoll)
+	5195+228	(	2 0 4117.6899942270 2 5882.3093703541 )	53.7848160313 (ExtendedPoll)
+	5195+229	(	2 0 4117.6915671836 2 5882.3082915651 )	53.7848116087 (ExtendedPoll)
+	5195+235	(	2 0 4117.6919572521 2 5882.3080173020 )	53.7848105741 (ExtendedPoll)
+	5195+242	(	2 0 4117.6920091373 2 5882.3079879653 )	53.7848103706 (ExtendedPoll)
+	5195+245	(	2 0 4117.6920521121 2 5882.3079466630 )	53.7848103589 (ExtendedPoll)
+	5195+253	(	2 0 4117.6920497867 2 5882.3079495734 )	53.7848103533 (ExtendedPoll)
+	5195+263	(	2 0 4117.6920499996 2 5882.3079496675 )	53.7848103505 (ExtendedPoll)
+	5195+266	(	2 0 4117.6920502143 2 5882.3079495774 )	53.7848103493 (ExtendedPoll)
+	5195+269	(	2 0 4117.6920504410 2 5882.3079495242 )	53.7848103478 (ExtendedPoll)
+	5195+275	(	2 0 4117.6920503703 2 5882.3079496167 )	53.7848103475 (ExtendedPoll)
+	5478+3	(	2 0 4909.1597287779 2 5083.8525395201 )	55.5960691542 (ExtendedPoll)
+	5478+4	(	2 0 4636.6389440201 2 5335.4101869888 )	54.8753885588 (ExtendedPoll)
+	5478+13	(	2 0 4690.7937153502 2 5303.9654810552 )	54.7846942177 (ExtendedPoll)
+	5478+15	(	2 0 4565.0148916158 2 5429.7443047896 )	54.4304906658 (ExtendedPoll)
+	5478+16	(	2 0 4187.6784204127 2 5807.0807759926 )	53.8546415124 (ExtendedPoll)
+	5478+28	(	2 0 4195.7852586612 2 5799.5744442811 )	53.8531825911 (ExtendedPoll)
+	5478+29	(	2 0 4220.1057734067 2 5777.0554491463 )	53.8508015438 (ExtendedPoll)
+	5478+31	(	2 0 4231.5699891117 2 5766.4646974951 )	53.8504789320 (ExtendedPoll)
+	5478+34	(	2 0 4237.6296459843 2 5761.5514621930 )	53.8439440609 (ExtendedPoll)
+	5478+41	(	2 0 4239.1257943732 2 5760.2958576158 )	53.8427664280 (ExtendedPoll)
+	5478+46	(	2 0 4239.9101207378 2 5759.7136904120 )	53.8414160967 (ExtendedPoll)
+	5478+50	(	2 0 4239.7094543134 2 5760.1588457372 )	53.8388916705 (ExtendedPoll)
+	5478+54	(	2 0 4239.2194102715 2 5760.6452645620 )	53.8385475799 (ExtendedPoll)
+	5478+55	(	2 0 4237.7492781460 2 5762.1045210365 )	53.8375232191 (ExtendedPoll)
+	5478+56	(	2 0 4231.8687496437 2 5767.9415469345 )	53.8335445270 (ExtendedPoll)
+	5478+57	(	2 0 4208.3466356348 2 5791.2896505265 )	53.8195350703 (ExtendedPoll)
+	5478+58	(	2 0 4114.2581795991 2 5884.6820648944 )	53.7943112519 (ExtendedPoll)
+	5478+71	(	2 0 4114.9485701934 2 5884.6988048671 )	53.7878427663 (ExtendedPoll)
+	5478+74	(	2 0 4115.3912731659 2 5884.4929138652 )	53.7856923145 (ExtendedPoll)
+	5478+80	(	2 0 4115.5104388474 2 5884.4664511137 )	53.7848465681 (ExtendedPoll)
+	5478+86	(	2 0 4115.5040354705 2 5884.4803013045 )	53.7847774342 (ExtendedPoll)
+	5478+92	(	2 0 4115.5085943246 2 5884.4864188582 )	53.7846793465 (ExtendedPoll)
+	5478+94	(	2 0 4115.5038751700 2 5884.4924136225 )	53.7846672332 (ExtendedPoll)
+	5478+99	(	2 0 4115.5033916134 2 5884.4961975456 )	53.7846367702 (ExtendedPoll)
+	5478+108	(	2 0 4115.5032700638 2 5884.4964026531 )	53.7846359908 (ExtendedPoll)
+	5478+109	(	2 0 4115.5029054151 2 5884.4970179759 )	53.7846336525 (ExtendedPoll)
+	5478+117	(	2 0 4115.5029626983 2 5884.4970015034 )	53.7846332805 (ExtendedPoll)
+	5478+121	(	2 0 4115.5030374021 2 5884.4969624551 )	53.7846329574 (ExtendedPoll)
+	5478+142	(	2 0 4115.5030374174 2 5884.4969625705 )	53.7846329562 (ExtendedPoll)
+	5629+9	(	2 0 4975.5429968599 2 5019.6529315723 )	55.8517940762 (ExtendedPoll)
+	5629+10	(	2 0 4902.1720163482 2 5078.6117551978 )	55.7134020563 (ExtendedPoll)
+	5629+11	(	2 0 4608.6880943013 2 5314.4470496997 )	55.3395226272 (ExtendedPoll)
+	5629+15	(	2 0 4552.7863948639 2 5426.2504485747 )	54.5705629398 (ExtendedPoll)
+	5629+20	(	2 0 4591.6555452540 2 5405.2873112856 )	54.4751741266 (ExtendedPoll)
+	5629+33	(	2 0 4592.5840273072 2 5406.3096224852 )	54.4562806449 (ExtendedPoll)
+	5629+37	(	2 0 4592.3579843636 2 5406.7424094230 )	54.4534252540 (ExtendedPoll)
+	5629+38	(	2 0 4591.6798555328 2 5408.0407702362 )	54.4448631609 (ExtendedPoll)
+	5629+44	(	2 0 4591.6012203107 2 5408.2719044772 )	54.4429899385 (ExtendedPoll)
+	5629+48	(	2 0 4591.5696196138 2 5408.3898106624 )	54.4419637140 (ExtendedPoll)
+	5629+52	(	2 0 4591.5680918914 2 5408.4202901410 )	54.4416432602 (ExtendedPoll)
+	5629+58	(	2 0 4591.5700204171 2 5408.4276717726 )	54.4415465559 (ExtendedPoll)
+	5629+60	(	2 0 4591.5654575021 2 5408.4337863066 )	54.4415176321 (ExtendedPoll)
+	5629+67	(	2 0 4591.5646332830 2 5408.4348538518 )	54.4415128113 (ExtendedPoll)
+	5629+71	(	2 0 4591.5645519834 2 5408.4353237071 )	54.4415083512 (ExtendedPoll)
+	5629+79	(	2 0 4591.5646115597 2 5408.4353255431 )	54.4415078361 (ExtendedPoll)
+	5629+84	(	2 0 4591.5645990175 2 5408.4353525777 )	54.4415076449 (ExtendedPoll)
+	5629+85	(	2 0 4591.5645613907 2 5408.4354336816 )	54.4415070710 (ExtendedPoll)
+	5629+94	(	2 0 4591.5645699689 2 5408.4354275629 )	54.4415070666 (ExtendedPoll)
+	5629+101	(	2 0 4591.5645717027 2 5408.4354268822 )	54.4415070596 (ExtendedPoll)
+	5629+103	(	2 0 4591.5645704450 2 5408.4354282562 )	54.4415070551 (ExtendedPoll)
+	5629+104	(	2 0 4591.5645666721 2 5408.4354323781 )	54.4415070414 (ExtendedPoll)
+	5629+109	(	2 0 4591.5645657541 2 5408.4354339988 )	54.4415070313 (ExtendedPoll)
+	5629+119	(	2 0 4591.5645658577 2 5408.4354341268 )	54.4415070290 (ExtendedPoll)
+	5755+17	(	2 0 4999.4391479660 2 5000.4028159491 )	55.9011173930 (ExtendedPoll)
+	5755+18	(	2 0 4997.7566207727 2 5001.6112927051 )	55.8993758016 (ExtendedPoll)
+	5755+19	(	2 0 4991.0265119995 2 5006.4451997289 )	55.8924862980 (ExtendedPoll)
+	5755+20	(	2 0 4964.1060769066 2 5025.7808278241 )	55.8661643975 (ExtendedPoll)
+	5755+21	(	2 0 4856.4243365351 2 5103.1233402051 )	55.7810605478 (ExtendedPoll)
+	5755+24	(	2 0 4863.9579639983 2 5116.7712160443 )	55.5599122421 (ExtendedPoll)
+	5755+25	(	2 0 4848.2356110316 2 5143.8486017093 )	55.3646109717 (ExtendedPoll)
+	5755+31	(	2 0 4842.8037564475 2 5149.4715265551 )	55.3415309539 (ExtendedPoll)
+	5755+32	(	2 0 4826.5081926955 2 5166.3403010924 )	55.2731138922 (ExtendedPoll)
+	5755+33	(	2 0 4761.3259376873 2 5233.8153992415 )	55.0119577195 (ExtendedPoll)
+	5755+36	(	2 0 4739.4893363446 2 5256.0887326112 )	54.9328003343 (ExtendedPoll)
+	5755+37	(	2 0 4673.9795323162 2 5322.9087327200 )	54.7090508194 (ExtendedPoll)
+	5755+39	(	2 0 4628.5594015233 2 5364.8350072982 )	54.6149385255 (ExtendedPoll)
+	5755+40	(	2 0 4492.2990091444 2 5490.6138310325 )	54.3872651867 (ExtendedPoll)
+	5755+41	(	2 0 3947.2574396288 2 5993.7291259700 )	54.3655883138 (ExtendedPoll)
+	5755+49	(	2 0 3928.0412304472 2 6053.1246816223 )	54.0330892795 (ExtendedPoll)
+	5755+58	(	2 0 3929.8700458096 2 6060.7129005889 )	53.9508748031 (ExtendedPoll)
+	5755+60	(	2 0 3925.2024722726 2 6066.9909234750 )	53.9417691814 (ExtendedPoll)
+	5755+61	(	2 0 3911.1997516616 2 6085.8249921331 )	53.9156381344 (ExtendedPoll)
+	5755+66	(	2 0 3919.7706176886 2 6078.8372797034 )	53.8929555395 (ExtendedPoll)
+	5755+74	(	2 0 3920.5459876347 2 6078.2435971044 )	53.8905945920 (ExtendedPoll)
+	5755+75	(	2 0 3922.8720974731 2 6076.4625493074 )	53.8835272419 (ExtendedPoll)
+	5755+81	(	2 0 3922.0826531550 2 6077.5957494982 )	53.8814445368 (ExtendedPoll)
+	5755+87	(	2 0 3922.3040046412 2 6077.4927773412 )	53.8802087502 (ExtendedPoll)
+	5755+90	(	2 0 3922.2317402049 2 6077.7259640948 )	53.8789219399 (ExtendedPoll)
+	5755+100	(	2 0 3922.2265169811 2 6077.7403010701 )	53.8788502601 (ExtendedPoll)
+	5755+101	(	2 0 3922.2108473095 2 6077.7833119959 )	53.8786352255 (ExtendedPoll)
+	5755+107	(	2 0 3922.2085611664 2 6077.7905908301 )	53.8785953531 (ExtendedPoll)
+	5755+113	(	2 0 3922.2107347292 2 6077.7889934610 )	53.8785881820 (ExtendedPoll)
+	5755+122	(	2 0 3922.2108535295 2 6077.7889835942 )	53.8785871342 (ExtendedPoll)
+	5755+123	(	2 0 3922.2110146221 2 6077.7888078314 )	53.8785870886 (ExtendedPoll)
+	5755+124	(	2 0 3922.2114979001 2 6077.7882805429 )	53.8785869518 (ExtendedPoll)
+	5755+125	(	2 0 3922.2134310120 2 6077.7861713891 )	53.8785864048 (ExtendedPoll)
+	5755+126	(	2 0 3922.2211634595 2 6077.7777347737 )	53.8785842169 (ExtendedPoll)
+	5755+127	(	2 0 3922.2520932495 2 6077.7439883121 )	53.8785754693 (ExtendedPoll)
+	5755+128	(	2 0 3922.3758124097 2 6077.6090024659 )	53.8785405430 (ExtendedPoll)
+	5755+129	(	2 0 3922.8706890504 2 6077.0690590808 )	53.8784018624 (ExtendedPoll)
+	5755+130	(	2 0 3924.8501956130 2 6074.9092855406 )	53.8778635334 (ExtendedPoll)
+	5755+131	(	2 0 3932.7682218633 2 6066.2701913799 )	53.8759723517 (ExtendedPoll)
+	5755+132	(	2 0 3964.4403268649 2 6031.7138147370 )	53.8725913899 (ExtendedPoll)
+	5755+134	(	2 0 3964.6765257473 2 6031.6520794236 )	53.8708963698 (ExtendedPoll)
+	5755+135	(	2 0 3965.3851223947 2 6031.4668734835 )	53.8658119765 (ExtendedPoll)
+	5755+136	(	2 0 3968.2195089840 2 6030.7260497231 )	53.8454844045 (ExtendedPoll)
+	5755+138	(	2 0 3966.5220544265 2 6032.9062978884 )	53.8426385768 (ExtendedPoll)
+	5755+139	(	2 0 3964.0381410238 2 6035.9224784489 )	53.8400218659 (ExtendedPoll)
+	5755+154	(	2 0 3964.1134625710 2 6035.8803219730 )	53.8396748316 (ExtendedPoll)
+	5755+157	(	2 0 3964.1376216602 2 6035.8616765123 )	53.8396077632 (ExtendedPoll)
+	5755+166	(	2 0 3964.1391333458 2 6035.8605134178 )	53.8396035356 (ExtendedPoll)
+	5755+171	(	2 0 3964.1395137360 2 6035.8602258817 )	53.8396024275 (ExtendedPoll)
+	5755+175	(	2 0 3964.1397422881 2 6035.8601580043 )	53.8396008562 (ExtendedPoll)
+	5755+176	(	2 0 3964.1401032802 2 6035.8598464624 )	53.8396001384 (ExtendedPoll)
+	5755+184	(	2 0 3964.1401437730 2 6035.8598027239 )	53.8396001338 (ExtendedPoll)
+	5755+185	(	2 0 3964.1402652513 2 6035.8596715087 )	53.8396001200 (ExtendedPoll)
+	5755+186	(	2 0 3964.1407511646 2 6035.8591466477 )	53.8396000647 (ExtendedPoll)
+	5755+187	(	2 0 3964.1426948176 2 6035.8570472037 )	53.8395998438 (ExtendedPoll)
+	5755+188	(	2 0 3964.1504694296 2 6035.8486494278 )	53.8395989603 (ExtendedPoll)
+	5755+189	(	2 0 3964.1815678778 2 6035.8150583240 )	53.8395954303 (ExtendedPoll)
+	5755+190	(	2 0 3964.3059616705 2 6035.6806939089 )	53.8395813737 (ExtendedPoll)
+	5755+191	(	2 0 3964.8035368415 2 6035.1432362487 )	53.8395261614 (ExtendedPoll)
+	5755+192	(	2 0 3966.7938375252 2 6032.9934056075 )	53.8393215384 (ExtendedPoll)
+	5755+193	(	2 0 3974.7550402603 2 6024.3940830430 )	53.8387624914 (ExtendedPoll)
+	5755+195	(	2 0 3974.8020931115 2 6024.3552069220 )	53.8386567319 (ExtendedPoll)
+	5755+196	(	2 0 3974.9432516652 2 6024.2385785592 )	53.8383395150 (ExtendedPoll)
+	5755+197	(	2 0 3975.5078858801 2 6023.7720651080 )	53.8370715717 (ExtendedPoll)
+	5755+198	(	2 0 3977.7664227394 2 6021.9060113031 )	53.8320145804 (ExtendedPoll)
+	5755+201	(	2 0 3978.1694615728 2 6021.6302815615 )	53.8306170085 (ExtendedPoll)
+	5755+206	(	2 0 3978.2884006782 2 6021.6028192098 )	53.8297362750 (ExtendedPoll)
+	5755+211	(	2 0 3978.3433620337 2 6021.5762764903 )	53.8294496693 (ExtendedPoll)
+	5755+214	(	2 0 3978.4034030246 2 6021.5653058772 )	53.8289799544 (ExtendedPoll)
+	5755+218	(	2 0 3978.4320361581 2 6021.5547475992 )	53.8288022372 (ExtendedPoll)
+	5755+219	(	2 0 3978.4762518106 2 6021.5126727574 )	53.8287517449 (ExtendedPoll)
+	5755+220	(	2 0 3978.6088987679 2 6021.3864482319 )	53.8286003328 (ExtendedPoll)
+	5755+224	(	2 0 3978.6514101019 2 6021.3426524116 )	53.8285808779 (ExtendedPoll)
+	5755+225	(	2 0 3978.7789441037 2 6021.2112649506 )	53.8285225798 (ExtendedPoll)
+	5755+226	(	2 0 3979.2890801112 2 6020.6857151068 )	53.8282903842 (ExtendedPoll)
+	5755+227	(	2 0 3981.3296241412 2 6018.5835157314 )	53.8273775476 (ExtendedPoll)
+	5755+228	(	2 0 3989.4918002613 2 6010.1747182300 )	53.8239811631 (ExtendedPoll)
+	5755+229	(	2 0 4022.1405047416 2 5976.5395282242 )	53.8144637068 (ExtendedPoll)
+	5755+234	(	2 0 4020.7893650335 2 5978.9483783098 )	53.8057221545 (ExtendedPoll)
+	5755+239	(	2 0 4021.8359865119 2 5978.0476185044 )	53.8039392071 (ExtendedPoll)
+	5755+248	(	2 0 4021.8964440029 2 5978.0392385221 )	53.8034496620 (ExtendedPoll)
+	5755+251	(	2 0 4021.9498759700 2 5978.0097369858 )	53.8032127550 (ExtendedPoll)
+	5755+255	(	2 0 4021.9714769156 2 5977.9881793562 )	53.8032023063 (ExtendedPoll)
+	5755+256	(	2 0 4022.0362797523 2 5977.9235064675 )	53.8031709766 (ExtendedPoll)
+	5755+257	(	2 0 4022.2954910992 2 5977.6648149127 )	53.8030459025 (ExtendedPoll)
+	5755+258	(	2 0 4023.3323364869 2 5976.6300486937 )	53.8025495188 (ExtendedPoll)
+	5755+259	(	2 0 4027.4797180376 2 5972.4909838173 )	53.8006265679 (ExtendedPoll)
+	5755+272	(	2 0 4027.4926149637 2 5972.4991384731 )	53.8004340240 (ExtendedPoll)
+	5755+274	(	2 0 4027.4867594927 2 5972.5132290886 )	53.8003634319 (ExtendedPoll)
+	5755+291	(	2 0 4027.4868017206 2 5972.5131870229 )	53.8003634121 (ExtendedPoll)
+	5755+292	(	2 0 4027.4869284044 2 5972.5130608261 )	53.8003633529 (ExtendedPoll)
+	5755+293	(	2 0 4027.4874351394 2 5972.5125560387 )	53.8003631157 (ExtendedPoll)
+	5755+294	(	2 0 4027.4894620797 2 5972.5105368890 )	53.8003621672 (ExtendedPoll)
+	5755+309	(	2 0 4027.4894630105 2 5972.5105368589 )	53.8003621588 (ExtendedPoll)
+	5755+315	(	2 0 4027.4894632002 2 5972.5105367239 )	53.8003621582 (ExtendedPoll)
+	5755+320	(	2 0 4027.4894631259 2 5972.5105368136 )	53.8003621581 (ExtendedPoll)
+	5755+321	(	2 0 4027.4894629032 2 5972.5105370826 )	53.8003621578 (ExtendedPoll)
+	5755+329	(	2 0 4027.4894628766 2 5972.5105371140 )	53.8003621577 (ExtendedPoll)
+	6087+4	(	2 0 4748.4423428951 2 5251.5576378325 )	54.9123291399 (ExtendedPoll)
+	6087+5	(	2 0 3993.7694004889 2 6006.2305802387 )	53.8183151870 (ExtendedPoll)
+	6087+44	(	2 0 3993.7694619626 2 6006.2305225636 )	53.8183151149 (ExtendedPoll)
+	6087+45	(	2 0 3993.7696463836 2 6006.2303495384 )	53.8183148988 (ExtendedPoll)
+	6087+56	(	2 0 3993.7696499094 2 6006.2303483359 )	53.8183148762 (ExtendedPoll)
+	6087+64	(	2 0 3993.7696494122 2 6006.2303491234 )	53.8183148740 (ExtendedPoll)
+	6087+65	(	2 0 3993.7696479206 2 6006.2303514859 )	53.8183148673 (ExtendedPoll)
+	6087+70	(	2 0 3993.7696473156 2 6006.2303521939 )	53.8183148668 (ExtendedPoll)
+	6087+71	(	2 0 3993.7696455004 2 6006.2303543179 )	53.8183148653 (ExtendedPoll)
+	6087+80	(	2 0 3993.7696457355 2 6006.2303540873 )	53.8183148651 (ExtendedPoll)
+	6087+81	(	2 0 3993.7696464408 2 6006.2303533957 )	53.8183148645 (ExtendedPoll)
+	6087+82	(	2 0 3993.7696492618 2 6006.2303506290 )	53.8183148623 (ExtendedPoll)
+	6087+85	(	2 0 3993.7696499024 2 6006.2303499530 )	53.8183148622 (ExtendedPoll)
+	6087+86	(	2 0 3993.7696518242 2 6006.2303479249 )	53.8183148619 (ExtendedPoll)
+	6087+87	(	2 0 3993.7696595112 2 6006.2303398127 )	53.8183148607 (ExtendedPoll)
+	6087+88	(	2 0 3993.7696902595 2 6006.2303073636 )	53.8183148562 (ExtendedPoll)
+	6087+89	(	2 0 3993.7698132527 2 6006.2301775672 )	53.8183148381 (ExtendedPoll)
+	6087+90	(	2 0 3993.7703052255 2 6006.2296583817 )	53.8183147657 (ExtendedPoll)
+	6087+91	(	2 0 3993.7722731166 2 6006.2275816398 )	53.8183144759 (ExtendedPoll)
+	6087+92	(	2 0 3993.7801446810 2 6006.2192746722 )	53.8183133172 (ExtendedPoll)
+	6087+93	(	2 0 3993.8116309384 2 6006.1860468016 )	53.8183086862 (ExtendedPoll)
+	6087+94	(	2 0 3993.9375759683 2 6006.0531353193 )	53.8182902249 (ExtendedPoll)
+	6087+95	(	2 0 3994.4413560878 2 6005.5214893902 )	53.8182173813 (ExtendedPoll)
+	6087+96	(	2 0 3996.4564765659 2 6003.3949056739 )	53.8179420284 (ExtendedPoll)
+	6087+97	(	2 0 4004.5169584783 2 5994.8885708083 )	53.8170967872 (ExtendedPoll)
+	6087+99	(	2 0 4004.5245453924 2 5994.8877669371 )	53.8170328494 (ExtendedPoll)
+	6087+100	(	2 0 4004.5473061346 2 5994.8853553233 )	53.8168410364 (ExtendedPoll)
+	6087+101	(	2 0 4004.6383491034 2 5994.8757088682 )	53.8160737928 (ExtendedPoll)
+	6087+102	(	2 0 4005.0025209789 2 5994.8371230479 )	53.8130049524 (ExtendedPoll)
+	6087+105	(	2 0 4005.0443542507 2 5994.7926791534 )	53.8130042923 (ExtendedPoll)
+	6087+106	(	2 0 4005.1698540660 2 5994.6593474699 )	53.8130023789 (ExtendedPoll)
+	6087+107	(	2 0 4005.6718533272 2 5994.1260207358 )	53.8129957265 (ExtendedPoll)
+	6087+108	(	2 0 4007.6798503720 2 5991.9927137997 )	53.8129851374 (ExtendedPoll)
+	6087+113	(	2 0 4007.2403461204 2 5992.5254074536 )	53.8124063797 (ExtendedPoll)
+	6087+117	(	2 0 4007.7373207242 2 5992.0459191907 )	53.8119791690 (ExtendedPoll)
+	6087+118	(	2 0 4009.2282445356 2 5990.6074544020 )	53.8107058155 (ExtendedPoll)
+	6087+126	(	2 0 4009.3503023939 2 5990.6056218015 )	53.8095807273 (ExtendedPoll)
+	6087+128	(	2 0 4009.4380806266 2 5990.5207890577 )	53.8095074272 (ExtendedPoll)
+	6087+129	(	2 0 4009.7014153247 2 5990.2662908261 )	53.8092877859 (ExtendedPoll)
+	6087+136	(	2 0 4009.7506106525 2 5990.2301636059 )	53.8091461907 (ExtendedPoll)
+	6087+143	(	2 0 4009.7635053921 2 5990.2220054099 )	53.8090975243 (ExtendedPoll)
+	6087+144	(	2 0 4009.8021896106 2 5990.1975308217 )	53.8089515284 (ExtendedPoll)
+	6087+154	(	2 0 4009.8017843826 2 5990.1980698371 )	53.8089505672 (ExtendedPoll)
+	6087+161	(	2 0 4009.8017202471 2 5990.1981703234 )	53.8089502814 (ExtendedPoll)
+	6087+162	(	2 0 4009.8015278408 2 5990.1984717824 )	53.8089494238 (ExtendedPoll)
+	6087+177	(	2 0 4009.8015265652 2 5990.1984731397 )	53.8089494237 (ExtendedPoll)
+	6087+178	(	2 0 4009.8015227385 2 5990.1984772118 )	53.8089494236 (ExtendedPoll)
+	6087+182	(	2 0 4009.8015264517 2 5990.1984734744 )	53.8089494218 (ExtendedPoll)
+	6087+183	(	2 0 4009.8015375912 2 5990.1984622623 )	53.8089494165 (ExtendedPoll)
+	6087+184	(	2 0 4009.8015821493 2 5990.1984174139 )	53.8089493951 (ExtendedPoll)
+	6087+185	(	2 0 4009.8017603815 2 5990.1982380201 )	53.8089493096 (ExtendedPoll)
+	6087+186	(	2 0 4009.8024733106 2 5990.1975204453 )	53.8089489676 (ExtendedPoll)
+	6087+187	(	2 0 4009.8053250269 2 5990.1946501458 )	53.8089475994 (ExtendedPoll)
+	6087+188	(	2 0 4009.8167318920 2 5990.1831689481 )	53.8089421273 (ExtendedPoll)
+	6087+189	(	2 0 4009.8623593525 2 5990.1372441570 )	53.8089202465 (ExtendedPoll)
+	6087+190	(	2 0 4010.0448691945 2 5989.9535449926 )	53.8088328461 (ExtendedPoll)
+	6087+191	(	2 0 4010.7749085625 2 5989.2187483350 )	53.8084852115 (ExtendedPoll)
+	6087+192	(	2 0 4013.6950660346 2 5986.2795617047 )	53.8071261335 (ExtendedPoll)
+	6087+193	(	2 0 4025.3756959228 2 5974.5228151836 )	53.8021926744 (ExtendedPoll)
+	6087+194	(	2 0 4072.0982154756 2 5927.4958290993 )	53.7904707641 (ExtendedPoll)
+	6087+196	(	2 0 4072.1230863636 2 5927.4781440878 )	53.7904013936 (ExtendedPoll)
+	6087+197	(	2 0 4072.1976990276 2 5927.4250890534 )	53.7901932963 (ExtendedPoll)
+	6087+198	(	2 0 4072.4961496835 2 5927.2128689157 )	53.7893611206 (ExtendedPoll)
+	6087+201	(	2 0 4072.6142224687 2 5927.1818879709 )	53.7885522474 (ExtendedPoll)
+	6087+205	(	2 0 4072.7124431924 2 5927.2543656553 )	53.7869896937 (ExtendedPoll)
+	6087+206	(	2 0 4072.8894390822 2 5927.0862195600 )	53.7868793477 (ExtendedPoll)
+	6087+212	(	2 0 4072.8331432603 2 5927.1516517284 )	53.7868061997 (ExtendedPoll)
+	6087+222	(	2 0 4072.8364485532 2 5927.1585279631 )	53.7867134349 (ExtendedPoll)
+	6087+225	(	2 0 4072.8360952700 2 5927.1623262685 )	53.7866822980 (ExtendedPoll)
+	6087+231	(	2 0 4072.8355323017 2 5927.1630960486 )	53.7866805212 (ExtendedPoll)
+	6087+232	(	2 0 4072.8338433970 2 5927.1654053888 )	53.7866751908 (ExtendedPoll)
+	6087+236	(	2 0 4072.8348036881 2 5927.1644583778 )	53.7866749068 (ExtendedPoll)
+	6087+237	(	2 0 4072.8376845612 2 5927.1616173446 )	53.7866740546 (ExtendedPoll)
+	6087+238	(	2 0 4072.8492080538 2 5927.1502532121 )	53.7866706465 (ExtendedPoll)
+	6087+239	(	2 0 4072.8546839370 2 5927.1449407271 )	53.7866682334 (ExtendedPoll)
+	6087+251	(	2 0 4072.8548902901 2 5927.1448213042 )	53.7866674110 (ExtendedPoll)
+	6087+252	(	2 0 4072.8555093493 2 5927.1444630354 )	53.7866649438 (ExtendedPoll)
+	6087+257	(	2 0 4072.8556843793 2 5927.1443011469 )	53.7866647950 (ExtendedPoll)
+	6087+265	(	2 0 4072.8556567359 2 5927.1443329620 )	53.7866647619 (ExtendedPoll)
+	6087+271	(	2 0 4072.8556523714 2 5927.1443390004 )	53.7866647475 (ExtendedPoll)
+	6087+272	(	2 0 4072.8556392781 2 5927.1443571157 )	53.7866647042 (ExtendedPoll)
+	6087+277	(	2 0 4072.8556357434 2 5927.1443636744 )	53.7866646774 (ExtendedPoll)
+	6087+284	(	2 0 4072.8556351991 2 5927.1443644301 )	53.7866646756 (ExtendedPoll)
+	6087+289	(	2 0 4072.8556348885 2 5927.1443647771 )	53.7866646753 (ExtendedPoll)
+	6087+290	(	2 0 4072.8556339570 2 5927.1443658182 )	53.7866646745 (ExtendedPoll)
+	6087+291	(	2 0 4072.8556327029 2 5927.1443671954 )	53.7866646736 (ExtendedPoll)
+	6087+300	(	2 0 4072.8556329763 2 5927.1443670119 )	53.7866646727 (ExtendedPoll)
+	6399+7	(	2 0 4954.5798595708 2 5043.6731930494 )	55.7239163641 (ExtendedPoll)
+	6399+8	(	2 0 4818.3194671920 2 5174.6928011060 )	55.2406520186 (ExtendedPoll)
+	6399+9	(	2 0 4273.2778976764 2 5698.7712333325 )	54.1421761447 (ExtendedPoll)
+	6399+20	(	2 0 4267.0544662937 2 5713.0742072120 )	54.0559868372 (ExtendedPoll)
+	6399+22	(	2 0 4305.9236166838 2 5692.5478019498 )	53.9161736343 (ExtendedPoll)
+	6399+38	(	2 0 4306.4284814658 2 5693.0189735384 )	53.9070540230 (ExtendedPoll)
+	6399+39	(	2 0 4307.3369182014 2 5692.6607167976 )	53.9026276457 (ExtendedPoll)
+	6399+55	(	2 0 4307.3366998789 2 5692.6626116095 )	53.9026107377 (ExtendedPoll)
+	6399+61	(	2 0 4307.3371752453 2 5692.6626490319 )	53.9026061874 (ExtendedPoll)
+	6399+63	(	2 0 4307.3375784896 2 5692.6623945369 )	53.9026051716 (ExtendedPoll)
+	6399+76	(	2 0 4307.3375909856 2 5692.6624026545 )	53.9026049811 (ExtendedPoll)
+	6399+81	(	2 0 4307.3375975611 2 5692.6623991511 )	53.9026049581 (ExtendedPoll)
+	6399+89	(	2 0 4307.3375983269 2 5692.6623986211 )	53.9026049566 (ExtendedPoll)
+	6399+90	(	2 0 4307.3376006244 2 5692.6623970312 )	53.9026049522 (ExtendedPoll)
+	6399+92	(	2 0 4307.3375976707 2 5692.6624013936 )	53.9026049349 (ExtendedPoll)
+	6399+97	(	2 0 4307.3375969844 2 5692.6624020232 )	53.9026049346 (ExtendedPoll)
+	6399+98	(	2 0 4307.3375949256 2 5692.6624039121 )	53.9026049340 (ExtendedPoll)
+	6399+99	(	2 0 4307.3375866905 2 5692.6624114674 )	53.9026049313 (ExtendedPoll)
+	6399+100	(	2 0 4307.3375537500 2 5692.6624416886 )	53.9026049205 (ExtendedPoll)
+	6399+101	(	2 0 4307.3374219878 2 5692.6625625735 )	53.9026048776 (ExtendedPoll)
+	6399+102	(	2 0 4307.3368949392 2 5692.6630461130 )	53.9026047059 (ExtendedPoll)
+	6399+103	(	2 0 4307.3347867446 2 5692.6649802712 )	53.9026040190 (ExtendedPoll)
+	6399+104	(	2 0 4307.3263539663 2 5692.6727169040 )	53.9026012717 (ExtendedPoll)
+	6399+105	(	2 0 4307.2926228530 2 5692.7036634351 )	53.9025902858 (ExtendedPoll)
+	6399+106	(	2 0 4307.1576983999 2 5692.8274495597 )	53.9025463974 (ExtendedPoll)
+	6399+107	(	2 0 4306.6180005874 2 5693.3225940580 )	53.9023717283 (ExtendedPoll)
+	6399+108	(	2 0 4304.4592093375 2 5695.3031720513 )	53.9016872027 (ExtendedPoll)
+	6399+109	(	2 0 4295.8240443380 2 5703.2254840245 )	53.8991757562 (ExtendedPoll)
+	6399+110	(	2 0 4261.2833843400 2 5734.9147319171 )	53.8927720075 (ExtendedPoll)
+	6399+113	(	2 0 4261.2854283144 2 5734.9298531621 )	53.8926060076 (ExtendedPoll)
+	6399+114	(	2 0 4261.2915602373 2 5734.9752168971 )	53.8921080120 (ExtendedPoll)
+	6399+115	(	2 0 4261.3160879292 2 5735.1566718371 )	53.8901160910 (ExtendedPoll)
+	6399+116	(	2 0 4261.4141986968 2 5735.8824915973 )	53.8821493903 (ExtendedPoll)
+	6399+117	(	2 0 4261.5839708086 2 5736.0579414386 )	53.8789281638 (ExtendedPoll)
+	6399+118	(	2 0 4262.0932871439 2 5736.5842909627 )	53.8692650726 (ExtendedPoll)
+	6399+119	(	2 0 4262.1303923063 2 5737.5601140852 )	53.8593995884 (ExtendedPoll)
+	6399+127	(	2 0 4262.0592807423 2 5737.6593344091 )	53.8590609755 (ExtendedPoll)
+	6399+128	(	2 0 4261.8459460503 2 5737.9569953809 )	53.8580454076 (ExtendedPoll)
+	6399+133	(	2 0 4261.8066484312 2 5738.0725691654 )	53.8572649584 (ExtendedPoll)
+	6399+134	(	2 0 4261.6592140538 2 5738.2671580201 )	53.8566720935 (ExtendedPoll)
+	6399+139	(	2 0 4261.6094206317 2 5738.3786067875 )	53.8560252022 (ExtendedPoll)
+	6399+146	(	2 0 4261.6039575038 2 5738.3928541111 )	53.8559345028 (ExtendedPoll)
+	6399+147	(	2 0 4261.5822528497 2 5738.4143071991 )	53.8559175202 (ExtendedPoll)
+	6399+148	(	2 0 4261.5171388874 2 5738.4786664632 )	53.8558665878 (ExtendedPoll)
+	6399+149	(	2 0 4261.2566830381 2 5738.7361035197 )	53.8556630883 (ExtendedPoll)
+	6399+150	(	2 0 4260.2148596411 2 5739.7658517453 )	53.8548527711 (ExtendedPoll)
+	6399+151	(	2 0 4256.0475660528 2 5743.8848446480 )	53.8516704284 (ExtendedPoll)
+	6399+152	(	2 0 4239.3783916996 2 5760.3608162588 )	53.8398857910 (ExtendedPoll)
+	6399+153	(	2 0 4172.7016942871 2 5826.2647027020 )	53.8079830812 (ExtendedPoll)
+	6399+159	(	2 0 4172.3873666467 2 5827.1893462901 )	53.8020966299 (ExtendedPoll)
+	6399+161	(	2 0 4171.7493284512 2 5827.9288905621 )	53.8008851851 (ExtendedPoll)
+	6399+162	(	2 0 4169.8352138647 2 5830.1475233783 )	53.7972677698 (ExtendedPoll)
+	6399+173	(	2 0 4169.8728479823 2 5830.1263964098 )	53.7971266241 (ExtendedPoll)
+	6399+180	(	2 0 4169.8744650652 2 5830.1253849637 )	53.7971215364 (ExtendedPoll)
+	6399+188	(	2 0 4169.8742332961 2 5830.1256298513 )	53.7971213238 (ExtendedPoll)
+	6399+189	(	2 0 4169.8735379888 2 5830.1263645140 )	53.7971206859 (ExtendedPoll)
+	6399+197	(	2 0 4169.8735402993 2 5830.1264240738 )	53.7971201036 (ExtendedPoll)
+	6399+202	(	2 0 4169.8735394760 2 5830.1264538648 )	53.7971198303 (ExtendedPoll)
+	6399+207	(	2 0 4169.8735316923 2 5830.1264665714 )	53.7971197809 (ExtendedPoll)
+	6399+208	(	2 0 4169.8735105156 2 5830.1264875411 )	53.7971197747 (ExtendedPoll)
+	6399+209	(	2 0 4169.8734469856 2 5830.1265504500 )	53.7971197562 (ExtendedPoll)
+	6399+210	(	2 0 4169.8731928654 2 5830.1268020859 )	53.7971196820 (ExtendedPoll)
+	6399+211	(	2 0 4169.8721763846 2 5830.1278086295 )	53.7971193855 (ExtendedPoll)
+	6399+212	(	2 0 4169.8681104615 2 5830.1318348037 )	53.7971181995 (ExtendedPoll)
+	6399+213	(	2 0 4169.8518467691 2 5830.1479395006 )	53.7971134562 (ExtendedPoll)
+	6399+214	(	2 0 4169.7867919994 2 5830.2123582880 )	53.7970944980 (ExtendedPoll)
+	6399+215	(	2 0 4169.5265729207 2 5830.4700334377 )	53.7970189008 (ExtendedPoll)
+	6399+216	(	2 0 4168.4856966058 2 5831.5007340364 )	53.7967202870 (ExtendedPoll)
+	6399+217	(	2 0 4164.3221913464 2 5835.6235364314 )	53.7955862535 (ExtendedPoll)
+	6399+218	(	2 0 4147.6681703088 2 5852.1147460114 )	53.7920186238 (ExtendedPoll)
+	6399+220	(	2 0 4147.6602068265 2 5852.1752601464 )	53.7915256228 (ExtendedPoll)
+	6399+221	(	2 0 4147.6363163798 2 5852.3568025514 )	53.7900466951 (ExtendedPoll)
+	6399+229	(	2 0 4147.6523233123 2 5852.3423304219 )	53.7900364877 (ExtendedPoll)
+	6399+230	(	2 0 4147.7003441098 2 5852.2989140332 )	53.7900058731 (ExtendedPoll)
+	6399+244	(	2 0 4147.7008030485 2 5852.2990434509 )	53.7900004953 (ExtendedPoll)
+	6399+246	(	2 0 4147.7011719978 2 5852.2987413745 )	53.7899999659 (ExtendedPoll)
+	6399+252	(	2 0 4147.7010771141 2 5852.2988807259 )	53.7899995260 (ExtendedPoll)
+	6399+259	(	2 0 4147.7010935191 2 5852.2989056067 )	53.7899991446 (ExtendedPoll)
+	6399+268	(	2 0 4147.7010938504 2 5852.2989059339 )	53.7899991385 (ExtendedPoll)
+	6399+271	(	2 0 4147.7010940528 2 5852.2989058189 )	53.7899991377 (ExtendedPoll)
+	6399+275	(	2 0 4147.7010940473 2 5852.2989059352 )	53.7899991367 (ExtendedPoll)
+	6399+282	(	2 0 4147.7010940274 2 5852.2989059712 )	53.7899991366 (ExtendedPoll)
+	6685+2	(	2 0 4105.5727993639 2 5894.4271813637 )	53.7841729375 (ExtendedPoll)
+	6685+41	(	2 0 4105.5727574055 2 5894.4272236982 )	53.7841729333 (ExtendedPoll)
+	6685+42	(	2 0 4105.5726315303 2 5894.4273507015 )	53.7841729207 (ExtendedPoll)
+	6685+43	(	2 0 4105.5721280294 2 5894.4278587149 )	53.7841728703 (ExtendedPoll)
+	6685+53	(	2 0 4105.5721311970 2 5894.4278654586 )	53.7841727793 (ExtendedPoll)
+	6685+57	(	2 0 4105.5721285679 2 5894.4278680979 )	53.7841727792 (ExtendedPoll)
+	6685+58	(	2 0 4105.5721206809 2 5894.4278760159 )	53.7841727787 (ExtendedPoll)
+	6685+59	(	2 0 4105.5720891326 2 5894.4279076878 )	53.7841727770 (ExtendedPoll)
+	6685+60	(	2 0 4105.5719629396 2 5894.4280343754 )	53.7841727702 (ExtendedPoll)
+	6685+61	(	2 0 4105.5714581674 2 5894.4285411256 )	53.7841727431 (ExtendedPoll)
+	6685+74	(	2 0 4105.5714585929 2 5894.4285413146 )	53.7841727374 (ExtendedPoll)
+	6685+81	(	2 0 4105.5714586508 2 5894.4285413214 )	53.7841727368 (ExtendedPoll)
+	6774+17	(	2 0 4999.8038288046 2 5000.1453455727 )	55.9014415188 (ExtendedPoll)
+	6774+18	(	2 0 4999.2153441271 2 5000.5814111994 )	55.9006678364 (ExtendedPoll)
+	6774+19	(	2 0 4996.8614054169 2 5002.3256737060 )	55.8975828466 (ExtendedPoll)
+	6774+20	(	2 0 4987.4456505762 2 5009.3027237327 )	55.8853990072 (ExtendedPoll)
+	6774+21	(	2 0 4949.7826312134 2 5037.2109238395 )	55.8391796750 (ExtendedPoll)
+	6774+22	(	2 0 4799.1305537620 2 5148.8437242665 )	55.6957204380 (ExtendedPoll)
+	6774+24	(	2 0 4791.8152923122 2 5162.6007831124 )	55.5930004110 (ExtendedPoll)
+	6774+25	(	2 0 4769.8695079627 2 5203.8719596503 )	55.2886042603 (ExtendedPoll)
+	6774+27	(	2 0 4753.7104229690 2 5230.5126132884 )	55.1111870096 (ExtendedPoll)
+	6774+28	(	2 0 4703.0495078538 2 5267.1981035443 )	55.1012158213 (ExtendedPoll)
+	6774+34	(	2 0 4699.1189196121 2 5298.2060774510 )	54.7818521507 (ExtendedPoll)
+	6774+37	(	2 0 4689.4016320146 2 5310.4345742030 )	54.7232027437 (ExtendedPoll)
+	6774+38	(	2 0 4665.3813705375 2 5330.5242474383 )	54.6941438059 (ExtendedPoll)
+	6774+39	(	2 0 4593.3205861064 2 5390.7932671444 )	54.6201919010 (ExtendedPoll)
+	6774+40	(	2 0 4305.0774483818 2 5631.8693459686 )	54.5320542946 (ExtendedPoll)
+	6774+45	(	2 0 4291.1020235224 2 5693.0118297283 )	54.0420071399 (ExtendedPoll)
+	6774+50	(	2 0 4279.6378078175 2 5703.6025813796 )	54.0382097940 (ExtendedPoll)
+	6774+51	(	2 0 4245.2451607026 2 5735.3748363333 )	54.0307112653 (ExtendedPoll)
+	6774+58	(	2 0 4249.5032979644 2 5750.4420912598 )	53.8459996564 (ExtendedPoll)
+	6774+69	(	2 0 4249.5962541266 2 5750.3629695656 )	53.8459422263 (ExtendedPoll)
+	6774+76	(	2 0 4249.6238551729 2 5750.3759885262 )	53.8455701397 (ExtendedPoll)
+	6774+80	(	2 0 4249.6129514080 2 5750.3866626954 )	53.8455633271 (ExtendedPoll)
+	6774+81	(	2 0 4249.5802401136 2 5750.4186852027 )	53.8455428930 (ExtendedPoll)
+	6774+82	(	2 0 4249.4493949358 2 5750.5467752323 )	53.8454612142 (ExtendedPoll)
+	6774+83	(	2 0 4248.9260142245 2 5751.0591353504 )	53.8451354192 (ExtendedPoll)
+	6774+84	(	2 0 4246.8324913796 2 5753.1085758229 )	53.8438469662 (ExtendedPoll)
+	6774+85	(	2 0 4238.4583999999 2 5761.3063377130 )	53.8389290219 (ExtendedPoll)
+	6774+86	(	2 0 4204.9620344812 2 5794.0973852733 )	53.8230461425 (ExtendedPoll)
+	6774+87	(	2 0 4070.9765724063 2 5925.2615755146 )	53.8210579913 (ExtendedPoll)
+	6774+92	(	2 0 4071.7886210187 2 5927.0375053582 )	53.7974776434 (ExtendedPoll)
+	6774+98	(	2 0 4072.0432392023 2 5927.4540854434 )	53.7913560161 (ExtendedPoll)
+	6774+100	(	2 0 4071.7200617674 2 5927.8201257384 )	53.7910242574 (ExtendedPoll)
+	6774+101	(	2 0 4070.7505294627 2 5928.9182466233 )	53.7900332794 (ExtendedPoll)
+	6774+110	(	2 0 4070.7703482043 2 5929.0386984572 )	53.7887604316 (ExtendedPoll)
+	6774+112	(	2 0 4070.7520288631 2 5929.1593835311 )	53.7878375424 (ExtendedPoll)
+	6774+114	(	2 0 4070.6714077684 2 5929.2510402129 )	53.7877524096 (ExtendedPoll)
+	6774+115	(	2 0 4070.4295444844 2 5929.5260102582 )	53.7874972799 (ExtendedPoll)
+	6774+123	(	2 0 4070.4383638744 2 5929.5552256590 )	53.7871515709 (ExtendedPoll)
+	6774+129	(	2 0 4070.4346738395 2 5929.5619033272 )	53.7871252238 (ExtendedPoll)
+	6774+135	(	2 0 4070.4365087991 2 5929.5624238125 )	53.7871035769 (ExtendedPoll)
+	6774+139	(	2 0 4070.4373937138 2 5929.5620682560 )	53.7870986249 (ExtendedPoll)
+	6774+141	(	2 0 4070.4382753416 2 5929.5617046258 )	53.7870937763 (ExtendedPoll)
+	6774+149	(	2 0 4070.4383956527 2 5929.5615865285 )	53.7870937340 (ExtendedPoll)
+	6774+150	(	2 0 4070.4387565859 2 5929.5612322368 )	53.7870936074 (ExtendedPoll)
+	6774+158	(	2 0 4070.4387684909 2 5929.5612232749 )	53.7870935786 (ExtendedPoll)
+	6774+161	(	2 0 4070.4387865750 2 5929.5612124557 )	53.7870935095 (ExtendedPoll)
+	6774+169	(	2 0 4070.4387882509 2 5929.5612116428 )	53.7870935014 (ExtendedPoll)
+	6774+177	(	2 0 4070.4387881954 2 5929.5612117452 )	53.7870935010 (ExtendedPoll)
+	6774+179	(	2 0 4070.4387882946 2 5929.5612116843 )	53.7870935006 (ExtendedPoll)
+	6961+15	(	2 0 4999.8058280052 2 5000.1479845174 )	55.9013939424 (ExtendedPoll)
+	6961+16	(	2 0 4999.2233409293 2 5000.5919669783 )	55.9004775395 (ExtendedPoll)
+	6961+17	(	2 0 4996.8933926259 2 5002.3678968219 )	55.8968217946 (ExtendedPoll)
+	6961+18	(	2 0 4987.5735994122 2 5009.4716161962 )	55.8823569716 (ExtendedPoll)
+	6961+19	(	2 0 4950.2944265573 2 5037.8864936935 )	55.8270464781 (ExtendedPoll)
+	6961+20	(	2 0 4801.1777351379 2 5151.5460036826 )	55.6477582520 (ExtendedPoll)
+	6961+23	(	2 0 4799.7583560506 2 5167.1591736427 )	55.4764322556 (ExtendedPoll)
+	6961+26	(	2 0 4792.1155455806 2 5180.8070494820 )	55.3782799039 (ExtendedPoll)
+	6961+27	(	2 0 4769.1871141707 2 5221.7506769997 )	55.0876212670 (ExtendedPoll)
+	6961+31	(	2 0 4761.8718527209 2 5235.6169188523 )	54.9868701218 (ExtendedPoll)
+	6961+34	(	2 0 4749.6433559689 2 5245.3342064498 )	54.9738791762 (ExtendedPoll)
+	6961+35	(	2 0 4712.9578657131 2 5274.4860692424 )	54.9380022491 (ExtendedPoll)
+	6961+36	(	2 0 4566.2159046897 2 5391.0935204128 )	54.8421122279 (ExtendedPoll)
+	6961+38	(	2 0 4475.3756431037 2 5474.9460695691 )	54.6975024335 (ExtendedPoll)
+	6961+39	(	2 0 4202.8548583459 2 5726.5037170378 )	54.4953088368 (ExtendedPoll)
+	6961+50	(	2 0 4223.8179956350 2 5749.6505144612 )	54.0825598595 (ExtendedPoll)
+	6961+52	(	2 0 4202.8548583459 2 5772.7973118845 )	54.0462974249 (ExtendedPoll)
+	6961+53	(	2 0 4139.9654464788 2 5842.2377041545 )	53.9544164694 (ExtendedPoll)
+	6961+59	(	2 0 4139.3103484385 2 5857.8508741146 )	53.8144735666 (ExtendedPoll)
+	6961+66	(	2 0 4138.2372842006 2 5859.4835012619 )	53.8090274109 (ExtendedPoll)
+	6961+67	(	2 0 4135.0180914870 2 5864.3813827037 )	53.7927617458 (ExtendedPoll)
+	6961+75	(	2 0 4135.1400160653 2 5864.5928981232 )	53.7896852883 (ExtendedPoll)
+	6961+77	(	2 0 4135.3836253179 2 5864.5767445826 )	53.7876169219 (ExtendedPoll)
+	6961+86	(	2 0 4135.3975076833 2 5864.5830777793 )	53.7874316321 (ExtendedPoll)
+	6961+87	(	2 0 4135.4221274217 2 5864.5650445737 )	53.7873750497 (ExtendedPoll)
+	6961+91	(	2 0 4135.4358288178 2 5864.5583287176 )	53.7873127014 (ExtendedPoll)
+	6961+96	(	2 0 4135.4417746173 2 5864.5535479991 )	53.7873029931 (ExtendedPoll)
+	6961+97	(	2 0 4135.4596120157 2 5864.5392058436 )	53.7872738692 (ExtendedPoll)
+	6961+108	(	2 0 4135.4600654422 2 5864.5390582696 )	53.7872711118 (ExtendedPoll)
+	6961+109	(	2 0 4135.4609366779 2 5864.5386703998 )	53.7872667832 (ExtendedPoll)
+	6961+114	(	2 0 4135.4606620754 2 5864.5390602294 )	53.7872656603 (ExtendedPoll)
+	6961+119	(	2 0 4135.4605743562 2 5864.5392819246 )	53.7872643984 (ExtendedPoll)
+	6961+121	(	2 0 4135.4610972036 2 5864.5388560396 )	53.7872635958 (ExtendedPoll)
+	6961+126	(	2 0 4135.4612010194 2 5864.5387974466 )	53.7872631950 (ExtendedPoll)
+	6961+137	(	2 0 4135.4612024119 2 5864.5387962096 )	53.7872631938 (ExtendedPoll)
+	6961+138	(	2 0 4135.4612065894 2 5864.5387924983 )	53.7872631903 (ExtendedPoll)
+	6961+145	(	2 0 4135.4612070035 2 5864.5387922853 )	53.7872631885 (ExtendedPoll)
+	6961+146	(	2 0 4135.4612082457 2 5864.5387916463 )	53.7872631831 (ExtendedPoll)
+	6961+156	(	2 0 4135.4612082147 2 5864.5387916956 )	53.7872631829 (ExtendedPoll)
+	6961+157	(	2 0 4135.4612081217 2 5864.5387918434 )	53.7872631824 (ExtendedPoll)
+	6961+163	(	2 0 4135.4612081460 2 5864.5387918272 )	53.7872631824 (ExtendedPoll)
+	6961+164	(	2 0 4135.4612082186 2 5864.5387917788 )	53.7872631821 (ExtendedPoll)
+	7131+3	(	2 0 4874.2211666294 2 5125.7788140982 )	55.3724275680 (ExtendedPoll)
+	7131+4	(	2 0 4496.8846954264 2 5503.1152853013 )	54.2156316564 (ExtendedPoll)
+	7131+39	(	2 0 4496.8846529014 2 5503.1153270666 )	54.2156315732 (ExtendedPoll)
+	7131+40	(	2 0 4496.8845253266 2 5503.1154523626 )	54.2156313235 (ExtendedPoll)
+	7131+41	(	2 0 4496.8840150275 2 5503.1159535467 )	54.2156303249 (ExtendedPoll)
+	7131+42	(	2 0 4496.8819738307 2 5503.1179582832 )	54.2156263303 (ExtendedPoll)
+	7131+43	(	2 0 4496.8738090439 2 5503.1259772290 )	54.2156103523 (ExtendedPoll)
+	7131+44	(	2 0 4496.8411498966 2 5503.1580530122 )	54.2155464435 (ExtendedPoll)
+	7131+45	(	2 0 4496.7105133072 2 5503.2863561450 )	54.2152908615 (ExtendedPoll)
+	7131+46	(	2 0 4496.1879669499 2 5503.7995686762 )	54.2142693849 (ExtendedPoll)
+	7131+47	(	2 0 4494.0977815204 2 5505.8524188009 )	54.2101971068 (ExtendedPoll)
+	7131+48	(	2 0 4485.7370398025 2 5514.0638192997 )	54.1941263256 (ExtendedPoll)
+	7131+49	(	2 0 4452.2940729307 2 5546.9094212948 )	54.1333544119 (ExtendedPoll)
+	7131+50	(	2 0 4318.5222054439 2 5678.2918292755 )	53.9475643989 (ExtendedPoll)
+	7131+53	(	2 0 4318.5963891128 2 5678.5244295969 )	53.9445911411 (ExtendedPoll)
+	7131+54	(	2 0 4318.8189401194 2 5679.2222305612 )	53.9356722784 (ExtendedPoll)
+	7131+55	(	2 0 4318.7890853910 2 5680.1984801799 )	53.9261887566 (ExtendedPoll)
+	7131+56	(	2 0 4317.9105033838 2 5681.9437023028 )	53.9164801493 (ExtendedPoll)
+	7131+63	(	2 0 4317.7577644608 2 5682.1341594764 )	53.9159200953 (ExtendedPoll)
+	7131+69	(	2 0 4317.7221920188 2 5682.1837563103 )	53.9157374211 (ExtendedPoll)
+	7131+70	(	2 0 4317.6154746928 2 5682.3325468122 )	53.9151894649 (ExtendedPoll)
+	7131+74	(	2 0 4317.6823945996 2 5682.2780286129 )	53.9151462258 (ExtendedPoll)
+	7131+75	(	2 0 4317.8831543201 2 5682.1144740148 )	53.9150166207 (ExtendedPoll)
+	7131+87	(	2 0 4317.8850608152 2 5682.1144169722 )	53.9150004675 (ExtendedPoll)
+	7131+92	(	2 0 4317.8855375905 2 5682.1144246562 )	53.9149962090 (ExtendedPoll)
+	7131+100	(	2 0 4317.8855643890 2 5682.1144116170 )	53.9149961040 (ExtendedPoll)
+	7131+105	(	2 0 4317.8855791781 2 5682.1144097931 )	53.9149959925 (ExtendedPoll)
+	7131+107	(	2 0 4317.8855925920 2 5682.1144033038 )	53.9149959395 (ExtendedPoll)
+	7131+111	(	2 0 4317.8855821380 2 5682.1144139226 )	53.9149959253 (ExtendedPoll)
+	7131+112	(	2 0 4317.8855507760 2 5682.1144457789 )	53.9149958826 (ExtendedPoll)
+	7131+113	(	2 0 4317.8854253280 2 5682.1145732043 )	53.9149957120 (ExtendedPoll)
+	7131+120	(	2 0 4317.8854184488 2 5682.1145811854 )	53.9149956927 (ExtendedPoll)
+	7131+129	(	2 0 4317.8854186637 2 5682.1145810957 )	53.9149956917 (ExtendedPoll)
+	7131+136	(	2 0 4317.8854187880 2 5682.1145812036 )	53.9149956895 (ExtendedPoll)
+	7275+1	(	2 0 4664.5897937388 2 5335.4101869888 )	54.6460177074 (ExtendedPoll)
+	7275+2	(	2 0 3658.3592038639 2 6341.6407768637 )	54.3665218070 (ExtendedPoll)
+	7275+37	(	2 0 3658.3592901848 2 6341.6406946471 )	54.3665215475 (ExtendedPoll)
+	7275+38	(	2 0 3658.3595491473 2 6341.6404479973 )	54.3665207691 (ExtendedPoll)
+	7275+39	(	2 0 3658.3598690753 2 6341.6400944160 )	54.3665201699 (ExtendedPoll)
+	7275+40	(	2 0 3658.3608288593 2 6341.6390336723 )	54.3665183724 (ExtendedPoll)
+	7275+41	(	2 0 3658.3646679955 2 6341.6347906973 )	54.3665111823 (ExtendedPoll)
+	7275+42	(	2 0 3658.3800245403 2 6341.6178187975 )	54.3664824230 (ExtendedPoll)
+	7275+43	(	2 0 3658.4414507195 2 6341.5499311982 )	54.3663674021 (ExtendedPoll)
+	7275+44	(	2 0 3658.6871554362 2 6341.2783808011 )	54.3659075842 (ExtendedPoll)
+	7275+45	(	2 0 3659.6699743029 2 6340.1921792124 )	54.3640725584 (ExtendedPoll)
+	7275+46	(	2 0 3663.6012497698 2 6335.8473728577 )	54.3568003795 (ExtendedPoll)
+	7275+47	(	2 0 3679.3263516374 2 6318.4681474388 )	54.3287978530 (ExtendedPoll)
+	7275+48	(	2 0 3742.2267591076 2 6248.9512457632 )	54.2341245206 (ExtendedPoll)
+	7275+49	(	2 0 3993.8283889887 2 5970.8836390611 )	54.1291421044 (ExtendedPoll)
+	7275+51	(	2 0 3994.6101563766 2 5970.2984863845 )	54.1270135487 (ExtendedPoll)
+	7275+52	(	2 0 3996.9554585404 2 5968.5430283547 )	54.1206429804 (ExtendedPoll)
+	7275+53	(	2 0 4006.3366671954 2 5961.5211962354 )	54.0953869891 (ExtendedPoll)
+	7275+54	(	2 0 4043.8615018154 2 5933.4338677582 )	53.9979707862 (ExtendedPoll)
+	7275+55	(	2 0 4058.8195737352 2 5928.7389984696 )	53.9018789159 (ExtendedPoll)
+	7275+56	(	2 0 4085.0234953465 2 5911.2697173953 )	53.8187819628 (ExtendedPoll)
+	7275+62	(	2 0 4079.2095002390 2 5920.6867517244 )	53.7866402997 (ExtendedPoll)
+	7275+75	(	2 0 4079.1688898115 2 5920.8018656928 )	53.7859692077 (ExtendedPoll)
+	7275+79	(	2 0 4079.1419239280 2 5920.8566204642 )	53.7857204969 (ExtendedPoll)
+	7275+92	(	2 0 4079.1420265196 2 5920.8575686043 )	53.7857109426 (ExtendedPoll)
+	7275+94	(	2 0 4079.1415632502 2 5920.8584021968 )	53.7857076422 (ExtendedPoll)
+	7275+101	(	2 0 4079.1418084008 2 5920.8581707058 )	53.7857074853 (ExtendedPoll)
+	7275+109	(	2 0 4079.1417949665 2 5920.8581973084 )	53.7857073675 (ExtendedPoll)
+	7275+116	(	2 0 4079.1417913882 2 5920.8582038435 )	53.7857073412 (ExtendedPoll)
+	7275+120	(	2 0 4079.1417981276 2 5920.8582006667 )	53.7857073079 (ExtendedPoll)
+	7275+130	(	2 0 4079.1417985233 2 5920.8582009121 )	53.7857073020 (ExtendedPoll)
+	7275+131	(	2 0 4079.1417993958 2 5920.8582005863 )	53.7857072969 (ExtendedPoll)
+	7275+139	(	2 0 4079.1417992378 2 5920.8582007573 )	53.7857072968 (ExtendedPoll)
+	7423+14	(	2 0 4999.1900742320 2 5000.5459053974 )	55.9012953652 (ExtendedPoll)
+	7423+15	(	2 0 4996.7603258365 2 5002.1836504981 )	55.9000925053 (ExtendedPoll)
+	7423+16	(	2 0 4987.0413322545 2 5008.7346309009 )	55.8954303274 (ExtendedPoll)
+	7423+17	(	2 0 4948.1653579264 2 5034.9385525122 )	55.8791873269 (ExtendedPoll)
+	7423+18	(	2 0 4792.6614606142 2 5139.7542389575 )	55.8538338094 (ExtendedPoll)
+	7423+20	(	2 0 4775.1921795400 2 5165.9581605689 )	55.6864877206 (ExtendedPoll)
+	7423+21	(	2 0 4722.7843363173 2 5244.5699254029 )	55.1994445339 (ExtendedPoll)
+	7423+26	(	2 0 4722.3476042905 2 5276.0146313364 )	54.8445124513 (ExtendedPoll)
+	7423+29	(	2 0 4697.8906107866 2 5295.6675725449 )	54.8205115310 (ExtendedPoll)
+	7423+30	(	2 0 4624.5196302749 2 5354.6263961704 )	54.7613812550 (ExtendedPoll)
+	7423+31	(	2 0 4331.0357082280 2 5590.4616906724 )	54.7273149903 (ExtendedPoll)
+	7423+36	(	2 0 4308.3256428315 2 5648.1103182173 )	54.3396439948 (ExtendedPoll)
+	7423+38	(	2 0 4455.0676038550 2 5543.2946317720 )	54.1475041698 (ExtendedPoll)
+	7423+47	(	2 0 4447.5339763917 2 5551.3741742688 )	54.1273594464 (ExtendedPoll)
+	7423+58	(	2 0 4447.2091995963 2 5551.7388284514 )	54.1263276850 (ExtendedPoll)
+	7423+59	(	2 0 4446.2348692102 2 5552.8327909991 )	54.1232362635 (ExtendedPoll)
+	7423+60	(	2 0 4442.3375476659 2 5557.2086411901 )	54.1109285550 (ExtendedPoll)
+	7423+69	(	2 0 4442.5740664204 2 5557.2691503271 )	54.1082748289 (ExtendedPoll)
+	7423+73	(	2 0 4442.6925323818 2 5557.2986052154 )	54.1069545527 (ExtendedPoll)
+	7423+79	(	2 0 4442.7168164211 2 5557.2801226062 )	54.1069394344 (ExtendedPoll)
+	7423+82	(	2 0 4442.7071793373 2 5557.2919529796 )	54.1068985868 (ExtendedPoll)
+	7423+86	(	2 0 4442.7017183179 2 5557.2972807450 )	54.1068897802 (ExtendedPoll)
+	7423+87	(	2 0 4442.6853352597 2 5557.3132640411 )	54.1068633612 (ExtendedPoll)
+	7423+88	(	2 0 4442.6198030272 2 5557.3771972256 )	54.1067576985 (ExtendedPoll)
+	7423+89	(	2 0 4442.3576740969 2 5557.6329299635 )	54.1063352645 (ExtendedPoll)
+	7423+90	(	2 0 4441.3091583760 2 5558.6558609153 )	54.1046489915 (ExtendedPoll)
+	7423+91	(	2 0 4437.1150954922 2 5562.7475847223 )	54.0979593435 (ExtendedPoll)
+	7423+92	(	2 0 4420.3388439569 2 5579.1144799504 )	54.0720900340 (ExtendedPoll)
+	7423+93	(	2 0 4353.2338378159 2 5644.5820608629 )	53.9829787440 (ExtendedPoll)
+	7423+94	(	2 0 4084.8138132516 2 5906.4523845126 )	53.8646582524 (ExtendedPoll)
+	7423+96	(	2 0 4082.5755616140 2 5909.6528113969 )	53.8560492754 (ExtendedPoll)
+	7423+97	(	2 0 4075.8608067011 2 5919.2540920498 )	53.8305130308 (ExtendedPoll)
+	7423+98	(	2 0 4066.9078001506 2 5932.0285038353 )	53.7973908395 (ExtendedPoll)
+	7423+110	(	2 0 4066.8994834762 2 5932.5167352687 )	53.7930561968 (ExtendedPoll)
+	7423+113	(	2 0 4066.7294181484 2 5932.9744722294 )	53.7904920157 (ExtendedPoll)
+	7423+115	(	2 0 4066.4042148569 2 5933.3386999159 )	53.7902064369 (ExtendedPoll)
+	7423+116	(	2 0 4065.4286049825 2 5934.4313829753 )	53.7893539893 (ExtendedPoll)
+	7423+122	(	2 0 4065.9681225742 2 5934.0003020220 )	53.7882608591 (ExtendedPoll)
+	7423+134	(	2 0 4065.9833434669 2 5933.9992277641 )	53.7881299256 (ExtendedPoll)
+	7423+135	(	2 0 4066.0088195296 2 5933.9824261494 )	53.7880462489 (ExtendedPoll)
+	7423+138	(	2 0 4066.0322468281 2 5933.9628689699 )	53.7880063853 (ExtendedPoll)
+	7423+149	(	2 0 4066.0333397798 2 5933.9653350231 )	53.7879740199 (ExtendedPoll)
+	7423+154	(	2 0 4066.0330666936 2 5933.9662487622 )	53.7879682924 (ExtendedPoll)
+	7423+160	(	2 0 4066.0329389515 2 5933.9664500713 )	53.7879676549 (ExtendedPoll)
+	7423+161	(	2 0 4066.0325557253 2 5933.9670539988 )	53.7879657426 (ExtendedPoll)
+	7423+164	(	2 0 4066.0323799541 2 5933.9674972574 )	53.7879633642 (ExtendedPoll)
+	7423+171	(	2 0 4066.0324936658 2 5933.9674614732 )	53.7879626367 (ExtendedPoll)
+	7423+175	(	2 0 4066.0325420577 2 5933.9674266746 )	53.7879625038 (ExtendedPoll)
+	7423+180	(	2 0 4066.0325530871 2 5933.9674366944 )	53.7879623114 (ExtendedPoll)
+	7423+181	(	2 0 4066.0325776078 2 5933.9674197559 )	53.7879622378 (ExtendedPoll)
+	7423+192	(	2 0 4066.0325784803 2 5933.9674194301 )	53.7879622327 (ExtendedPoll)
+	7423+193	(	2 0 4066.0325810978 2 5933.9674184529 )	53.7879622173 (ExtendedPoll)
+	7423+197	(	2 0 4066.0325804614 2 5933.9674191328 )	53.7879622170 (ExtendedPoll)
+	7423+198	(	2 0 4066.0325785520 2 5933.9674211726 )	53.7879622163 (ExtendedPoll)
+	7423+203	(	2 0 4066.0325782752 2 5933.9674215470 )	53.7879622154 (ExtendedPoll)
+	7423+206	(	2 0 4066.0325779836 2 5933.9674219101 )	53.7879622149 (ExtendedPoll)
+	7423+208	(	2 0 4066.0325777001 2 5933.9674222795 )	53.7879622141 (ExtendedPoll)
+	7423+214	(	2 0 4066.0325779310 2 5933.9674220447 )	53.7879622141 (ExtendedPoll)
+	7423+215	(	2 0 4066.0325786236 2 5933.9674213404 )	53.7879622141 (ExtendedPoll)
+	7423+216	(	2 0 4066.0325813941 2 5933.9674185232 )	53.7879622139 (ExtendedPoll)
+	7423+217	(	2 0 4066.0325924760 2 5933.9674072542 )	53.7879622133 (ExtendedPoll)
+	7423+218	(	2 0 4066.0326368038 2 5933.9673621781 )	53.7879622107 (ExtendedPoll)
+	7423+219	(	2 0 4066.0328141148 2 5933.9671818738 )	53.7879622005 (ExtendedPoll)
+	7423+220	(	2 0 4066.0335233590 2 5933.9664606566 )	53.7879621598 (ExtendedPoll)
+	7423+221	(	2 0 4066.0363603358 2 5933.9635757879 )	53.7879619968 (ExtendedPoll)
+	7423+222	(	2 0 4066.0477082430 2 5933.9520363132 )	53.7879613453 (ExtendedPoll)
+	7423+223	(	2 0 4066.0930998717 2 5933.9058784143 )	53.7879587467 (ExtendedPoll)
+	7423+224	(	2 0 4066.2746663863 2 5933.7212468186 )	53.7879484746 (ExtendedPoll)
+	7423+225	(	2 0 4067.0009324450 2 5932.9827204360 )	53.7879093366 (ExtendedPoll)
+	7423+226	(	2 0 4069.9059966798 2 5930.0286149054 )	53.7877839844 (ExtendedPoll)
+	7423+227	(	2 0 4081.5262536188 2 5918.2121927832 )	53.7877812112 (ExtendedPoll)
+	7423+230	(	2 0 4081.5299687022 2 5918.2130588562 )	53.7877391250 (ExtendedPoll)
+	7423+231	(	2 0 4081.5411139525 2 5918.2156570750 )	53.7876128665 (ExtendedPoll)
+	7423+232	(	2 0 4081.5856949536 2 5918.2260499504 )	53.7871078341 (ExtendedPoll)
+	7423+233	(	2 0 4081.6155830020 2 5918.2198824166 )	53.7868886494 (ExtendedPoll)
+	7423+234	(	2 0 4081.7052471472 2 5918.2013798154 )	53.7862311047 (ExtendedPoll)
+	7423+236	(	2 0 4081.6080460159 2 5918.3440427676 )	53.7858294673 (ExtendedPoll)
+	7423+240	(	2 0 4081.5880590083 2 5918.4017130398 )	53.7854893417 (ExtendedPoll)
+	7423+247	(	2 0 4081.6043092810 2 5918.3875148632 )	53.7854687399 (ExtendedPoll)
+	7423+248	(	2 0 4081.6530600991 2 5918.3449203333 )	53.7854069422 (ExtendedPoll)
+	7423+257	(	2 0 4081.6496579113 2 5918.3491070966 )	53.7854002178 (ExtendedPoll)
+	7423+266	(	2 0 4081.6498661605 2 5918.3495360557 )	53.7853944010 (ExtendedPoll)
+	7423+267	(	2 0 4081.6493358875 2 5918.3503287128 )	53.7853920795 (ExtendedPoll)
+	7423+274	(	2 0 4081.6491972063 2 5918.3505226482 )	53.7853915938 (ExtendedPoll)
+	7423+275	(	2 0 4081.6487811625 2 5918.3511044543 )	53.7853901369 (ExtendedPoll)
+	7423+284	(	2 0 4081.6488121122 2 5918.3511553938 )	53.7853893889 (ExtendedPoll)
+	7423+287	(	2 0 4081.6488409573 2 5918.3511479011 )	53.7853891913 (ExtendedPoll)
+	7423+293	(	2 0 4081.6488473913 2 5918.3511516580 )	53.7853890979 (ExtendedPoll)
+	7423+298	(	2 0 4081.6488480521 2 5918.3511510017 )	53.7853890978 (ExtendedPoll)
+	7423+299	(	2 0 4081.6488500345 2 5918.3511490328 )	53.7853890974 (ExtendedPoll)
+	7423+300	(	2 0 4081.6488579640 2 5918.3511411574 )	53.7853890960 (ExtendedPoll)
+	7423+301	(	2 0 4081.6488896822 2 5918.3511096556 )	53.7853890902 (ExtendedPoll)
+	7423+310	(	2 0 4081.6488900669 2 5918.3511093933 )	53.7853890891 (ExtendedPoll)
+	7423+311	(	2 0 4081.6488912210 2 5918.3511086061 )	53.7853890856 (ExtendedPoll)
+	7423+319	(	2 0 4081.6488912536 2 5918.3511087179 )	53.7853890843 (ExtendedPoll)
+	7423+323	(	2 0 4081.6488912181 2 5918.3511087641 )	53.7853890842 (ExtendedPoll)
+	7752	(	3 0 3209.7898482266 2 3041.1228583258 1 3749.0872770800 )	46.5944609002
+	7753	(	3 0 3209.7897367750 2 3041.1229969359 1 3749.0872586356 )	46.5944605757
+	7758+32	(	2 0 4999.9999577432 2 5000.0000417347 )	55.9016992549 (ExtendedPoll)
+	7758+39	(	2 0 4999.9999505368 2 5000.0000494217 )	55.9016992168 (ExtendedPoll)
+	7758+40	(	2 0 4999.9999398266 2 5000.0000597821 )	55.9016991732 (ExtendedPoll)
+	7758+41	(	2 0 4999.9999076961 2 5000.0000908630 )	55.9016990423 (ExtendedPoll)
+	7758+42	(	2 0 4999.9997791737 2 5000.0002151869 )	55.9016985186 (ExtendedPoll)
+	7758+43	(	2 0 4999.9992650844 2 5000.0007124825 )	55.9016964242 (ExtendedPoll)
+	7758+44	(	2 0 4999.9972087269 2 5000.0027016649 )	55.9016880465 (ExtendedPoll)
+	7758+45	(	2 0 4999.9889832972 2 5000.0106583944 )	55.9016545357 (ExtendedPoll)
+	7758+46	(	2 0 4999.9560815784 2 5000.0424853122 )	55.9015204952 (ExtendedPoll)
+	7758+47	(	2 0 4999.8244747033 2 5000.1697929837 )	55.9009843757 (ExtendedPoll)
+	7758+48	(	2 0 4999.2980472026 2 5000.6790236696 )	55.8988405794 (ExtendedPoll)
+	7758+49	(	2 0 4997.1923371998 2 5002.7159464134 )	55.8902763014 (ExtendedPoll)
+	7758+50	(	2 0 4988.7694971886 2 5010.8636373882 )	55.8561940243 (ExtendedPoll)
+	7758+51	(	2 0 4955.0781371440 2 5043.4544012877 )	55.7226824798 (ExtendedPoll)
+	7758+52	(	2 0 4820.3126969657 2 5173.8174568856 )	55.2350077198 (ExtendedPoll)
+	7758+53	(	2 0 4281.2509362523 2 5695.2696792774 )	54.1064641659 (ExtendedPoll)
+	7758+55	(	2 0 4281.1646507560 2 5695.4980679496 )	54.1049615847 (ExtendedPoll)
+	7758+56	(	2 0 4280.9057942672 2 5696.1832339664 )	54.1004549928 (ExtendedPoll)
+	7758+57	(	2 0 4279.8703683119 2 5698.9238980333 )	54.0824459107 (ExtendedPoll)
+	7758+58	(	2 0 4275.7286644908 2 5709.8865543012 )	54.0106865894 (ExtendedPoll)
+	7758+59	(	2 0 4276.7931988063 2 5713.6465440949 )	53.9642063625 (ExtendedPoll)
+	7758+60	(	2 0 4274.1455108935 2 5720.9891012964 )	53.9153574311 (ExtendedPoll)
+	7758+61	(	2 0 4264.8649553228 2 5733.5451470685 )	53.8744070070 (ExtendedPoll)
+	7758+68	(	2 0 4267.0690872708 2 5731.8801062161 )	53.8711681165 (ExtendedPoll)
+	7758+71	(	2 0 4268.6471229147 2 5730.7285666922 )	53.8684637360 (ExtendedPoll)
+	7758+80	(	2 0 4268.8897458950 2 5730.7013509085 )	53.8665809105 (ExtendedPoll)
+	7758+83	(	2 0 4269.1151490944 2 5730.6075484182 )	53.8655030390 (ExtendedPoll)
+	7758+88	(	2 0 4269.2342348079 2 5730.5807124826 )	53.8647110142 (ExtendedPoll)
+	7758+91	(	2 0 4269.3362140286 2 5730.5136259757 )	53.8644648872 (ExtendedPoll)
+	7758+92	(	2 0 4269.6421516907 2 5730.3123664551 )	53.8637267148 (ExtendedPoll)
+	7758+99	(	2 0 4269.6705853207 2 5730.3012821375 )	53.8635834586 (ExtendedPoll)
+	7758+104	(	2 0 4269.6856215996 2 5730.3038783910 )	53.8634248321 (ExtendedPoll)
+	7758+107	(	2 0 4269.6932509707 2 5730.3038560301 )	53.8633574718 (ExtendedPoll)
+	7758+111	(	2 0 4269.6964158444 2 5730.3017263609 )	53.8633503046 (ExtendedPoll)
+	7758+119	(	2 0 4269.6971078879 2 5730.3023825398 )	53.8633377454 (ExtendedPoll)
+	7758+120	(	2 0 4269.6986534873 2 5730.3012649089 )	53.8633350054 (ExtendedPoll)
+	7758+129	(	2 0 4269.6987532838 2 5730.3011997053 )	53.8633347603 (ExtendedPoll)
+	7758+137	(	2 0 4269.6987734099 2 5730.3012216853 )	53.8633343667 (ExtendedPoll)
+	7758+139	(	2 0 4269.6987532218 2 5730.3012436083 )	53.8633343307 (ExtendedPoll)
+	7758+146	(	2 0 4269.6987565277 2 5730.3012418911 )	53.8633343182 (ExtendedPoll)
+	7758+148	(	2 0 4269.6987598023 2 5730.3012401148 )	53.8633343066 (ExtendedPoll)
+	7758+158	(	2 0 4269.6987598456 2 5730.3012400760 )	53.8633343066 (ExtendedPoll)
+	7758+159	(	2 0 4269.6987599757 2 5730.3012399595 )	53.8633343066 (ExtendedPoll)
+	7758+160	(	2 0 4269.6987604960 2 5730.3012394935 )	53.8633343066 (ExtendedPoll)
+	7928	(	3 0 3209.7896557217 2 3041.1230842797 1 3749.0872551315 )	46.5944603702
+	7933+5	(	2 0 4909.1597359805 2 5083.8525467227 )	55.5960690117 (ExtendedPoll)
+	7933+6	(	2 0 4636.6389512227 2 5335.4101941914 )	54.8753884193 (ExtendedPoll)
+	7933+10	(	2 0 4468.9338529103 2 5503.1152925039 )	54.4525845141 (ExtendedPoll)
+	7933+11	(	2 0 3965.8185579728 2 6006.2305874414 )	54.0810898671 (ExtendedPoll)
+	7933+19	(	2 0 4063.6465319884 2 5929.3657507148 )	53.8515922697 (ExtendedPoll)
+	7933+32	(	2 0 4065.8046023555 2 5931.0905010240 )	53.8160592307 (ExtendedPoll)
+	7933+33	(	2 0 4064.4534626474 2 5934.7549556868 )	53.7954447026 (ExtendedPoll)
+	7933+39	(	2 0 4065.1985513690 2 5934.1237414293 )	53.7942572358 (ExtendedPoll)
+	7933+40	(	2 0 4067.4338175338 2 5932.2300986566 )	53.7907104457 (ExtendedPoll)
+	7933+47	(	2 0 4067.6763605460 2 5932.2578742164 )	53.7882192511 (ExtendedPoll)
+	7933+56	(	2 0 4067.6961659596 2 5932.2810920154 )	53.7878265281 (ExtendedPoll)
+	7933+64	(	2 0 4067.7064620507 2 5932.2843178088 )	53.7877022834 (ExtendedPoll)
+	7933+68	(	2 0 4067.7096029627 2 5932.2864826593 )	53.7876537119 (ExtendedPoll)
+	7933+69	(	2 0 4067.7163863700 2 5932.2829908004 )	53.7876226117 (ExtendedPoll)
+	7933+81	(	2 0 4067.7165647188 2 5932.2828325755 )	53.7876223942 (ExtendedPoll)
+	7933+82	(	2 0 4067.7170997651 2 5932.2823579007 )	53.7876217416 (ExtendedPoll)
+	7933+83	(	2 0 4067.7192399506 2 5932.2804592016 )	53.7876191311 (ExtendedPoll)
+	7933+86	(	2 0 4067.7200409230 2 5932.2799415742 )	53.7876164105 (ExtendedPoll)
+	7933+101	(	2 0 4067.7200445311 2 5932.2799480928 )	53.7876163183 (ExtendedPoll)
+	7933+105	(	2 0 4067.7200436470 2 5932.2799517117 )	53.7876162938 (ExtendedPoll)
+	7933+110	(	2 0 4067.7200455038 2 5932.2799515643 )	53.7876162780 (ExtendedPoll)
+	7933+111	(	2 0 4067.7200489601 2 5932.2799501743 )	53.7876162586 (ExtendedPoll)
+	7933+119	(	2 0 4067.7200493934 2 5932.2799500040 )	53.7876162561 (ExtendedPoll)
+	7933+122	(	2 0 4067.7200493924 2 5932.2799504696 )	53.7876162519 (ExtendedPoll)
+	7933+129	(	2 0 4067.7200493199 2 5932.2799505607 )	53.7876162518 (ExtendedPoll)
+	7933+130	(	2 0 4067.7200491022 2 5932.2799508337 )	53.7876162513 (ExtendedPoll)
+	7933+141	(	2 0 4067.7200491111 2 5932.2799508739 )	53.7876162509 (ExtendedPoll)
+	8079+2	(	2 0 4664.5898009415 2 5335.4101941914 )	54.6460175679 (ExtendedPoll)
+	8079+3	(	2 0 3658.3592110666 2 6341.6407840663 )	54.3665216810 (ExtendedPoll)
+	8079+47	(	2 0 3658.3592086607 2 6341.6407911178 )	54.3665216529 (ExtendedPoll)
+	8079+49	(	2 0 3658.3592231902 2 6341.6407758540 )	54.3665216198 (ExtendedPoll)
+	8079+50	(	2 0 3658.3592667787 2 6341.6407300627 )	54.3665215205 (ExtendedPoll)
+	8079+51	(	2 0 3658.3594411326 2 6341.6405468973 )	54.3665211233 (ExtendedPoll)
+	8079+52	(	2 0 3658.3601385484 2 6341.6398142359 )	54.3665195344 (ExtendedPoll)
+	8079+53	(	2 0 3658.3629282116 2 6341.6368835902 )	54.3665131789 (ExtendedPoll)
+	8079+54	(	2 0 3658.3740868643 2 6341.6251610074 )	54.3664877574 (ExtendedPoll)
+	8079+55	(	2 0 3658.4187214749 2 6341.5782706765 )	54.3663860796 (ExtendedPoll)
+	8079+56	(	2 0 3658.5972599177 2 6341.3907093526 )	54.3659794991 (ExtendedPoll)
+	8079+57	(	2 0 3659.3114136885 2 6340.6404640569 )	54.3643552693 (ExtendedPoll)
+	8079+58	(	2 0 3662.1680287720 2 6337.6394828742 )	54.3578918193 (ExtendedPoll)
+	8079+59	(	2 0 3673.5944891057 2 6325.6355581437 )	54.3325733144 (ExtendedPoll)
+	8079+60	(	2 0 3719.3003304408 2 6277.6198592213 )	54.2398493355 (ExtendedPoll)
+	8079+61	(	2 0 3902.1236957812 2 6085.5570635318 )	54.0045822968 (ExtendedPoll)
+	8079+63	(	2 0 3902.2168451994 2 6085.4781750776 )	54.0043572353 (ExtendedPoll)
+	8079+64	(	2 0 3902.4962934540 2 6085.2415097151 )	54.0036823026 (ExtendedPoll)
+	8079+65	(	2 0 3903.6140864724 2 6084.2948482648 )	54.0009863502 (ExtendedPoll)
+	8079+66	(	2 0 3908.0852585462 2 6080.5082024636 )	53.9902629755 (ExtendedPoll)
+	8079+67	(	2 0 3925.9699468413 2 6065.3616192587 )	53.9483351232 (ExtendedPoll)
+	8079+68	(	2 0 3929.8118238900 2 6064.6724015289 )	53.9176744624 (ExtendedPoll)
+	8079+71	(	2 0 3933.6400530629 2 6065.4639783275 )	53.8745546326 (ExtendedPoll)
+	8079+74	(	2 0 3935.2163827223 2 6064.3107328191 )	53.8694071337 (ExtendedPoll)
+	8079+80	(	2 0 3934.4145700168 2 6065.4354030875 )	53.8674407841 (ExtendedPoll)
+	8079+86	(	2 0 3934.3391268516 2 6065.5313647145 )	53.8673400617 (ExtendedPoll)
+	8079+87	(	2 0 3934.1127973559 2 6065.8192495955 )	53.8670381792 (ExtendedPoll)
+	8079+97	(	2 0 3934.1264743868 2 6065.8465307696 )	53.8666759354 (ExtendedPoll)
+	8079+99	(	2 0 3934.1212739663 2 6065.8766020781 )	53.8664692539 (ExtendedPoll)
+	8079+109	(	2 0 3934.1202740309 2 6065.8782263033 )	53.8664649210 (ExtendedPoll)
+	8079+113	(	2 0 3934.1223533865 2 6065.8765080955 )	53.8664598006 (ExtendedPoll)
+	8079+114	(	2 0 3934.1285914536 2 6065.8713534722 )	53.8664444397 (ExtendedPoll)
+	8079+118	(	2 0 3934.1299504561 2 6065.8700151548 )	53.8664429271 (ExtendedPoll)
+	8079+132	(	2 0 3934.1299636052 2 6065.8700081445 )	53.8664428619 (ExtendedPoll)
+	8079+133	(	2 0 3934.1300030527 2 6065.8699871137 )	53.8664426663 (ExtendedPoll)
+	8079+138	(	2 0 3934.1300169838 2 6065.8699818250 )	53.8664425790 (ExtendedPoll)
+	8079+144	(	2 0 3934.1300195727 2 6065.8699791463 )	53.8664425772 (ExtendedPoll)
+	8079+145	(	2 0 3934.1300273392 2 6065.8699711101 )	53.8664425718 (ExtendedPoll)
+	8079+146	(	2 0 3934.1300584054 2 6065.8699389652 )	53.8664425505 (ExtendedPoll)
+	8079+147	(	2 0 3934.1301826702 2 6065.8698103857 )	53.8664424650 (ExtendedPoll)
+	8079+148	(	2 0 3934.1306797292 2 6065.8692960676 )	53.8664421232 (ExtendedPoll)
+	8079+149	(	2 0 3934.1326679655 2 6065.8672387954 )	53.8664407559 (ExtendedPoll)
+	8079+150	(	2 0 3934.1406209105 2 6065.8590097066 )	53.8664352870 (ExtendedPoll)
+	8079+151	(	2 0 3934.1724326905 2 6065.8260933514 )	53.8664134151 (ExtendedPoll)
+	8079+152	(	2 0 3934.2996798107 2 6065.6944279307 )	53.8663259908 (ExtendedPoll)
+	8079+153	(	2 0 3934.8086682912 2 6065.1677662475 )	53.8659772994 (ExtendedPoll)
+	8079+154	(	2 0 3936.8446222133 2 6063.0611195148 )	53.8645986296 (ExtendedPoll)
+	8079+155	(	2 0 3944.9884379019 2 6054.6345325840 )	53.8593413213 (ExtendedPoll)
+	8079+156	(	2 0 3977.5637006562 2 6020.9281848608 )	53.8424195173 (ExtendedPoll)
+	8079+157	(	2 0 4107.8647516735 2 5886.1027939679 )	53.8397272797 (ExtendedPoll)
+	8079+160	(	2 0 4107.9148966216 2 5886.1375900537 )	53.8389476963 (ExtendedPoll)
+	8079+161	(	2 0 4108.0653314659 2 5886.2419783111 )	53.8366089797 (ExtendedPoll)
+	8079+162	(	2 0 4108.6670708432 2 5886.6595313405 )	53.8272546148 (ExtendedPoll)
+	8079+163	(	2 0 4111.0740283523 2 5888.3297434584 )	53.7898451866 (ExtendedPoll)
+	8079+164	(	2 0 4110.6415612866 2 5889.2053399927 )	53.7857457298 (ExtendedPoll)
+	8079+169	(	2 0 4110.3275535183 2 5889.5792704659 )	53.7851798069 (ExtendedPoll)
+	8079+177	(	2 0 4110.3514722870 2 5889.6354230117 )	53.7844442616 (ExtendedPoll)
+	8079+179	(	2 0 4110.3094657512 2 5889.6797036381 )	53.7844214421 (ExtendedPoll)
+	8079+180	(	2 0 4110.1834461437 2 5889.8125455175 )	53.7843530488 (ExtendedPoll)
+	8079+189	(	2 0 4110.1987859472 2 5889.7973681491 )	53.7843522353 (ExtendedPoll)
+	8079+190	(	2 0 4110.2448053575 2 5889.7518360439 )	53.7843498028 (ExtendedPoll)
+	8079+191	(	2 0 4110.4288829988 2 5889.5697076232 )	53.7843401922 (ExtendedPoll)
+	8079+198	(	2 0 4110.4212701576 2 5889.5773535241 )	53.7843395401 (ExtendedPoll)
+	8079+199	(	2 0 4110.3984316340 2 5889.6002912268 )	53.7843375858 (ExtendedPoll)
+	8079+200	(	2 0 4110.3070775395 2 5889.6920420376 )	53.7843297986 (ExtendedPoll)
+	8079+213	(	2 0 4110.3073348959 2 5889.6924434618 )	53.7843237498 (ExtendedPoll)
+	8079+218	(	2 0 4110.3074006879 2 5889.6925428714 )	53.7843222330 (ExtendedPoll)
+	8079+220	(	2 0 4110.3073219352 2 5889.6926323636 )	53.7843221306 (ExtendedPoll)
+	8079+221	(	2 0 4110.3070856770 2 5889.6929008404 )	53.7843218236 (ExtendedPoll)
+	8079+229	(	2 0 4110.3070782245 2 5889.6929137441 )	53.7843217731 (ExtendedPoll)
+	8079+234	(	2 0 4110.3070784835 2 5889.6929211901 )	53.7843217023 (ExtendedPoll)
+	8079+244	(	2 0 4110.3070782010 2 5889.6929215603 )	53.7843217014 (ExtendedPoll)
+	8079+248	(	2 0 4110.3070784332 2 5889.6929215433 )	53.7843216995 (ExtendedPoll)
+	8079+255	(	2 0 4110.3070784211 2 5889.6929215697 )	53.7843216993 (ExtendedPoll)
+	8338	(	3 0 3209.7896175644 2 3041.1231297861 1 3749.0872500424 )	46.5944602659
+	8342+4	(	2 0 4720.4915015090 2 5223.6067964464 )	55.4583179990 (ExtendedPoll)
+	8342+6	(	2 0 4385.0813048840 2 5559.0169930714 )	54.5837536455 (ExtendedPoll)
+	8342+11	(	2 0 4580.7372529152 2 5419.2627444776 )	54.4134065463 (ExtendedPoll)
+	8342+19	(	2 0 4558.0271875187 2 5440.6626137936 )	54.3705316119 (ExtendedPoll)
+	8342+20	(	2 0 4489.8969913293 2 5504.8622217413 )	54.2562699395 (ExtendedPoll)
+	8342+21	(	2 0 4217.3762065715 2 5761.6606535323 )	54.0237236224 (ExtendedPoll)
+	8342+31	(	2 0 4224.1455529878 2 5775.7452613984 )	53.8272825836 (ExtendedPoll)
+	8342+40	(	2 0 4224.0014506112 2 5775.9423292618 )	53.8266734099 (ExtendedPoll)
+	8342+42	(	2 0 4224.5165513001 2 5775.4823531964 )	53.8264974549 (ExtendedPoll)
+	8342+55	(	2 0 4224.5193698410 2 5775.4797826488 )	53.8264970122 (ExtendedPoll)
+	8342+56	(	2 0 4224.5278254637 2 5775.4720710060 )	53.8264956843 (ExtendedPoll)
+	8342+72	(	2 0 4224.5278620041 2 5775.4721180965 )	53.8264949041 (ExtendedPoll)
+	8342+75	(	2 0 4224.5278401629 2 5775.4721383731 )	53.8264949041 (ExtendedPoll)
+	8342+76	(	2 0 4224.5277746392 2 5775.4721992028 )	53.8264949041 (ExtendedPoll)
+	8342+77	(	2 0 4224.5275125446 2 5775.4724425218 )	53.8264949040 (ExtendedPoll)
+	8342+78	(	2 0 4224.5264641662 2 5775.4734157976 )	53.8264949035 (ExtendedPoll)
+	8342+79	(	2 0 4224.5222706526 2 5775.4773089008 )	53.8264949018 (ExtendedPoll)
+	8342+80	(	2 0 4224.5054965982 2 5775.4928813139 )	53.8264948957 (ExtendedPoll)
+	8342+81	(	2 0 4224.4384003804 2 5775.5551709661 )	53.8264948856 (ExtendedPoll)
+	8342+83	(	2 0 4224.4377205871 2 5775.5589246019 )	53.8264648146 (ExtendedPoll)
+	8342+86	(	2 0 4224.4354746818 2 5775.5620080759 )	53.8264551993 (ExtendedPoll)
+	8342+87	(	2 0 4224.4287369659 2 5775.5712584979 )	53.8264263535 (ExtendedPoll)
+	8342+108	(	2 0 4224.4287371566 2 5775.5712603508 )	53.8264263340 (ExtendedPoll)
+	8342+110	(	2 0 4224.4287369462 2 5775.5712622015 )	53.8264263180 (ExtendedPoll)
+	8342+112	(	2 0 4224.4287384895 2 5775.5712611586 )	53.8264263143 (ExtendedPoll)
+	8342+120	(	2 0 4224.4287387223 2 5775.5712611587 )	53.8264263122 (ExtendedPoll)
+	8342+123	(	2 0 4224.4287389206 2 5775.5712610366 )	53.8264263116 (ExtendedPoll)
+	8342+128	(	2 0 4224.4287388106 2 5775.5712611591 )	53.8264263114 (ExtendedPoll)
+	8342+134	(	2 0 4224.4287388393 2 5775.5712611545 )	53.8264263112 (ExtendedPoll)
+	8479+5	(	2 0 4748.4423512277 2 5251.5576461652 )	54.9123289774 (ExtendedPoll)
+	8479+6	(	2 0 3993.7694088215 2 6006.2305885713 )	53.8183150359 (ExtendedPoll)
+	8479+51	(	2 0 3993.7694094976 2 6006.2305892118 )	53.8183150239 (ExtendedPoll)
+	8479+52	(	2 0 3993.7694111450 2 6006.2305883426 )	53.8183150161 (ExtendedPoll)
+	8479+63	(	2 0 3993.7694114742 2 6006.2305883502 )	53.8183150129 (ExtendedPoll)
+	8479+65	(	2 0 3993.7694113839 2 6006.2305885648 )	53.8183150119 (ExtendedPoll)
+	8479+70	(	2 0 3993.7694115223 2 6006.2305884756 )	53.8183150114 (ExtendedPoll)
+	8557	(	3 0 3209.7895991439 2 3041.1231230634 1 3749.0872724849 )	46.5944602388
+	8558	(	3 0 3209.7895438823 2 3041.1231028951 1 3749.0873398125 )	46.5944601576
+	8559	(	3 0 3209.7893228358 2 3041.1230222222 1 3749.0876091228 )	46.5944598326
+	8560	(	3 0 3209.7884386500 2 3041.1226995306 1 3749.0886863640 )	46.5944585328
+	8561	(	3 0 3209.7849019068 2 3041.1214087641 1 3749.0929953290 )	46.5944533336
+	8562	(	3 0 3209.7707549341 2 3041.1162456982 1 3749.1102311888 )	46.5944325369
+	8563	(	3 0 3209.7141670434 2 3041.0955934346 1 3749.1791746282 )	46.5943493545
+	8564	(	3 0 3209.4878154802 2 3041.0129843799 1 3749.4549483857 )	46.5940166899
+	8565	(	3 0 3208.5824092276 2 3040.6825481613 1 3750.5580434156 )	46.5926870780
+	8566	(	3 0 3204.9607842173 2 3039.3608032869 1 3754.9704235351 )	46.5873853782
+	8567	(	3 0 3190.4742841761 2 3034.0738237895 1 3772.6199440134 )	46.5664471002
+	8568	(	3 0 3132.5282840110 2 3012.9259057995 1 3843.2180259264 )	46.4870256328
+	8569	(	3 0 2900.7442833508 2 2928.3342338397 1 4125.6103535787 )	46.2408879908
+	8571	(	3 0 2900.7614274922 2 2928.3321612234 1 4125.8538859951 )	46.2381909255
+	8572	(	3 0 2900.8128599165 2 2928.3259433745 1 4126.5844832443 )	46.2301005176
+	8573	(	3 0 2901.0185896137 2 2928.3010719787 1 4129.5068722413 )	46.1977507173
+	8574	(	3 0 2901.8415084025 2 2928.2015863959 1 4141.1964282293 )	46.0685414984
+	8575	(	3 0 2900.9072090155 2 2929.0263074597 1 4144.8990220964 )	46.0294803754
+	8576	(	3 0 2898.1043108544 2 2931.5004706513 1 4156.0068036976 )	45.9126009127
+	8577	(	3 0 2893.3059337557 2 2930.6699823072 1 4170.8633174072 )	45.8058560157
+	8578	(	3 0 2906.2246413292 2 2906.6780968135 1 4186.3657664955 )	45.7664430594
+	8585	(	3 0 2885.1856032809 2 2904.8325671601 1 4209.2503341972 )	45.7234233185
+	8586	(	3 0 2822.0684891358 2 2899.2959782000 1 4277.9040373024 )	45.6027586237
+	8587	(	3 0 2569.6000325554 2 2877.1496223596 1 4552.5188497232 )	45.2497134209
+	8604	(	3 0 2569.6580658121 2 2876.7761909688 1 4553.4192663392 )	45.2437144482
+	8605	(	3 0 2570.2146083482 2 2875.2291180641 1 4554.4732367897 )	45.2420565509
+	8619	(	3 0 2570.1792950214 2 2875.1673676151 1 4554.5724351350 )	45.2419430091
+	8620	(	3 0 2570.0733550410 2 2874.9821162682 1 4554.8700301708 )	45.2416024126
+	8621	(	3 0 2569.6495951193 2 2874.2411108805 1 4556.0604103143 )	45.2402404599
+	8628	(	3 0 2569.2779660036 2 2874.5306463677 1 4556.1885520705 )	45.2397502250
+	8645	(	3 0 2569.2890178965 2 2874.5245089523 1 4556.1847035137 )	45.2397436100
+	8656	(	3 0 2569.2838215385 2 2874.5258438228 1 4556.1885598972 )	45.2397403650
+	8657	(	3 0 2569.2682324643 2 2874.5298484341 1 4556.2001290477 )	45.2397306308
+	8658	(	3 0 2569.2058761675 2 2874.5458668797 1 4556.2464056497 )	45.2396917036
+	8659	(	3 0 2568.9564509805 2 2874.6099406618 1 4556.4315120578 )	45.2395361495
+	8660	(	3 0 2567.9587502324 2 2874.8662357905 1 4557.1719376902 )	45.2389164047
+	8661	(	3 0 2563.9679472400 2 2875.8914163050 1 4560.1336402198 )	45.2364769895
+	8662	(	3 0 2548.0047352705 2 2879.9921383632 1 4571.9804503382 )	45.2273531705
+	8663	(	3 0 2484.1518873922 2 2896.3950265960 1 4619.3676908119 )	45.2010503608
+	8675	(	3 0 2484.0736686549 2 2896.3896310350 1 4619.4612514156 )	45.2009055791
+	8676	(	3 0 2483.8390124432 2 2896.3734443522 1 4619.7419332265 )	45.2004713862
+	8689	(	3 0 2483.8404577833 2 2896.3642671817 1 4619.7710023038 )	45.2002598293
+	8696	(	3 0 2483.8253676018 2 2896.3813588741 1 4619.7912874024 )	45.2000581939
+	8712	(	3 0 2483.8253703113 2 2896.3815984832 1 4619.7922104815 )	45.2000473949
+	8714	(	3 0 2483.8245414630 2 2896.3833077377 1 4619.7920389071 )	45.2000420407
+	8717	(	3 0 2483.8258603227 2 2896.3779360857 1 4619.7956529999 )	45.2000411600
+	8718	(	3 0 2483.8298169016 2 2896.3618211298 1 4619.8064952782 )	45.2000385180
+	8719	(	3 0 2483.8456432174 2 2896.2973613061 1 4619.8498643917 )	45.2000279546
+	8720	(	3 0 2483.9089484806 2 2896.0395220115 1 4620.0233408456 )	45.1999857711
+	8721	(	3 0 2484.1621695335 2 2895.0081648328 1 4620.7172466613 )	45.1998181601
+	8722	(	3 0 2485.1750537449 2 2890.8827361181 1 4623.4928699239 )	45.1991656831
+	8723	(	3 0 2489.2265905905 2 2874.3810212593 1 4634.5953629742 )	45.1968429324
+	8724	(	3 0 2505.4327379729 2 2808.3741618241 1 4679.0053351755 )	45.1921264676
+	8727	(	3 0 2505.3685769810 2 2808.4952747076 1 4679.9720755135 )	45.1823799799
+	8728	(	3 0 2505.1760940054 2 2808.8586133581 1 4682.8722965274 )	45.1531602599
+	8729	(	3 0 2503.1517786669 2 2810.5022882056 1 4685.7790057314 )	45.1291493448
+	8738	(	3 0 2502.1929683392 2 2809.7986800253 1 4687.3275204562 )	45.1288718569
+	8739	(	3 0 2499.3165373560 2 2807.6878554842 1 4691.9730646305 )	45.1280529948
+	8740	(	3 0 2487.8108134233 2 2799.2445573201 1 4710.5552413278 )	45.1249818571
+	8741	(	3 0 2441.7879176925 2 2765.4713646635 1 4784.8839481171 )	45.1159841138
+	8744	(	3 0 2462.0887438795 2 2743.6941147538 1 4794.1115963840 )	45.0330234211
+	8760	(	3 0 2462.3136002207 2 2743.6052851221 1 4794.0775784423 )	45.0321070688
+	8776	(	3 0 2462.3185474349 2 2743.6003098574 1 4794.0805750106 )	45.0320771528
+	8786	(	3 0 2462.3197386852 2 2743.5989064226 1 4794.0810742815 )	45.0320738114
+	8793	(	3 0 2462.3211643858 2 2743.5976465736 1 4794.0809396072 )	45.0320731778
+	8794	(	3 0 2462.3254414876 2 2743.5938670266 1 4794.0805355845 )	45.0320712769
+	8812	(	3 0 2462.3255079460 2 2743.5937832827 1 4794.0805883207 )	45.0320709008
+	8813	(	3 0 2462.3257073210 2 2743.5935320511 1 4794.0807465293 )	45.0320697728
+	8826	(	3 0 2462.3257104845 2 2743.5935091129 1 4794.0807652912 )	45.0320697624
+	8827	(	3 0 2462.3257199749 2 2743.5934402983 1 4794.0808215770 )	45.0320697313
+	8828	(	3 0 2462.3257579368 2 2743.5931650398 1 4794.0810467200 )	45.0320696068
+	8829	(	3 0 2462.3259097844 2 2743.5920640060 1 4794.0819472921 )	45.0320691088
+	8830	(	3 0 2462.3265171749 2 2743.5876598710 1 4794.0855495803 )	45.0320671166
+	8831	(	3 0 2462.3289467365 2 2743.5700433307 1 4794.0999587333 )	45.0320591485
+	8832	(	3 0 2462.3386649831 2 2743.4995771695 1 4794.1575953453 )	45.0320272796
+	8833	(	3 0 2462.3775379695 2 2743.2177125248 1 4794.3881417933 )	45.0318998663
+	8834	(	3 0 2462.5330299152 2 2742.0902539461 1 4795.3103275852 )	45.0313912035
+	8835	(	3 0 2463.1549976977 2 2737.5804196312 1 4798.9990707529 )	45.0293724005
+	8836	(	3 0 2465.6428688278 2 2719.5410823714 1 4813.7540434236 )	45.0215504519
+	8837	(	3 0 2475.5943533484 2 2647.3837333325 1 4872.7739341066 )	44.9942951687
+	8838	(	3 0 2515.4002914308 2 2358.7543371766 1 5108.8534968384 )	44.9485005040
+	8840	(	3 0 2515.2855315668 2 2358.6893426326 1 5109.0589561943 )	44.9480836817
+	8841	(	3 0 2514.9412519750 2 2358.4943590004 1 5109.6753342622 )	44.9468335445
+	8842	(	3 0 2513.5641336077 2 2357.7144244716 1 5112.1408465335 )	44.9418379464
+	8843	(	3 0 2508.0556601384 2 2354.5946863564 1 5122.0028956186 )	44.9219348254
+	8844	(	3 0 2486.0217662612 2 2342.1157338955 1 5161.4510919593 )	44.8435947921
+	8845	(	3 0 2483.0458496952 2 2338.7707113988 1 5167.8643075048 )	44.8377804120
+	8846	(	3 0 2474.1180999970 2 2328.7356439086 1 5187.1039541411 )	44.8205099552
+	8847	(	3 0 2438.4071012044 2 2288.5953739479 1 5264.0625406864 )	44.7540328039
+	8848	(	3 0 2295.5631060339 2 2128.0342941051 1 5571.8968868678 )	44.5306991822
+	8855	(	3 0 2246.8411231851 2 2159.0391922817 1 5594.0432427082 )	44.4908538729
+	8881	(	3 0 2246.8591149590 2 2159.0973578929 1 5594.0389538567 )	44.4902351182
+	8890	(	3 0 2246.8486392353 2 2159.1084209401 1 5594.0397904890 )	44.4902262093
+	8903	(	3 0 2246.8540260785 2 2159.1053127856 1 5594.0375595191 )	44.4902251751
+	8904	(	3 0 2246.8701866083 2 2159.0959883223 1 5594.0308666095 )	44.4902220731
+	8905	(	3 0 2246.9348287276 2 2159.0586904689 1 5594.0040949708 )	44.4902096777
+	8906	(	3 0 2247.1933972044 2 2158.9094990553 1 5593.8970084161 )	44.4901602933
+	8927	(	3 0 2247.1934312789 2 2158.9093352501 1 5593.8971782696 )	44.4901598382
+	8933	(	3 0 2247.1936064494 2 2158.9091736740 1 5593.8971710678 )	44.4901597251
+	8934	(	3 0 2247.1941319611 2 2158.9086889458 1 5593.8971494625 )	44.4901593859
+	8944	(	3 0 2247.1941525712 2 2158.9086089656 1 5593.8972354233 )	44.4901591006
+	8961	(	3 0 2247.1941592110 2 2158.9086060982 1 5593.8972336338 )	44.4901590823
+	8969	(	3 0 2247.1941622393 2 2158.9086061446 1 5593.8972314647 )	44.4901590747
+	8979	(	3 0 2247.1941629850 2 2158.9086060136 1 5593.8972309224 )	44.4901590742
+	8988	(	3 0 2247.1941631028 2 2158.9086062984 1 5593.8972305733 )	44.4901590739
+	8998	(	3 0 2247.1941631943 2 2158.9086062904 1 5593.8972305018 )	44.4901590738
+	9011	(	3 0 2247.1941631861 2 2158.9086062987 1 5593.8972305106 )	44.4901590737
+	9021	(	3 0 2247.1941631897 2 2158.9086062984 1 5593.8972305098 )	44.4901590737
+	9027	(	3 0 2247.1941631931 2 2158.9086062979 1 5593.8972305086 )	44.4901590737
+	9037	(	3 0 2247.1941631947 2 2158.9086062989 1 5593.8972305060 )	44.4901590737
+	9047	(	3 0 2247.1941631950 2 2158.9086062987 1 5593.8972305061 )	44.4901590737
+	9056	(	3 0 2247.1941631952 2 2158.9086062985 1 5593.8972305062 )	44.4901590737
+	9065	(	3 0 2247.1941631953 2 2158.9086062986 1 5593.8972305060 )	44.4901590737
+	9074	(	3 0 2247.1941631953 2 2158.9086062986 1 5593.8972305061 )	44.4901590737
+	9091	(	3 0 2247.1941631953 2 2158.9086062986 1 5593.8972305061 )	44.4901590737
 
-} end of run (mesh size reached NOMAD precision)
+} end of run (mesh index limits)
 
-blackbox evaluations                     : 3436
-best feasible solution                   : ( 3 0 3333.333333 2 3333.333333 1 3333.333333 ) h=0 f=47.16829052
+blackbox evaluations                     : 9091
+best feasible solution                   : ( 3 0 2247.194163 2 2158.908606 1 5593.897231 ) h=0 f=44.49015907
diff --git a/examples/advanced/multi_start/best_x.txt b/examples/advanced/multi_start/best_x.txt
index 7588ff3..821eea6 100644
--- a/examples/advanced/multi_start/best_x.txt
+++ b/examples/advanced/multi_start/best_x.txt
@@ -1 +1 @@
-1.0065227779901828597530766273849 0.0061576008796691908409037807814457 0.99995827823866767491978180260048 1.0093326058145666301868459413527 1.0032484173774720570548879550188
\ No newline at end of file
+0.9999740474925636890546343238384 3.9134074383641649674033663464101e-05 0.99997595080463674843684884763206 0.99999589110497688615453171223635 0.99999324108060483329296630472527
\ No newline at end of file
diff --git a/examples/advanced/multi_start/makefile b/examples/advanced/multi_start/makefile
index 95b3f96..841008f 100644
--- a/examples/advanced/multi_start/makefile
+++ b/examples/advanced/multi_start/makefile
@@ -1,11 +1,23 @@
-EXE                 = multi.exe
-COMPILATOR          = g++
-COMPILATOR_OPTIONS  = -ansi -O2
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lm
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = multi.o
+UNAME := $(shell uname)
+
+EXE                    = multi.exe
+COMPILATOR             = g++
+COMPILATOR_OPTIONS     = -ansi -O2
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+
+LDLIBS                 = -lm -lnomad
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+OBJS                   = multi.o
 
 ifndef NOMAD_HOME
 define ECHO_NOMAD
@@ -14,11 +26,15 @@ define ECHO_NOMAD
 endef
 endif
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
 	@echo "   building the scalar version ..."
 	@echo "   exe file : "$(EXE)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
+
 
 multi.o: multi.cpp
 	$(ECHO_NOMAD)
diff --git a/examples/advanced/multi_start/runExample.log b/examples/advanced/multi_start/runExample.log
index 51c3fae..ffc68d1 100644
--- a/examples/advanced/multi_start/runExample.log
+++ b/examples/advanced/multi_start/runExample.log
@@ -1,5 +1,5 @@
 
-starting point # 0: ( 1.311638583 0.3116009987 0.9520390845 0.8088161243 1.540724398 1.619263445 0.9519058983 )
+starting point # 0: ( 0.5802249825 1.631108467 1.028915701 1.041199968 0.8987064366 1.883811294 1.475481573 )
 starting point # 1: ( 4.046907118 0.2179386209 0.3995457903 2.86002185 2.869872299 1.805805862 0.9241232544 )
 starting point # 2: ( 2.730496038 4.019688198 2.015450408 3.887235003 1.919237215 0.004176816764 2.788539635 )
 starting point # 3: ( 1.986593711 1.814325217 1.166098379 0.9517739273 0.4086947283 3.9836116 2.239536416 )
@@ -8,14 +8,14 @@ starting point # 4: ( 1.072412482 2.713920967 3.075009451 0.3310437183 1.0323001
 Warning: {
 	Anisotropic mesh is disabled for direction types other than OrthoMads.
 } 
-run # 0: f=1.619155361
-run # 1: f=1.890750373
-run # 2: f=2.267307514
-run # 3: f=1.998968772
-run # 4: f=2.24968126
+run # 0: f=1.933149587
+run # 1: f=1.998299291
+run # 2: f=2.185446803
+run # 3: f=1.978020317
+run # 4: f=2.037153616
 
 bb eval : 5000
-best    : 1.619155361
-worst   : 2.267307514
-solution: x = ( 1.310592306 0.3106177009 0.9507953978 0.8088442339 1.538847818 1.618878923 0.951419131 ) f(x) = 1.619155361
+best    : 1.933149587
+worst   : 2.185446803
+solution: x = ( 0.6020877754 1.616716377 1.043857108 1.033179949 0.9025516515 1.899521743 1.402861944 ) f(x) = 1.933149587
 
diff --git a/examples/advanced/plot/makefile b/examples/advanced/plot/makefile
index 3529bc8..22c70e7 100644
--- a/examples/advanced/plot/makefile
+++ b/examples/advanced/plot/makefile
@@ -1,16 +1,37 @@
-EXE                 = nomad_plot.exe
-COMPILATOR          = g++
-COMPILATOR_OPTIONS  = -ansi -O2
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lc -lm
-INCLUDE             = -I $(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = nomad_plot.o
+UNAME := $(shell uname)
+
+EXE                    = nomad_plot.exe
+COMPILATOR             = g++
+COMPILATOR_OPTIONS     = -ansi -O2
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+
+LDLIBS                 = -lm -lnomad
+
+
+INCLUDE                = -I $(NOMAD_HOME)/src -I.
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+OBJS                   = nomad_plot.o
 
 $(EXE): $(OBJS)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
+	$(ECHO_NOMAD)
+	@echo "   building the scalar version ..."
+	@echo "   exe file : "$(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(LIB_DIR)/$(LIB_NOMAD) $(EXE)
+endif
+
 
-nomad_plot.o: nomad_plot.cpp $(L1)
+nomad_plot.o: nomad_plot.cpp
+	$(ECHO_NOMAD)
 	$(COMPILE) nomad_plot.cpp
 
 clean:
diff --git a/examples/advanced/restart/makefile b/examples/advanced/restart/makefile
index b85123a..a4770d4 100644
--- a/examples/advanced/restart/makefile
+++ b/examples/advanced/restart/makefile
@@ -1,25 +1,34 @@
-EXE                 = restart.exe
+
+UNAME := $(shell uname)
+
+EXE                             = restart.exe
 EXE_MPI				= restart_MPI.exe
 
-COMPILATOR          = g++
-COMPILATOR_MPI = mpic++
-SUNAME = $(shell uname)
-OSS=$(findstring MINGW32,$(SUNAME)) 
-ifneq "$(strip $(OSS))" ""
-COMPILATOR_MPI = g++
+COMPILATOR                      = g++
+COMPILATOR_MPI                  = mpic++
+
+COMPILATOR_OPTIONS              = -g -O2 -ansi 
+COMPILATOR_OPTIONS_MPI          = $(COMPILATOR_OPTIONS) -DUSE_MPI
+
+LIB_DIR                         = $(NOMAD_HOME)/lib
+LIB_NOMAD                       = libnomad.so 
+LIB_NOMAD_MPI                   = libnomad.MPI.so
+
+CXXFLAGS                        =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS                       += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS                       += -ansi
 endif
+CXXFLAGS_MPI 	                = $(CXXFLAGS) -DUSE_MPI
+
+LDLIBS                          = -lm -lnomad
+LDLIBS_MPI                      = -lm -lmpi -lnomad.MPI
 
-COMPILATOR_OPTIONS  = -O2 -ansi 
-COMPILATOR_OPTIONS_MPI = $(COMPILATOR_OPTIONS) -DUSE_MPI
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-L1_MPI				= $(NOMAD_HOME)/lib/nomad.MPI.a
-LIBS                = $(L1) -lm
-LIBS_MPI			= $(L1_MPI) -lm -lmpi
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+INCLUDE                         = -I$(NOMAD_HOME)/src -I.
+COMPILE                         = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
 COMPILE_MPI			= $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
-OBJS                = restart.o
-OBJS_MPI            = restart_MPI.o
+OBJS                            = restart.o
+OBJS_MPI                        = restart_MPI.o
 
 
 ifndef NOMAD_HOME
@@ -30,19 +39,25 @@ endef
 endif
 
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
 	@echo "   building the scalar version ..."
 	@echo "   exe file : "$(EXE)
-	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip  $(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
+
 
-$(EXE_MPI): $(L1_MPI) $(OBJS_MPI) 
+$(EXE_MPI): $(OBJS_MPI) 
 	$(ECHO_NOMAD)
 	@echo "   building the MPI version ..."
 	@echo "   exe file : "$(EXE_MPI)
-	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LIBS_MPI) $(COMPILATOR_OPTIONS_MPI)
-	@strip  $(EXE_MPI)
+	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LDLIBS_MPI) $(CXXFLAGS_MPI) -L$(LIB_DIR)
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD_MPI) $(NOMAD_HOME)/lib/$(LIB_NOMAD_MPI) $(EXE_MPI)
+endif
+
 
 restart.o: restart.cpp
 	$(ECHO_NOMAD)
@@ -52,9 +67,6 @@ restart_MPI.o: restart.cpp
 	$(ECHO_NOMAD)
 	@$(COMPILE_MPI) restart.cpp -o restart_MPI.o
 
-$(L1) $(L1_MPI): ;
-	$(ECHO_NOMAD)
-
 mpi: $(EXE_MPI)
 
 all: $(EXE) $(EXE_MPI)
diff --git a/examples/advanced/restart/restart.cpp b/examples/advanced/restart/restart.cpp
index e41b0dc..9c5c7b5 100644
--- a/examples/advanced/restart/restart.cpp
+++ b/examples/advanced/restart/restart.cpp
@@ -8,65 +8,70 @@ using namespace NOMAD;
 /*----------------------------------------*/
 /*               the problem              */
 /*----------------------------------------*/
-class My_Evaluator : public Evaluator {
+class My_Evaluator : public Evaluator
+{
 private:
-
+    
+    
 public:
     
     My_Evaluator  ( const Parameters & p ) : Evaluator ( p ) { }
-
     
     
-  ~My_Evaluator ( void ) {}
-
-  virtual bool eval_x ( Eval_Point   & x          ,
-			const Double & h_max      ,
-			bool         & count_eval   ) const;
-
-  virtual void update_iteration ( success_type              success      ,
-				  const Stats             & stats        ,
-				  const Evaluator_Control & ev_control   ,
-				  const Barrier           & true_barrier ,
-				  const Barrier           & sgte_barrier ,
-				  const Pareto_Front      & pareto_front ,
-				  bool                    & stop           );
+    
+    ~My_Evaluator ( void ) { }
+    
+    
+    virtual bool eval_x ( Eval_Point   & x          ,
+                         const Double & h_max      ,
+                         bool         & count_eval   ) const;
+    
+    virtual void update_iteration ( success_type              success      ,
+                                   const Stats             & stats        ,
+                                   const Evaluator_Control & ev_control   ,
+                                   const Barrier           & true_barrier ,
+                                   const Barrier           & sgte_barrier ,
+                                   const Pareto_Front      & pareto_front ,
+                                   bool                    & stop           );
 };
 
 /*----------------------------------------*/
 /*           user-defined eval_x          */
 /*----------------------------------------*/
 bool My_Evaluator::eval_x ( Eval_Point   & x          ,
-			    const Double & h_max      ,
-			    bool         & count_eval   ) const
+                           const Double & h_max      ,
+                           bool         & count_eval   ) const
 {
-  Double c1 = 0.0 , c2 = 0.0;
-  for ( int i = 0 ; i < 5 ; i++ ) {
-    c1 += (x[i]-1).pow2();
-    c2 += (x[i]+1).pow2();
-  }
-  x.set_bb_output  ( 0 , x[4]  ); // objective value
-  x.set_bb_output  ( 1 , c1-25 ); // constraint 1
-  x.set_bb_output  ( 2 , 25-c2 ); // constraint 2
-  
-  count_eval = true; // count a black-box evaluation
-  
-  return true;       // the evaluation succeeded
+    Double c1 = 0.0 , c2 = 0.0;
+    for ( int i = 0 ; i < 5 ; i++ )
+    {
+        
+        c1 += (x[i]-1).pow2();
+        c2 += (x[i]+1).pow2();
+    }
+    x.set_bb_output  ( 0 , x[4]  ); // objective value
+    x.set_bb_output  ( 1 , c1-25 ); // constraint 1
+    x.set_bb_output  ( 2 , 25-c2 ); // constraint 2
+    
+    count_eval = true; // count a black-box evaluation
+    
+    return true;       // the evaluation succeeded
 }
 
 /*----------------------------------------*/
 /*       updates at each iteration        */
 /*----------------------------------------*/
 void My_Evaluator::update_iteration ( success_type              success      ,
-				      const Stats             & stats        ,
-				      const Evaluator_Control & ev_control   ,
-				      const Barrier           & true_barrier ,
-				      const Barrier           & sgte_barrier ,
-				      const Pareto_Front      & pareto_front ,
-				      bool                    & stop           )
+                                     const Stats             & stats        ,
+                                     const Evaluator_Control & ev_control   ,
+                                     const Barrier           & true_barrier ,
+                                     const Barrier           & sgte_barrier ,
+                                     const Pareto_Front      & pareto_front ,
+                                     bool                    & stop           )
 {
     
-  if ( success == UNSUCCESSFUL )
-    stop = true;
+    if ( success == UNSUCCESSFUL )
+        stop = true;
 }
 
 /*------------------------------------------*/
@@ -74,112 +79,116 @@ void My_Evaluator::update_iteration ( success_type              success      ,
 /*------------------------------------------*/
 int main ( int argc , char ** argv )
 {
-  // display:
-  Display out ( std::cout );
-  out.precision ( DISPLAY_PRECISION_STD );
-
-  try {
-
-    // NOMAD initializations:
-    begin ( argc , argv );
-
-    // parameters creation:
-    Parameters p ( out );
-
-    p.set_DIMENSION (5);             // number of variables
-
-    vector<bb_output_type> bbot (3); // definition of
-    bbot[0] = OBJ;                   // output types
-    bbot[1] = EB;
-    bbot[2] = EB;
-    p.set_BB_OUTPUT_TYPE ( bbot );
-
-    p.set_DISPLAY_DEGREE ( 2 );
-
-    p.set_DISPLAY_STATS ( "bbe ( sol ) obj" );
-
-    p.set_X0 ( Point ( 5 , 0.0 ) );  // starting point
-
-    p.set_LOWER_BOUND ( Point ( 5 , -6.0 ) ); // all var. >= -6
-    Point ub ( 5 );                           // x_4 and x_5 have no bounds
-    ub[0] = 5.0;                              // x_1 <= 5
-    ub[1] = 6.0;                              // x_2 <= 6
-    ub[2] = 7.0;                              // x_3 <= 7
-    p.set_UPPER_BOUND ( ub );
-
-    p.set_MAX_BB_EVAL (100); // the algorithm terminates after
-                             // 100 black-box evaluations
-     
-
-      
-    // parameters validation:
-    p.check();
-      
-    OrthogonalMesh * oMesh=p.get_signature()->get_mesh();
-
-    // custom evaluator creation:
-    My_Evaluator ev ( p );
-
-    // best solutions:
-    const Point * bf = NULL , * bi = NULL;
-
-    // algorithm creation:
-    Mads mads ( p , &ev );
-
+    // display:
+    Display out ( std::cout );
+    out.precision ( DISPLAY_PRECISION_STD );
     
-    // successive runs:
-    for ( int i = 0 ; i < 5 ; ++i )
-    {
-
-      out << endl << open_block ( "MADS run #" + NOMAD::itos(i) );
-
-      // not for the first run:
-		if ( i > 0 ) 
-		{
-			
-			// new starting points:
-			p.reset_X0();
-			if ( bf )
-				p.set_X0 ( *bf );
-			if ( bi )
-				p.set_X0 ( *bi );
-			
-			if (!bf && !bi)
-				p.set_LH_SEARCH(1,0);  // at least one evaluation is conducted if point is bf and bi are null
-			else
-				p.set_LH_SEARCH(0,0);
-			
-            // Update the mesh for an unsuccessful iteration and put current
-            // mesh and poll sizes as initial mesh and poll sizes for the next start.
-            oMesh->update(UNSUCCESSFUL);
-            Point delta_0, Delta_0;
-            oMesh->get_delta(delta_0);
-            oMesh->set_delta_0(delta_0);
-            oMesh->get_Delta(Delta_0);
-            oMesh->set_Delta_0(Delta_0);
-
-            // parameters validation:
-			p.check();
-			
-			// reset the Mads object:
-			mads.reset ( true , true );
+    try {
+        
+        // NOMAD initializations:
+        begin ( argc , argv );
+        
+        // parameters creation:
+        Parameters p ( out );
+        
+        p.set_DIMENSION (5);             // number of variables
+        
+        vector<bb_output_type> bbot (3); // definition of
+        bbot[0] = OBJ;                   // output types
+        bbot[1] = EB;
+        bbot[2] = EB;
+        p.set_BB_OUTPUT_TYPE ( bbot );
+        
+        p.set_DISPLAY_DEGREE ( 2 );
+        
+        p.set_DISPLAY_STATS ( "bbe ( sol ) obj" );
+        
+        p.set_X0 ( Point ( 5 , 0.0 ) );  // starting point
+        
+        p.set_LOWER_BOUND ( Point ( 5 , -6.0 ) ); // all var. >= -6
+        Point ub ( 5 );                           // x_4 and x_5 have no bounds
+        ub[0] = 5.0;                              // x_1 <= 5
+        ub[1] = 6.0;                              // x_2 <= 6
+        ub[2] = 7.0;                              // x_3 <= 7
+        p.set_UPPER_BOUND ( ub );
+       
+
+ 
+        p.set_MAX_BB_EVAL (100); // the algorithm terminates after
+        // 100 black-box evaluations
+        
+        // p.set_DISABLE_MODELS();
+        
+        // parameters validation:
+        p.check();
+        
+        OrthogonalMesh * oMesh=p.get_signature()->get_mesh();
+        
+        // custom evaluator creation:
+        My_Evaluator ev ( p );
+        
+        // best solutions:
+        const Point * bf = NULL , * bi = NULL;
+        
+        // algorithm creation:
+        Mads mads ( p , &ev );
+        
+        
+        // successive runs:
+        for ( int i = 0 ; i < 6 ; ++i )
+        {
             
-		}
-
-      // the run:
-      mads.run();
-      bf = mads.get_best_feasible();
-      bi = mads.get_best_infeasible();
-
-      out.close_block();
+            out << endl << open_block ( "MADS run #" + NOMAD::itos(i) );
+            
+            // not for the first run:
+            if ( i > 0 )
+            {
+                
+                // new starting points:
+                p.reset_X0();
+                if ( bf )
+                    p.set_X0 ( *bf );
+                if ( bi )
+                    p.set_X0 ( *bi );
+                
+                if (!bf && !bi)
+                    p.set_LH_SEARCH(1,0);  // at least one evaluation is conducted if point is bf and bi are null
+                else
+                    p.set_LH_SEARCH(0,0);
+                
+                // Update the mesh for an unsuccessful iteration and put current
+                // mesh and poll sizes as initial mesh and poll sizes for the next start.
+                oMesh->update(UNSUCCESSFUL);
+                Point delta_0, Delta_0;
+                oMesh->get_delta(delta_0);
+                oMesh->set_delta_0(delta_0);
+                oMesh->get_Delta(Delta_0);
+                oMesh->set_Delta_0(Delta_0);
+                
+                // parameters validation:
+                p.check();
+                
+                // reset the Mads object:
+                mads.reset ( false , false );
+                
+            }
+            
+            // the run:
+            mads.run();
+            bf = mads.get_best_feasible();
+            bi = mads.get_best_infeasible();
+            
+            out.close_block();
+        }
     }
-  }
-  catch ( exception & e ) {
-    cerr << "\nNOMAD has been interrupted (" << e.what() << ")\n\n";
-  }
-
-  Slave::stop_slaves ( out );
-  end();
-
-  return EXIT_SUCCESS;
+    catch ( exception & e ) 
+    {
+        
+        cerr << "\nNOMAD has been interrupted (" << e.what() << ")\n\n";
+    }
+    
+    Slave::stop_slaves ( out );
+    end();
+    
+    return EXIT_SUCCESS;
 }
diff --git a/examples/advanced/user_search/makefile b/examples/advanced/user_search/makefile
index b84b77d..4632e59 100644
--- a/examples/advanced/user_search/makefile
+++ b/examples/advanced/user_search/makefile
@@ -1,25 +1,35 @@
-EXE                 = user_search.exe
+UNAME := $(shell uname)
+
+
+EXE                             = user_search.exe
 EXE_MPI				= user_search_MPI.exe
 
-COMPILATOR          = g++
-COMPILATOR_MPI = mpic++
-SUNAME = $(shell uname)
-OSS=$(findstring MINGW32,$(SUNAME)) 
-ifneq "$(strip $(OSS))" ""
-COMPILATOR_MPI = g++
+COMPILATOR                      = g++
+COMPILATOR_MPI                  = mpic++
+
+COMPILATOR_OPTIONS              = -O2 -ansi 
+COMPILATOR_OPTIONS_MPI          = $(COMPILATOR_OPTIONS) -DUSE_MPI
+
+LIB_DIR                         = $(NOMAD_HOME)/lib
+LIB_NOMAD                       = libnomad.so 
+LIB_NOMAD_MPI                   = libnomad.MPI.so
+
+CXXFLAGS                        =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS                       += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS                       += -ansi
 endif
+CXXFLAGS_MPI 	                = $(CXXFLAGS) -DUSE_MPI
+
+LDLIBS                          = -lm -lnomad
+LDLIBS_MPI                      = -lm -lmpi -lnomad.MPI
 
-COMPILATOR_OPTIONS  = -O2 -ansi 
-COMPILATOR_OPTIONS_MPI = $(COMPILATOR_OPTIONS) -DUSE_MPI
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-L1_MPI				= $(NOMAD_HOME)/lib/nomad.MPI.a
-LIBS                = $(L1) -lm
-LIBS_MPI			= $(L1_MPI) -lm -lmpi
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+INCLUDE                         = -I$(NOMAD_HOME)/src -I.
+COMPILE                         = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
 COMPILE_MPI			= $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
-OBJS                = user_search.o
-OBJS_MPI            = user_search_MPI.o
+
+OBJS                            = user_search.o
+OBJS_MPI                        = user_search_MPI.o
 
 
 ifndef NOMAD_HOME
@@ -30,19 +40,25 @@ endef
 endif
 
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
 	@echo "   building the scalar version ..."
 	@echo "   exe file : "$(EXE)
-	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip  $(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
+
 
-$(EXE_MPI): $(L1_MPI) $(OBJS_MPI) 
+$(EXE_MPI): $(OBJS_MPI) 
 	$(ECHO_NOMAD)
 	@echo "   building the MPI version ..."
 	@echo "   exe file : "$(EXE_MPI)
-	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LIBS_MPI) $(COMPILATOR_OPTIONS_MPI)
-	@strip  $(EXE_MPI)
+	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LDLIBS_MPI) $(CXXFLAGS_MPI) -L$(LIB_DIR)
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD_MPI) $(NOMAD_HOME)/lib/$(LIB_NOMAD_MPI) $(EXE_MPI)
+endif
+
 
 user_search.o: user_search.cpp
 	$(ECHO_NOMAD)
@@ -52,9 +68,6 @@ user_search_MPI.o: user_search.cpp
 	$(ECHO_NOMAD)
 	@$(COMPILE_MPI) user_search.cpp -o user_search_MPI.o
 
-$(L1) $(L1_MPI): ;
-	$(ECHO_NOMAD)
-
 mpi: $(EXE_MPI)
 
 all: $(EXE) $(EXE_MPI)
diff --git a/examples/basic/batch/bi_obj/runExample.log b/examples/basic/batch/bi_obj/runExample.log
index 76994f3..f85624f 100644
--- a/examples/basic/batch/bi_obj/runExample.log
+++ b/examples/basic/batch/bi_obj/runExample.log
@@ -1,17 +1,19 @@
 
-NOMAD - version 3.7.2 - www.gerad.ca/nomad
-
-Copyright (C) 2001-2015 {
-	Mark A. Abramson     - The Boeing Company
+NOMAD - version 3.7.3 has been created by {
 	Charles Audet        - Ecole Polytechnique de Montreal
-	Gilles Couture       - Ecole Polytechnique de Montreal
-	John E. Dennis, Jr.  - Rice University
 	Sebastien Le Digabel - Ecole Polytechnique de Montreal
 	Christophe Tribes    - Ecole Polytechnique de Montreal
 } 
 
-Funded in part by AFOSR and Exxon Mobil.
+The copyright of NOMAD - version 3.7.3 is owned by {
+	Sebastien Le Digabel - Ecole Polytechnique de Montreal
+	Christophe Tribes    - Ecole Polytechnique de Montreal
+} 
+
+NOMAD version 3 is a new version of Nomad v1 and v2, it has been funded by AFOSR and Exxon Mobil.
+Nomad v1 and v2 were created and developed by Mark A. Abramson from The Boeing Company, Charles Audet and Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from Rice University, and were funded by AFOSR and Exxon Mobil.
 
+Download  : www.gerad.ca/nomad
 License   : '$NOMAD_HOME/src/lgpl.txt'
 User guide: '$NOMAD_HOME/doc/user_guide.pdf'
 Examples  : '$NOMAD_HOME/examples'
@@ -21,21 +23,21 @@ Please report bugs to nomad@gerad.ca
 
 multi-MADS run {
 
-	MADS run  1 ...... OK [bb eval= 64] [overall bb eval=   64] [# dominant pts=  10] [# new pts=  10] [f1=0 f2=6.231313115]
-	MADS run  2 ...... OK [bb eval= 32] [overall bb eval=   96] [# dominant pts=  15] [# new pts=   5] [f1=0.8169729819 f2=-0.479260869]
-	MADS run  3 ...... OK [bb eval= 32] [overall bb eval=  128] [# dominant pts=  14] [# new pts=  -1] [f1=0 f2=1]
-	MADS run  4 ...... OK [bb eval= 32] [overall bb eval=  160] [# dominant pts=  25] [# new pts=  11] [f1=0.5612660076 f2=0.1239843648]
-	MADS run  5 ...... OK [bb eval= 32] [overall bb eval=  192] [# dominant pts=  33] [# new pts=   8] [f1=0.3137786342 f2=0.5879263396]
-	MADS run  6 ...... OK [bb eval= 32] [overall bb eval=  224] [# dominant pts=  47] [# new pts=  14] [f1=0.7805127885 f2=-0.1507861609]
-	MADS run  7 ...... OK [bb eval= 32] [overall bb eval=  256] [# dominant pts=  54] [# new pts=   7] [f1=0.5299157655 f2=0.357255587]
-	MADS run  8 ...... OK [bb eval= 32] [overall bb eval=  288] [# dominant pts=  66] [# new pts=  12] [f1=0.07954951288 f2=0.9213144638]
-	MADS run  9 ...... OK [bb eval= 32] [overall bb eval=  320] [# dominant pts=  76] [# new pts=  10] [f1=0.2748325185 f2=0.7638619206]
-	MADS run 10 ...... OK [bb eval= 32] [overall bb eval=  352] [# dominant pts=  85] [# new pts=   9] [f1=0.5181766881 f2=0.5029223883]
-	MADS run 11 ...... OK [bb eval= 32] [overall bb eval=  384] [# dominant pts=  89] [# new pts=   4] [f1=0.7680831771 f2=0.07286356753]
-	MADS run 12 ...... OK [bb eval= 32] [overall bb eval=  416] [# dominant pts=  99] [# new pts=  10] [f1=0.5151038119 f2=0.5437967797]
-	MADS run 13 ...... OK [bb eval= 32] [overall bb eval=  448] [# dominant pts= 111] [# new pts=  12] [f1=0.2592955042 f2=0.8727383732]
-	MADS run 14 ...... OK [bb eval= 32] [overall bb eval=  480] [# dominant pts= 117] [# new pts=   6] [f1=0.5684216658 f2=0.1147587127]
-	MADS run 15 ...... OK [bb eval= 20] [overall bb eval=  500] [# dominant pts= 120] [# new pts=   3] [f1=0.5684216658 f2=0.1147587127]
+	MADS run  1 ...... OK [bb eval= 64] [overall bb eval=   64] [# dominant pts=   6] [# new pts=   6] [f1=0 f2=6.231313115]
+	MADS run  2 ...... OK [bb eval= 32] [overall bb eval=   96] [# dominant pts=  10] [# new pts=   4] [f1=0.8147632732 f2=-0.4772846994]
+	MADS run  3 ...... OK [bb eval= 32] [overall bb eval=  128] [# dominant pts=  14] [# new pts=   4] [f1=0 f2=1]
+	MADS run  4 ...... OK [bb eval= 32] [overall bb eval=  160] [# dominant pts=  23] [# new pts=   9] [f1=0.3158760328 f2=0.5854826675]
+	MADS run  5 ...... OK [bb eval= 32] [overall bb eval=  192] [# dominant pts=  31] [# new pts=   8] [f1=0.563132696 f2=0.1198200644]
+	MADS run  6 ...... OK [bb eval= 32] [overall bb eval=  224] [# dominant pts=  48] [# new pts=  17] [f1=0.5283988375 f2=0.3748699372]
+	MADS run  7 ...... OK [bb eval= 32] [overall bb eval=  256] [# dominant pts=  66] [# new pts=  18] [f1=0.7870555978 f2=-0.2509912401]
+	MADS run  8 ...... OK [bb eval= 32] [overall bb eval=  288] [# dominant pts=  80] [# new pts=  14] [f1=0.268022029 f2=0.8108740924]
+	MADS run  9 ...... OK [bb eval= 32] [overall bb eval=  320] [# dominant pts=  91] [# new pts=  11] [f1=0.5153477455 f2=0.5405240953]
+	MADS run 10 ...... OK [bb eval= 32] [overall bb eval=  352] [# dominant pts=  95] [# new pts=   4] [f1=0.7680831771 f2=0.07286356753]
+	MADS run 11 ...... OK [bb eval= 32] [overall bb eval=  384] [# dominant pts= 102] [# new pts=   7] [f1=0.5137077274 f2=0.5626056928]
+	MADS run 12 ...... OK [bb eval= 32] [overall bb eval=  416] [# dominant pts= 108] [# new pts=   6] [f1=0.567828327 f2=0.1148265921]
+	MADS run 13 ...... OK [bb eval= 32] [overall bb eval=  448] [# dominant pts= 115] [# new pts=   7] [f1=0.5682426473 f2=0.1147658278]
+	MADS run 14 ...... OK [bb eval= 32] [overall bb eval=  480] [# dominant pts= 121] [# new pts=   6] [f1=0.5685361243 f2=0.1147602185]
+	MADS run 15 ...... OK [bb eval= 20] [overall bb eval=  500] [# dominant pts= 125] [# new pts=   4] [f1=0.5685361243 f2=0.1147602185]
 
 } end of run (max number of bb evaluations)
 
@@ -46,125 +48,130 @@ number of MADS runs                      : 15
 Pareto front {
 
 	BBE	(	0.0000000000 0.0000000000 )	0.0000000000 1.0000000000 
-	BBE	(	0.0027621359 0.0000000000 )	0.0027621359 0.9998007770 
 	BBE	(	0.0088388348 0.0000000000 )	0.0088388348 0.9979744889 
-	BBE	(	0.0132582521 0.0000000000 )	0.0132582521 0.9954876562 
-	BBE	(	0.0353553391 0.0000000000 )	0.0353553391 0.9713080680 
-	BBE	(	0.0441941738 0.0000000000 )	0.0441941738 0.9584480584 
-	BBE	(	0.0574524260 0.0000000000 )	0.0574524260 0.9397084727 
-	BBE	(	0.0618718434 0.0000000000 )	0.0618718434 0.9343077419 
+	BBE	(	0.0154679608 0.0000000000 )	0.0154679608 0.9938978580 
+	BBE	(	0.0176776695 0.0000000000 )	0.0176776695 0.9920893658 
+	BBE	(	0.0211561362 0.0000000000 )	0.0211561362 0.9888260567 
+	BBE	(	0.0530330086 0.0000000000 )	0.0530330086 0.9456485587 
 	BBE	(	0.0707106781 0.0000000000 )	0.0707106781 0.9257895286 
-	BBE	(	0.0729203868 0.0000000000 )	0.0729203868 0.9242486972 
-	BBE	(	0.0734728140 0.0000000000 )	0.0734728140 0.9239051795 
-	BBE	(	0.0765111634 0.0000000000 )	0.0765111634 0.9223298234 
-	BBE	(	0.0783065517 0.0000000000 )	0.0783065517 0.9216597507 
-	BBE	(	0.0795495129 0.0000000000 )	0.0795495129 0.9213144638 
-	BBE	(	0.0801709935 0.0000000000 )	0.0801709935 0.9211790945 
-	BBE	(	0.0804989971 0.0000000000 )	0.0804989971 0.9211178038 
-	BBE	(	0.0814830080 0.0000000000 )	0.0814830080 0.9209765043 
-	BBE	(	0.0839689303 0.0000000000 )	0.0839689303 0.9209099136 
-	BBE	(	0.2546689267 0.0000000000 )	0.2546689267 0.9053286734 
-	BBE	(	0.2554285140 0.0000000000 )	0.2554285140 0.9000152969 
-	BBE	(	0.2559809412 0.0000000000 )	0.2559809412 0.8961400979 
-	BBE	(	0.2592955042 0.0000000000 )	0.2592955042 0.8727383732 
-	BBE	(	0.2601241450 0.0002762136 )	0.2601241450 0.8698079048 
-	BBE	(	0.2624029071 0.0011048543 )	0.2624029071 0.8624679573 
-	BBE	(	0.2633006012 0.0008286408 )	0.2633006012 0.8531427520 
-	BBE	(	0.2634387080 0.0001898968 )	0.2634387080 0.8453357823 
-	BBE	(	0.2635077614 0.0000000000 )	0.2635077614 0.8428146572 
-	BBE	(	0.2643364022 0.0000000000 )	0.2643364022 0.8369299127 
-	BBE	(	0.2673747516 0.0000000000 )	0.2673747516 0.8154302217 
-	BBE	(	0.2679271788 0.0000000000 )	0.2679271788 0.8115410603 
-	BBE	(	0.2695844603 0.0000000000 )	0.2695844603 0.7999251464 
-	BBE	(	0.2740038777 0.0022097087 )	0.2740038777 0.7931862207 
-	BBE	(	0.2748325185 0.0000000000 )	0.2748325185 0.7638619206 
-	BBE	(	0.2762135864 0.0002762136 )	0.2762135864 0.7575848978 
-	BBE	(	0.2773184407 0.0000000000 )	0.2773184407 0.7473019205 
-	BBE	(	0.2828427125 0.0000000000 )	0.2828427125 0.7121565043 
-	BBE	(	0.2872621299 0.0000000000 )	0.2872621299 0.6860941024 
-	BBE	(	0.2900242657 0.0000000000 )	0.2900242657 0.6709156096 
-	BBE	(	0.2961009646 0.0000000000 )	0.2961009646 0.6410185691 
-	BBE	(	0.3005203820 0.0000000000 )	0.3005203820 0.6226855524 
-	BBE	(	0.3016252363 0.0000000000 )	0.3016252363 0.6185926969 
-	BBE	(	0.3088067896 0.0000000000 )	0.3088067896 0.5971609072 
-	BBE	(	0.3093592168 0.0000000000 )	0.3093592168 0.5959009619 
-	BBE	(	0.3137786342 0.0000000000 )	0.3137786342 0.5879263396 
-	BBE	(	0.3165407700 0.0000000000 )	0.3165407700 0.5848920973 
-	BBE	(	0.3167479302 0.0000000000 )	0.3167479302 0.5847262751 
-	BBE	(	0.3176456244 0.0000000000 )	0.3176456244 0.5841081818 
-	BBE	(	0.3181980515 0.0000000000 )	0.3181980515 0.5838092475 
-	BBE	(	0.3226174689 0.0000000000 )	0.3226174689 0.5836743517 
-	BBE	(	0.5127214698 0.0000000000 )	0.5127214698 0.5759653136 
-	BBE	(	0.5137572707 0.0002762136 )	0.5137572707 0.5654252540 
-	BBE	(	0.5140334843 0.0000000000 )	0.5140334843 0.5582055541 
-	BBE	(	0.5150347585 0.0000172633 )	0.5150347585 0.5449424207 
-	BBE	(	0.5151038119 0.0000000000 )	0.5151038119 0.5437967797 
-	BBE	(	0.5153886572 0.0000000000 )	0.5153886572 0.5399756398 
-	BBE	(	0.5165194066 0.0000000000 )	0.5165194066 0.5248681601 
-	BBE	(	0.5169337269 0.0000000000 )	0.5169337269 0.5193587219 
-	BBE	(	0.5173135206 0.0000000000 )	0.5173135206 0.5143215129 
-	BBE	(	0.5179004745 0.0002762136 )	0.5179004745 0.5100634344 
-	BBE	(	0.5181076347 0.0000690534 )	0.5181076347 0.5047074913 
-	BBE	(	0.5181766881 0.0000000000 )	0.5181766881 0.5029223883 
-	BBE	(	0.5183147949 0.0000000000 )	0.5183147949 0.5011051160 
-	BBE	(	0.5192124890 0.0000000000 )	0.5192124890 0.4893395607 
-	BBE	(	0.5203173434 0.0002762136 )	0.5203173434 0.4784843660 
-	BBE	(	0.5211459841 0.0010358009 )	0.5211459841 0.4774378717 
-	BBE	(	0.5214912511 0.0000000000 )	0.5214912511 0.4598694955 
-	BBE	(	0.5228723191 0.0000000000 )	0.5228723191 0.4423168011 
-	BBE	(	0.5261868821 0.0000000000 )	0.5261868821 0.4012836645 
-	BBE	(	0.5272917364 0.0000000000 )	0.5272917364 0.3879862090 
-	BBE	(	0.5292252315 0.0000000000 )	0.5292252315 0.3652213546 
-	BBE	(	0.5299157655 0.0000000000 )	0.5299157655 0.3572555870 
-	BBE	(	0.5303300859 0.0000000000 )	0.5303300859 0.3525194343 
-	BBE	(	0.5317111538 0.0000000000 )	0.5317111538 0.3369744453 
-	BBE	(	0.5350257169 0.0000000000 )	0.5350257169 0.3012827434 
-	BBE	(	0.5358543576 0.0000000000 )	0.5358543576 0.2927387374 
-	BBE	(	0.5361305712 0.0000000000 )	0.5361305712 0.2899259708 
-	BBE	(	0.5391689207 0.0000000000 )	0.5391689207 0.2601947270 
-	BBE	(	0.5480077554 0.0000000000 )	0.5480077554 0.1876299330 
-	BBE	(	0.5513223185 0.0000000000 )	0.5513223185 0.1663336683 
-	BBE	(	0.5535320271 0.0000000000 )	0.5535320271 0.1540707094 
-	BBE	(	0.5557417358 0.0000000000 )	0.5557417358 0.1434067848 
-	BBE	(	0.5568465902 0.0000000000 )	0.5568465902 0.1386867395 
-	BBE	(	0.5590562989 0.0000000000 )	0.5590562989 0.1304923502 
-	BBE	(	0.5604373668 0.0000000000 )	0.5604373668 0.1262254672 
-	BBE	(	0.5612660076 0.0000000000 )	0.5612660076 0.1239843648 
-	BBE	(	0.5620687533 0.0000000000 )	0.5620687533 0.1220429764 
-	BBE	(	0.5640022484 0.0000000000 )	0.5640022484 0.1183011565 
-	BBE	(	0.5645805706 0.0000000000 )	0.5645805706 0.1174398964 
-	BBE	(	0.5652020512 0.0000000000 )	0.5652020512 0.1166473780 
-	BBE	(	0.5654092114 0.0000000000 )	0.5654092114 0.1164138826 
-	BBE	(	0.5656854249 0.0000000000 )	0.5656854249 0.1161264470 
-	BBE	(	0.5659616385 0.0000000000 )	0.5659616385 0.1158663392 
-	BBE	(	0.5666866992 0.0000000000 )	0.5666866992 0.1153137493 
-	BBE	(	0.5669024911 0.0000000000 )	0.5669024911 0.1151857400 
-	BBE	(	0.5674462866 0.0000000000 )	0.5674462866 0.1149374124 
-	BBE	(	0.5684216658 0.0000000000 )	0.5684216658 0.1147587127 
+	BBE	(	0.2562138982 0.0000000000 )	0.2562138982 0.8945033812 
+	BBE	(	0.2608404757 0.0000000000 )	0.2608404758 0.8617719752 
+	BBE	(	0.2619453301 0.0000000000 )	0.2619453301 0.8539197314 
+	BBE	(	0.2622905971 0.0000000000 )	0.2622905971 0.8514653467 
+	BBE	(	0.2651217863 0.0003064244 )	0.2651217863 0.8346375232 
+	BBE	(	0.2655361067 0.0000000000 )	0.2655361067 0.8284226452 
+	BBE	(	0.2680220290 0.0000000000 )	0.2680220290 0.8108740924 
+	BBE	(	0.2686435096 0.0000000000 )	0.2686435096 0.8065101303 
+	BBE	(	0.2691268833 0.0000000000 )	0.2691268833 0.8031238337 
+	BBE	(	0.2696793105 0.0000000000 )	0.2696793105 0.7992629776 
+	BBE	(	0.2710603784 0.0003193720 )	0.2710603784 0.7930864044 
+	BBE	(	0.2727867134 0.0000000000 )	0.2727867134 0.7777651163 
+	BBE	(	0.2741677813 0.0000000000 )	0.2741677813 0.7683544484 
+	BBE	(	0.2749964221 0.0002762136 )	0.2749964221 0.7657285747 
+	BBE	(	0.2754797958 0.0000000000 )	0.2754797958 0.7595122877 
+	BBE	(	0.2819017617 0.0000000000 )	0.2819017617 0.7179584250 
+	BBE	(	0.2995794312 0.0000000000 )	0.2995794312 0.6263296155 
+	BBE	(	0.3039988486 0.0000000000 )	0.3039988486 0.6104981808 
+	BBE	(	0.3059323437 0.0000000000 )	0.3059323437 0.6046312984 
+	BBE	(	0.3062085573 0.0000000000 )	0.3062085573 0.6038477544 
+	BBE	(	0.3117328290 0.0000000000 )	0.3117328290 0.5911477575 
+	BBE	(	0.3158760328 0.0000000000 )	0.3158760328 0.5854826675 
+	BBE	(	0.3172571008 0.0000000000 )	0.3172571008 0.5843556236 
+	BBE	(	0.3202954502 0.0000000000 )	0.3202954502 0.5832430145 
+	BBE	(	0.5134487771 0.0000000000 )	0.5134487771 0.5661080224 
+	BBE	(	0.5137077274 0.0000000000 )	0.5137077274 0.5626056928 
+	BBE	(	0.5137940441 0.0000000000 )	0.5137940441 0.5614391407 
+	BBE	(	0.5150715320 0.0000000000 )	0.5150715320 0.5442301804 
+	BBE	(	0.5152786921 0.0000000000 )	0.5152786921 0.5414500948 
+	BBE	(	0.5153477455 0.0000000000 )	0.5153477455 0.5405240953 
+	BBE	(	0.5158224876 0.0003107403 )	0.5158224876 0.5380991695 
+	BBE	(	0.5160987012 0.0005481113 )	0.5160987012 0.5374102768 
+	BBE	(	0.5162799664 0.0000000000 )	0.5162799664 0.5280587044 
+	BBE	(	0.5168841836 0.0000000000 )	0.5168841836 0.5200167511 
+	BBE	(	0.5181098814 0.0000000000 )	0.5181098814 0.5038021282 
+	BBE	(	0.5186623086 0.0000000000 )	0.5186623086 0.4965407236 
+	BBE	(	0.5192147358 0.0000000000 )	0.5192147358 0.4893102188 
+	BBE	(	0.5193183158 0.0000000000 )	0.5193183158 0.4879580513 
+	BBE	(	0.5217006580 0.0000000000 )	0.5217006580 0.4571922658 
+	BBE	(	0.5220804517 0.0000000000 )	0.5220804517 0.4523508179 
+	BBE	(	0.5228055124 0.0000000000 )	0.5228055124 0.4431601076 
+	BBE	(	0.5250152211 0.0000000000 )	0.5250152211 0.4156003506 
+	BBE	(	0.5252914347 0.0000000000 )	0.5252914347 0.4122059478 
+	BBE	(	0.5263962890 0.0000000000 )	0.5263962890 0.3987478889 
+	BBE	(	0.5283988375 0.0000000000 )	0.5283988375 0.3748699372 
+	BBE	(	0.5302632792 0.0000000000 )	0.5302632792 0.3532808843 
+	BBE	(	0.5303323326 0.0000000000 )	0.5303323326 0.3524938416 
+	BBE	(	0.5313681336 0.0007595874 )	0.5313681336 0.3505244083 
+	BBE	(	0.5317134005 0.0002373711 )	0.5317134005 0.3399926818 
+	BBE	(	0.5319205607 0.0000000000 )	0.5319205607 0.3346507552 
+	BBE	(	0.5328873083 0.0000000000 )	0.5328873083 0.3240405720 
+	BBE	(	0.5335087888 0.0002287394 )	0.5335087888 0.3202607108 
+	BBE	(	0.5338540558 0.0000000000 )	0.5338540558 0.3136280970 
+	BBE	(	0.5357875509 0.0000000000 )	0.5357875509 0.2934217157 
+	BBE	(	0.5363399781 0.0000000000 )	0.5363399781 0.2878054090 
+	BBE	(	0.5403105484 0.0000000000 )	0.5403105484 0.2496195163 
+	BBE	(	0.5407593955 0.0000000000 )	0.5407593955 0.2455543650 
+	BBE	(	0.5413118227 0.0000000000 )	0.5413118227 0.2406240954 
+	BBE	(	0.5418642498 0.0000000000 )	0.5418642498 0.2357753238 
+	BBE	(	0.5420196200 0.0000000000 )	0.5420196200 0.2344264287 
+	BBE	(	0.5440739585 0.0005524272 )	0.5440739585 0.2243656329 
+	BBE	(	0.5457312400 0.0000000000 )	0.5457312400 0.2041983052 
+	BBE	(	0.5461455604 0.0000000000 )	0.5461455604 0.2010684705 
+	BBE	(	0.5473885216 0.0000000000 )	0.5473885216 0.1919834017 
+	BBE	(	0.5479409487 0.0000000000 )	0.5479409487 0.1880940310 
+	BBE	(	0.5490458031 0.0000000000 )	0.5490458031 0.1805936986 
+	BBE	(	0.5491493832 0.0000000000 )	0.5491493832 0.1799097506 
+	BBE	(	0.5495982303 0.0000000000 )	0.5495982303 0.1769843488 
+	BBE	(	0.5501506574 0.0000000000 )	0.5501506574 0.1734699226 
+	BBE	(	0.5508584547 0.0000000000 )	0.5508584547 0.1691070049 
+	BBE	(	0.5540176476 0.0000000000 )	0.5540176476 0.1515886169 
+	BBE	(	0.5545700748 0.0000000000 )	0.5545700748 0.1488595298 
+	BBE	(	0.5549843952 0.0000000000 )	0.5549843952 0.1468790527 
+	BBE	(	0.5551225020 0.0000000000 )	0.5551225020 0.1462315798 
+	BBE	(	0.5573322107 0.0000000000 )	0.5573322107 0.1367428101 
+	BBE	(	0.5584370650 0.0000000000 )	0.5584370650 0.1326198627 
+	BBE	(	0.5600943465 0.0000000000 )	0.5600943465 0.1272233749 
+	BBE	(	0.5611992009 0.0000000000 )	0.5611992009 0.1241561368 
+	BBE	(	0.5627183756 0.0000000000 )	0.5627183756 0.1206381293 
+	BBE	(	0.5631326960 0.0000000000 )	0.5631326960 0.1198200644 
+	BBE	(	0.5641167069 0.0000000000 )	0.5641167069 0.1181212433 
+	BBE	(	0.5645137639 0.0000000000 )	0.5645137639 0.1175332972 
+	BBE	(	0.5649453477 0.0000000000 )	0.5649453477 0.1169580043 
+	BBE	(	0.5650661911 0.0000000000 )	0.5650661911 0.1168088425 
+	BBE	(	0.5658948319 0.0000000000 )	0.5658948319 0.1159267436 
+	BBE	(	0.5667234726 0.0000000000 )	0.5667234726 0.1152907523 
+	BBE	(	0.5668615794 0.0000000000 )	0.5668615794 0.1152087235 
+	BBE	(	0.5674140066 0.0000000000 )	0.5674140066 0.1149491832 
+	BBE	(	0.5678283270 0.0000000000 )	0.5678283270 0.1148265921 
+	BBE	(	0.5682426473 0.0000000000 )	0.5682426473 0.1147658278 
+	BBE	(	0.5685361243 0.0000000000 )	0.5685361243 0.1147602185 
 	BBE	(	0.7661496820 0.0000000000 )	0.7661496820 0.1105136967 
-	BBE	(	0.7669783228 0.0000000000 )	0.7669783228 0.0943075051 
 	BBE	(	0.7680831771 0.0000000000 )	0.7680831771 0.0728635675 
+	BBE	(	0.7689118179 0.0000000000 )	0.7689118179 0.0569125770 
 	BBE	(	0.7691880314 0.0000000000 )	0.7691880314 0.0516220389 
-	BBE	(	0.7694642450 0.0000000000 )	0.7694642450 0.0463451418 
-	BBE	(	0.7704309926 0.0007941141 )	0.7704309926 0.0406045540 
+	BBE	(	0.7699476188 0.0003841095 )	0.7699476188 0.0432535935 
 	BBE	(	0.7705690994 0.0000000000 )	0.7705690994 0.0253788803 
-	BBE	(	0.7738836624 0.0000000000 )	0.7738836624 -0.0360307769 
-	BBE	(	0.7741598760 0.0000000000 )	0.7741598760 -0.0410385581 
-	BBE	(	0.7758171575 0.0000000000 )	0.7758171575 -0.0706993622 
-	BBE	(	0.7760933711 0.0000000000 )	0.7760933711 -0.0755763386 
-	BBE	(	0.7766457983 0.0000000000 )	0.7766457983 -0.0852712175 
-	BBE	(	0.7771982255 0.0000000000 )	0.7771982255 -0.0948858036 
-	BBE	(	0.7805127885 0.0000000000 )	0.7805127885 -0.1507861609 
-	BBE	(	0.7816176428 0.0004488471 )	0.7816176428 -0.1614780263 
-	BBE	(	0.7849322059 0.0000000000 )	0.7849322059 -0.2200658533 
-	BBE	(	0.7854846330 0.0000000000 )	0.7854846330 -0.2282658189 
+	BBE	(	0.7716739537 0.0000000000 )	0.7716739537 0.0046504791 
+	BBE	(	0.7741598760 0.0002589502 )	0.7741598760 -0.0369011145 
+	BBE	(	0.7783030798 0.0000000000 )	0.7783030798 -0.1138668264 
+	BBE	(	0.7834820845 0.0000000000 )	0.7834820845 -0.1980406893 
+	BBE	(	0.7841553552 0.0000000000 )	0.7841553552 -0.2083556587 
+	BBE	(	0.7854673697 0.0005437955 )	0.7854673697 -0.2192363858 
+	BBE	(	0.7858126367 0.0007250607 )	0.7858126367 -0.2213881058 
+	BBE	(	0.7863650638 0.0007034815 )	0.7863650638 -0.2297569563 
+	BBE	(	0.7864772756 0.0004822948 )	0.7864772756 -0.2349368931 
+	BBE	(	0.7867103308 0.0000000000 )	0.7867103308 -0.2460730547 
+	BBE	(	0.7870555978 0.0000000000 )	0.7870555978 -0.2509912401 
+	BBE	(	0.7875864458 0.0002859242 )	0.7875864458 -0.2538397470 
 	BBE	(	0.7882467689 0.0000000000 )	0.7882467689 -0.2676209257 
-	BBE	(	0.7937710406 0.0000000000 )	0.7937710406 -0.3375181059 
-	BBE	(	0.7948758950 0.0000000000 )	0.7948758950 -0.3499937714 
-	BBE	(	0.7970856037 0.0000000000 )	0.7970856037 -0.3733607572 
+	BBE	(	0.7882985590 0.0000000000 )	0.7882985590 -0.2683319140 
+	BBE	(	0.7895587834 0.0000000000 )	0.7895587834 -0.2853173321 
+	BBE	(	0.7904564776 0.0000000000 )	0.7904564776 -0.2970410590 
+	BBE	(	0.7926661863 0.0000000000 )	0.7926661863 -0.3245272558 
+	BBE	(	0.7981904580 0.0000000000 )	0.7981904580 -0.3842336561 
 	BBE	(	0.8059244384 0.0000000000 )	0.8059244384 -0.4444581650 
-	BBE	(	0.8103438558 0.0000000000 )	0.8103438558 -0.4658115097 
-	BBE	(	0.8169729819 0.0000000000 )	0.8169729819 -0.4792608690 
+	BBE	(	0.8147632732 0.0000000000 )	0.8147632732 -0.4772846994 
+	BBE	(	0.8191826906 0.0000000000 )	0.8191826906 -0.4787160837 
 } 
 
-number of Pareto points: 120
+number of Pareto points: 125
diff --git a/examples/basic/batch/single_obj/runExample.log b/examples/basic/batch/single_obj/runExample.log
index 129534c..9311a4b 100644
--- a/examples/basic/batch/single_obj/runExample.log
+++ b/examples/basic/batch/single_obj/runExample.log
@@ -1,17 +1,19 @@
 
-NOMAD - version 3.7.2 - www.gerad.ca/nomad
-
-Copyright (C) 2001-2015 {
-	Mark A. Abramson     - The Boeing Company
+NOMAD - version 3.7.3 has been created by {
 	Charles Audet        - Ecole Polytechnique de Montreal
-	Gilles Couture       - Ecole Polytechnique de Montreal
-	John E. Dennis, Jr.  - Rice University
 	Sebastien Le Digabel - Ecole Polytechnique de Montreal
 	Christophe Tribes    - Ecole Polytechnique de Montreal
 } 
 
-Funded in part by AFOSR and Exxon Mobil.
+The copyright of NOMAD - version 3.7.3 is owned by {
+	Sebastien Le Digabel - Ecole Polytechnique de Montreal
+	Christophe Tribes    - Ecole Polytechnique de Montreal
+} 
+
+NOMAD version 3 is a new version of Nomad v1 and v2, it has been funded by AFOSR and Exxon Mobil.
+Nomad v1 and v2 were created and developed by Mark A. Abramson from The Boeing Company, Charles Audet and Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from Rice University, and were funded by AFOSR and Exxon Mobil.
 
+Download  : www.gerad.ca/nomad
 License   : '$NOMAD_HOME/src/lgpl.txt'
 User guide: '$NOMAD_HOME/doc/user_guide.pdf'
 Examples  : '$NOMAD_HOME/examples'
@@ -28,16 +30,12 @@ MADS run {
 	  3	(	0.0000000000 2.1466252584 2.3255106966 -1.0733126292 1.0733126292 )	1.0733100000
 	 10	(	0.4919349550 2.8174456516 2.1801662781 -0.8720665112 1.0062305899 )	1.0062300000
 	 11	(	1.9677398202 4.8299068314 1.7441330224 -0.2683281573 0.8049844719 )	0.8049840000
-	 13	(	0.0000000000 1.6099689438 2.9068883707 -0.8049844719 0.5366563146 )	0.5366560000
-	 17	(	3.5241951349 1.7067494832 0.5813776741 -0.5366563146 0.2683281573 )	0.2683280000
-	 28	(	2.0483902697 -2.5865010336 3.4882660449 1.8782971011 0.0000000000 )	0.0000000000
-	 67	(	2.0483902697 1.7067494832 2.3255106966 -0.5366563146 -2.4149534157 )	-2.4149500000
-	 86	(	3.0322601798 0.6334368540 0.0000000000 2.6832815730 -2.9516097303 )	-2.9516100000
-	 96	(	1.5564553147 1.7067494832 -0.5813776741 1.6099689438 -3.4882660449 )	-3.4882700000
-	100	(	1.5564553147 1.7067494832 -0.5813776741 1.6099689438 -3.4882660449 )	-3.4882700000
+	 19	(	0.9838699101 1.0733126292 1.7441330224 1.0733126292 -3.4882660449 )	-3.4882700000
+	 31	(	1.9677398202 0.5366563146 1.7441330224 0.2683281573 -3.7565942022 )	-3.7565900000
+	100	(	1.9677398202 0.5366563146 1.7441330224 0.2683281573 -3.7565942022 )	-3.7565900000
 
 } end of run (max number of blackbox evaluations)
 
 blackbox evaluations                     : 100
-best infeasible solution (min. violation): ( -0.9032194606 -0.4398757752 4.069643719 -0.2683281573 -1.878297101 ) h=0.0114496 f=-1.8783
-best feasible solution                   : ( 1.556455315 1.706749483 -0.5813776741 1.609968944 -3.488266045 ) h=0 f=-3.48827
+best infeasible solution (min. violation): ( 0.9838699101 1.073312629 1.162755348 1.073312629 -4.024922359 ) h=0.287344 f=-4.02492
+best feasible solution                   : ( 1.96773982 0.5366563146 1.744133022 0.2683281573 -3.756594202 ) h=0 f=-3.75659
diff --git a/examples/basic/batch/single_obj_parallel/bb_parallel.cpp b/examples/basic/batch/single_obj_parallel/bb_parallel.cpp
index c17a350..71aba0e 100644
--- a/examples/basic/batch/single_obj_parallel/bb_parallel.cpp
+++ b/examples/basic/batch/single_obj_parallel/bb_parallel.cpp
@@ -8,106 +8,117 @@
 
 using namespace std;
 
-// Number of threads to be used in parallel 
-#define NUM_THREADS    4 
+// Number of threads to be used in parallel
+#define NUM_THREADS    4
+
+// A semaphore to manage the threads
+sem_t mySemaphore;
 
 static void * eval_x ( void * dummy_eval_arg   )
 {
-	
-	double c1 = 0.0 , c2 = 0.0 ,f;
-	double * x = static_cast<double *>(dummy_eval_arg);
-	for ( int i = 0 ; i < 5 ; i++) 
-	{
-	    c1 += pow ( x[i]-1 , 2 );
-    	c2 += pow ( x[i]+1 , 2 );
+    
+    double c1 = 0.0 , c2 = 0.0 ,f;
+    double * x = static_cast<double *>(dummy_eval_arg);
+    for ( int i = 0 ; i < 5 ; i++)
+    {
+        c1 += pow ( x[i]-1 , 2 );
+        c2 += pow ( x[i]+1 , 2 );
     }
     x[5]= x[4];
     x[6] = c1 - 25;
     x[7] = 25 - c2;
-		
-	// cout << x[0] << " " << x[1] <<" " <<  x[2] <<" "<< x[3] <<" "<< x[4] << " " << x[5] << " " << x[6] << " " << x[7] << endl; 	
-		
-	pthread_exit(NULL);
-		
+    
+    // cout << x[0] << " " << x[1] <<" " <<  x[2] <<" "<< x[3] <<" "<< x[4] << " " << x[5] << " " << x[6] << " " << x[7] << endl;
+    
+    pthread_exit(NULL);
+    
+    // Increase the semaphore --->  a new thread can be launched
+    sem_post(&mySemaphore);
+    
 }
 
 
 
 int main ( int argc , char ** argv )
- {
-
-  double f = 1e20, c1 = 1e20 , c2 = 1e20;
-  std::vector< double * > X;
-
-  if ( argc >= 2 )
-  {
+{
     
-    ifstream in ( argv[1] );
-        
-    while( ! in.eof() )
+    double f = 1e20, c1 = 1e20 , c2 = 1e20;
+    std::vector< double * > X;
+    
+    if ( argc >= 2 )
     {
-    	double *x = new double [8];
-    	for ( int i = 0 ; i < 5 ; i++ ) 
-    	      in >> x[i];
+        
+        ifstream in ( argv[1] );
+        
+        while( ! in.eof() )
+        {
+            double *x = new double [8];
+            for ( int i = 0 ; i < 5 ; i++ )
+            in >> x[i];
+            
+            X.push_back(x);
+            
+            //char c;
+            // in >> c;
+            
+            // cout << x[0] << " " << x[1] <<endl;
+            
+        }
+        in.close();
+        X.pop_back();
+        
+        int nb_pts=X.size();
+        
+        // All threads are created
+        pthread_t threads[nb_pts];
+        
+        // Initialize the semaphore with the number of threads available
+        sem_init(&mySemaphore,0,NUM_THREADS);
+        
+        // Another way to use semaphore
+        //  sem_t * mySemaphore;
+        //  mySemaphore=sem_open("sem",0,NUM_THREADS);
+        
+        
+        // The list of points is evaluated under the control of a semaphore
+        int i=0;
+        for (std::vector< double * >::iterator it_x=X.begin(); it_x!=X.end(); ++it_x,++i)
+        {
+            //		cout << (*it_x)[0] << " " << (*it_x)[1] << " " << (*it_x)[2] << endl;
+            int rc=pthread_create(&threads[i], NULL, eval_x,(*it_x));
+            if (rc)
+            {
+                cout << "Error:unable to create thread," << rc << endl;
+                return false;
+            }
+            // wait until value of semaphore is greater than 0
+            // and decrement the value of semaphore by 1
+            sem_wait(&mySemaphore);
+            
+        }
+        
+        int ret;
+        
+        // cout << nb_pts << endl;
+        for (i=0; i<nb_pts; ++i)
+        {
+            // Wait for all the threads to finish
+            ret=pthread_join(threads[i],0);
+            if (ret!=0)
+            {
+                perror("pthread join has failed");
+                return false;
+            }
+            cout << (X[i])[5]  << " " << (X[i])[6] << " " << (X[i])[7] << endl;
+            delete [](X[i]);
+        }
+        // Unlink semaphore if the "other" way is used
+        // sem_unlink("sem");
+        
+        sem_destroy(&mySemaphore);
+        
+    } 
+    
+    return 0;
     
-  		X.push_back(x);
-  		
-  		//char c;
-  		// in >> c;
-  		
-  		// cout << x[0] << " " << x[1] <<endl;
-   
-  	}
-  	in.close();
-	X.pop_back();
-
-	int nb_pts=X.size();
-	  	
-  	// All threads are created
-	pthread_t threads[nb_pts];
-		
-	// The semaphore will allow to run NUM_THREADS in parallel
-	sem_t *mySemaphore;
-	mySemaphore=sem_open("sem",0,NUM_THREADS);
-
-	// The list of points is evaluated under the control of a semaphore
-	int i=0;
-	for (std::vector< double * >::iterator it_x=X.begin(); it_x!=X.end(); ++it_x,++i)
-	{
-		// cout << (*it_x)[0] << " " << (*it_x)[1] << " " << (*it_x)[2] << endl;
-		int rc=pthread_create(&threads[i], NULL, eval_x,(*it_x));
-		if (rc)
-		{
-			cout << "Error:unable to create thread," << rc << endl;
-			return false;
-		}
-		// wait until value of semaphore is greater than 0
-		// decrement the value of semaphore by 1
-		sem_wait(mySemaphore);
-			
-	}
-	
-	int ret;
-	
-	// cout << nb_pts << endl;
-	for (i=0; i<nb_pts; ++i)
-	{
-		// Wait for all the threads to finish
-		ret=pthread_join(threads[i],0);
-		if (ret!=0)
-		{
-			perror("pthread join has failed");
-			return false;
-		}
-		cout << (X[i])[5]  << " " << (X[i])[6] << " " << (X[i])[7] << endl;
-		delete [](X[i]);
-	}
-		
-	sem_unlink("sem");
-
-  	
-  } 
-   	      
-	return 0;
-
 }	
diff --git a/examples/basic/batch/single_obj_parallel/param.txt b/examples/basic/batch/single_obj_parallel/param.txt
index bd84342..237325e 100644
--- a/examples/basic/batch/single_obj_parallel/param.txt
+++ b/examples/basic/batch/single_obj_parallel/param.txt
@@ -2,6 +2,7 @@ DIMENSION      5              # number of variables
 
 BB_EXE         "$perl parallel_BBWrapper.pl"
 # BB_EXE bb_parallel.exe
+
 BB_MAX_BLOCK_SIZE 2 
 
 BB_OUTPUT_TYPE OBJ PB EB  
diff --git a/examples/basic/batch/single_obj_parallel/runExample.log b/examples/basic/batch/single_obj_parallel/runExample.log
index 2cad690..fb033a1 100644
--- a/examples/basic/batch/single_obj_parallel/runExample.log
+++ b/examples/basic/batch/single_obj_parallel/runExample.log
@@ -2,19 +2,21 @@ Warning: {
 	The maximum number of evaluations may be exceeded when BB_MAX_BLOCK_SIZE>1.
 } 
 
-NOMAD - version 3.7.2 - www.gerad.ca/nomad
-
-Copyright (C) 2001-2015 {
-	Mark A. Abramson     - The Boeing Company
+NOMAD - version 3.7.3 has been created by {
 	Charles Audet        - Ecole Polytechnique de Montreal
-	Gilles Couture       - Ecole Polytechnique de Montreal
-	John E. Dennis, Jr.  - Rice University
 	Sebastien Le Digabel - Ecole Polytechnique de Montreal
 	Christophe Tribes    - Ecole Polytechnique de Montreal
 } 
 
-Funded in part by AFOSR and Exxon Mobil.
+The copyright of NOMAD - version 3.7.3 is owned by {
+	Sebastien Le Digabel - Ecole Polytechnique de Montreal
+	Christophe Tribes    - Ecole Polytechnique de Montreal
+} 
+
+NOMAD version 3 is a new version of Nomad v1 and v2, it has been funded by AFOSR and Exxon Mobil.
+Nomad v1 and v2 were created and developed by Mark A. Abramson from The Boeing Company, Charles Audet and Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from Rice University, and were funded by AFOSR and Exxon Mobil.
 
+Download  : www.gerad.ca/nomad
 License   : '$NOMAD_HOME/src/lgpl.txt'
 User guide: '$NOMAD_HOME/doc/user_guide.pdf'
 Examples  : '$NOMAD_HOME/examples'
@@ -31,13 +33,13 @@ MADS run {
 	  4	0.0000000000 (PhaseOne)
 	  4	-1.0733100000
 	 10	-1.6099700000
-	 23	-2.4149500000
-	 26	-3.4882700000
-	 48	-3.7565900000
-	101	-3.7565900000
+	 15	-3.4882700000
+	 45	-3.7565900000
+	 79	-3.9578400000
+	100	-3.9578400000
 
 } end of run (max number of blackbox evaluations)
 
-blackbox evaluations                     : 101
-best infeasible solution (min. violation): ( 1.106853649 0.9391485505 1.01741093 1.00623059 -4.024922359 ) h=0.265307 f=-4.02492
-best feasible solution                   : ( 0.9838699101 0.5366563146 1.744133022 1.341640786 -3.756594202 ) h=0 f=-3.75659
+blackbox evaluations                     : 100
+best infeasible solution (min. violation): ( 0.9838699101 1.609968944 1.01741093 0.5366563146 -3.95784032 ) h=0.167493 f=-3.95784
+best feasible solution                   : ( 0.9531239754 1.475804865 0.9447387205 0.6037383539 -3.95784032 ) h=0 f=-3.95784
diff --git a/examples/basic/library/bi_obj/makefile b/examples/basic/library/bi_obj/makefile
index 582714a..8a2cbcb 100644
--- a/examples/basic/library/bi_obj/makefile
+++ b/examples/basic/library/bi_obj/makefile
@@ -1,25 +1,37 @@
-EXE                 = basic_lib.exe
-EXE_MPI				= basic_lib_MPI.exe
-
-COMPILATOR          = g++
-COMPILATOR_MPI = mpic++
-SUNAME = $(shell uname)
-OSS=$(findstring MINGW32,$(SUNAME)) 
-ifneq "$(strip $(OSS))" ""
-COMPILATOR_MPI = g++
-endif
+UNAME := $(shell uname)
+
+EXE                    = basic_lib.exe
+EXE_MPI	               = basic_lib_MPI.exe
 
-COMPILATOR_OPTIONS  = -O2 -ansi 
+COMPILATOR             = g++
+COMPILATOR_MPI         = mpic++
+
+COMPILATOR_OPTIONS     = -O2 -ansi 
 COMPILATOR_OPTIONS_MPI = $(COMPILATOR_OPTIONS) -DUSE_MPI
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-L1_MPI				= $(NOMAD_HOME)/lib/nomad.MPI.a
-LIBS                = $(L1) -lm
-LIBS_MPI			= $(L1_MPI) -lm -lmpi
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-COMPILE_MPI			= $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
-OBJS                = basic_lib.o
-OBJS_MPI            = basic_lib_MPI.o
+
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+LIB_NOMAD_MPI          = libnomad.MPI.so
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+CXXFLAGS_MPI 	       = $(CXXFLAGS) -DUSE_MPI
+
+
+LDLIBS                 = -lm -lnomad
+LDLIBS_MPI             = -lm -lmpi -lnomad.MPI
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+COMPILE_MPI            = $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
+
+OBJS                   = basic_lib.o
+OBJS_MPI               = basic_lib_MPI.o
 
 
 ifndef NOMAD_HOME
@@ -30,19 +42,23 @@ endef
 endif
 
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
 	@echo "   building the scalar version ..."
 	@echo "   exe file : "$(EXE)
-	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip  $(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
-$(EXE_MPI): $(L1_MPI) $(OBJS_MPI) 
+$(EXE_MPI): $(OBJS_MPI) 
 	$(ECHO_NOMAD)
 	@echo "   building the MPI version ..."
 	@echo "   exe file : "$(EXE_MPI)
-	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LIBS_MPI) $(COMPILATOR_OPTIONS_MPI)
-	@strip  $(EXE_MPI)
+	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LDLIBS_MPI) $(CXXFLAGS_MPI) -L$(LIB_DIR)
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD_MPI) $(NOMAD_HOME)/lib/$(LIB_NOMAD_MPI) $(EXE_MPI)
+endif
 
 basic_lib.o: basic_lib.cpp
 	$(ECHO_NOMAD)
@@ -52,8 +68,6 @@ basic_lib_MPI.o: basic_lib.cpp
 	$(ECHO_NOMAD)
 	@$(COMPILE_MPI) basic_lib.cpp -o basic_lib_MPI.o
 
-$(L1) $(L1_MPI): ;
-	$(ECHO_NOMAD)
 
 mpi: $(EXE_MPI)
 
diff --git a/examples/basic/library/bi_obj/runExample.log b/examples/basic/library/bi_obj/runExample.log
index 368fa2e..a35b120 100644
--- a/examples/basic/library/bi_obj/runExample.log
+++ b/examples/basic/library/bi_obj/runExample.log
@@ -2,9 +2,9 @@
 multi-MADS run {
 
 	MADS run  1 ...... OK [bb eval= 46] [overall bb eval=   46] [# dominant pts=   3] [# new pts=   3] [f1=-6 f2=152.5555363]
-	MADS run  2 ...... OK [bb eval= 23] [overall bb eval=   69] [# dominant pts=   6] [# new pts=   3] [f1=-1.170093169 f2=-7.948136425]
-	MADS run  3 ...... OK [bb eval= 23] [overall bb eval=   92] [# dominant pts=   8] [# new pts=   2] [f1=-6 f2=27.18734544]
-	MADS run  4 ...... OK [bb eval=  8] [overall bb eval=  100] [# dominant pts=   9] [# new pts=   1] [f1=-4.390031056 f2=12.07995483]
+	MADS run  2 ...... OK [bb eval= 23] [overall bb eval=   69] [# dominant pts=   5] [# new pts=   2] [f1=-0.5603796086 f2=-9.723737785]
+	MADS run  3 ...... OK [bb eval= 23] [overall bb eval=   92] [# dominant pts=   8] [# new pts=   3] [f1=-5.121958283 f2=23.04985828]
+	MADS run  4 ...... OK [bb eval=  8] [overall bb eval=  100] [# dominant pts=  10] [# new pts=   2] [f1=-3.780317496 f2=7.348181107]
 
 } end of run (max number of bb evaluations)
 
@@ -14,15 +14,16 @@ number of MADS runs                      : 4
 
 Pareto front {
 
-	-6.0000000000 27.1873454385 
-	-5.4633436854 20.4877802253 
-	-4.9266873708 17.7107260310 
-	-4.3900310562 12.0799548321 
-	-4.1217028989 4.6477802253 
-	-3.8533747416 1.3742832861 
-	-3.5850465843 -0.2031008969 
-	-3.3167184270 -3.6003194012 
-	-1.1700931686 -7.9481364246 
+	-6.0000000000 43.0227873016 
+	-5.9269427546 35.4890842852 
+	-5.3902864400 34.8873088235 
+	-5.1219582827 23.0498582755 
+	-4.5853019681 22.3745620084 
+	-3.7803174962 7.3481811074 
+	-2.7070048670 -2.5579608209 
+	-2.4386767097 -3.2681325630 
+	-0.8287077659 -4.2758679628 
+	-0.5603796086 -9.7237377852 
 } 
 
-number of Pareto points: 9
+number of Pareto points: 10
diff --git a/examples/basic/library/single_obj/basic_lib.cpp b/examples/basic/library/single_obj/basic_lib.cpp
index ea99384..94b28b3 100644
--- a/examples/basic/library/single_obj/basic_lib.cpp
+++ b/examples/basic/library/single_obj/basic_lib.cpp
@@ -32,8 +32,11 @@ public:
 
     count_eval = true; // count a black-box evaluation
 
+    //if ( c1-25 < 0 && 25-c2 < 0 && x[4] < -3.2 ) 
+        // NOMAD::Evaluator::force_quit();
+
     return true;       // the evaluation succeeded
-	}
+}
 	
 	
 };
@@ -75,7 +78,8 @@ int main ( int argc , char ** argv ) {
     ub[2] = 7.0;                              // x_3 <= 7
     p.set_UPPER_BOUND ( ub );
 
-    p.set_MAX_BB_EVAL (100);     // the algorithm terminates after
+    p.set_LIMIT_MESH_INDEX( -1 );
+    //p.set_MAX_BB_EVAL (10000);     // the algorithm terminates after
                                  // 100 black-box evaluations
     p.set_DISPLAY_DEGREE(2);
     p.set_SOLUTION_FILE("sol.txt");
diff --git a/examples/basic/library/single_obj/makefile b/examples/basic/library/single_obj/makefile
index 582714a..8a2cbcb 100644
--- a/examples/basic/library/single_obj/makefile
+++ b/examples/basic/library/single_obj/makefile
@@ -1,25 +1,37 @@
-EXE                 = basic_lib.exe
-EXE_MPI				= basic_lib_MPI.exe
-
-COMPILATOR          = g++
-COMPILATOR_MPI = mpic++
-SUNAME = $(shell uname)
-OSS=$(findstring MINGW32,$(SUNAME)) 
-ifneq "$(strip $(OSS))" ""
-COMPILATOR_MPI = g++
-endif
+UNAME := $(shell uname)
+
+EXE                    = basic_lib.exe
+EXE_MPI	               = basic_lib_MPI.exe
 
-COMPILATOR_OPTIONS  = -O2 -ansi 
+COMPILATOR             = g++
+COMPILATOR_MPI         = mpic++
+
+COMPILATOR_OPTIONS     = -O2 -ansi 
 COMPILATOR_OPTIONS_MPI = $(COMPILATOR_OPTIONS) -DUSE_MPI
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-L1_MPI				= $(NOMAD_HOME)/lib/nomad.MPI.a
-LIBS                = $(L1) -lm
-LIBS_MPI			= $(L1_MPI) -lm -lmpi
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-COMPILE_MPI			= $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
-OBJS                = basic_lib.o
-OBJS_MPI            = basic_lib_MPI.o
+
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+LIB_NOMAD_MPI          = libnomad.MPI.so
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+CXXFLAGS_MPI 	       = $(CXXFLAGS) -DUSE_MPI
+
+
+LDLIBS                 = -lm -lnomad
+LDLIBS_MPI             = -lm -lmpi -lnomad.MPI
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+COMPILE_MPI            = $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
+
+OBJS                   = basic_lib.o
+OBJS_MPI               = basic_lib_MPI.o
 
 
 ifndef NOMAD_HOME
@@ -30,19 +42,23 @@ endef
 endif
 
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
 	@echo "   building the scalar version ..."
 	@echo "   exe file : "$(EXE)
-	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip  $(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
-$(EXE_MPI): $(L1_MPI) $(OBJS_MPI) 
+$(EXE_MPI): $(OBJS_MPI) 
 	$(ECHO_NOMAD)
 	@echo "   building the MPI version ..."
 	@echo "   exe file : "$(EXE_MPI)
-	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LIBS_MPI) $(COMPILATOR_OPTIONS_MPI)
-	@strip  $(EXE_MPI)
+	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LDLIBS_MPI) $(CXXFLAGS_MPI) -L$(LIB_DIR)
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD_MPI) $(NOMAD_HOME)/lib/$(LIB_NOMAD_MPI) $(EXE_MPI)
+endif
 
 basic_lib.o: basic_lib.cpp
 	$(ECHO_NOMAD)
@@ -52,8 +68,6 @@ basic_lib_MPI.o: basic_lib.cpp
 	$(ECHO_NOMAD)
 	@$(COMPILE_MPI) basic_lib.cpp -o basic_lib_MPI.o
 
-$(L1) $(L1_MPI): ;
-	$(ECHO_NOMAD)
 
 mpi: $(EXE_MPI)
 
diff --git a/examples/basic/library/single_obj/runExample.log b/examples/basic/library/single_obj/runExample.log
index 062f2c3..e10eb49 100644
--- a/examples/basic/library/single_obj/runExample.log
+++ b/examples/basic/library/single_obj/runExample.log
@@ -6,17 +6,15 @@ MADS run {
 	  2	(	0.0000000000 0.5366563146 0.5813776741 -0.2683281573 0.2683281573 )	288.7937255854 (PhaseOne)
 	  3	(	0.0000000000 2.1466252584 2.3255106966 -1.0733126292 1.0733126292 )	0.0000000000 (PhaseOne)
 	  3	(	0.0000000000 2.1466252584 2.3255106966 -1.0733126292 1.0733126292 )	1.0733126292
-	 11	(	0.1229837388 2.5491174943 2.6161995337 -1.0733126292 0.8720665112 )	0.8720665112
-	 12	(	0.4919349550 3.7565942022 3.4882660449 -1.0733126292 0.2683281573 )	0.2683281573
-	 21	(	0.4919349550 4.2932505168 4.0696437190 -0.2683281573 -0.2683281573 )	-0.2683281573
-	 23	(	1.9677398202 1.6099689438 3.4882660449 -0.8049844719 -1.3416407865 )	-1.3416407865
-	 38	(	1.4758048651 3.2199378876 -0.5813776741 -0.2683281573 -2.9516097303 )	-2.9516097303
-	 56	(	1.9677398202 1.0733126292 1.7441330224 0.5366563146 -3.7565942022 )	-3.7565942022
-	 85	(	1.4758048651 0.9391485505 1.1627553483 0.8049844719 -3.8907582808 )	-3.8907582808
-	100	(	1.4758048651 0.9391485505 1.1627553483 0.8049844719 -3.8907582808 )	-3.8907582808
+	 10	(	-0.1229837388 2.0124611797 2.9068883707 -1.1403946685 1.0062305899 )	1.0062305899
+	 11	(	-0.4919349550 1.6099689438 4.6510213932 -1.3416407865 0.8049844719 )	0.8049844719
+	 13	(	0.0000000000 0.5366563146 5.2323990673 -0.5366563146 0.5366563146 )	0.5366563146
+	 28	(	2.9516097303 2.6832815730 4.6510213932 0.5366563146 -1.0733126292 )	-1.0733126292
+	 32	(	0.4919349550 2.1466252584 1.1627553483 0.2683281573 -3.7565942022 )	-3.7565942022
+	100	(	0.4919349550 2.1466252584 1.1627553483 0.2683281573 -3.7565942022 )	-3.7565942022
 
 } end of run (max number of blackbox evaluations)
 
 blackbox evaluations                     : 100
-best infeasible solution (min. violation): ( 3.443544685 2.683281573 1.744133022 0.8049844719 -2.95160973 ) h=0.0113319552 f=-2.95160973
-best feasible solution                   : ( 1.475804865 0.9391485505 1.162755348 0.8049844719 -3.890758281 ) h=0 f=-3.890758281
+best infeasible solution (min. violation): ( 2.459674775 0.5366563146 1.162755348 1.073312629 -3.756594202 ) h=0.0023902697 f=-3.756594202
+best feasible solution                   : ( 0.491934955 2.146625258 1.162755348 0.2683281573 -3.756594202 ) h=0 f=-3.756594202
diff --git a/examples/basic/library/single_obj_parallel/basic_lib.cpp b/examples/basic/library/single_obj_parallel/basic_lib.cpp
index 408e841..e67457e 100644
--- a/examples/basic/library/single_obj_parallel/basic_lib.cpp
+++ b/examples/basic/library/single_obj_parallel/basic_lib.cpp
@@ -8,196 +8,202 @@
 using namespace std;
 // using namespace NOMAD; avoids putting NOMAD:: everywhere
 
-// Number of threads to be used in parallel 
-#define NUM_THREADS    4 
+// Number of threads to be used in parallel
+#define NUM_THREADS    4
 
-// A semaphore to manage parallel evaluations with NUM_THREADS
-sem_t *mySemaphore;
+// A semaphore to manage the number of threads to be run concurrently
+sem_t mySemaphore;
 
 // A structure to pass arguments to the evaluation wrapper function
 class My_Evaluator;
 typedef struct Arg_Eval_tag {
-	NOMAD::Eval_Point	*	x	;
-	NOMAD::Double			h_max;
-	bool                *	count_eval;
-	const My_Evaluator	*	ev;     
+    NOMAD::Eval_Point	*	x	;
+    NOMAD::Double			h_max;
+    bool                *	count_eval;
 } Arg_Eval_t;
 
 
+/*----------------------------------------*/
+/*     The problem evaluatiom             */
+/*----------------------------------------*/
+// Provide the objective and constraints here
+bool eval_x ( NOMAD::Eval_Point   & x          ,
+             const NOMAD::Double & h_max      ,
+             bool                & count_eval   )
+{
+    
+    NOMAD::Double c1 = 0.0 , c2 = 0.0;
+    for ( int i = 0 ; i < 5 ; i++ )
+    {
+        c1 += (x[i]-1).pow2();
+        c2 += (x[i]+1).pow2();
+    }
+    x.set_bb_output  ( 0 , x[4]  ); // objective value
+    x.set_bb_output  ( 1 , c1-25 ); // constraint 1
+    x.set_bb_output  ( 2 , 25-c2 ); // constraint 2
+    
+    count_eval = true; // count a black-box evaluation
+    
+    return true;       // the evaluation succeeded
+}
 
-class My_Evaluator : public NOMAD::Evaluator {
-public:
-	My_Evaluator  ( const NOMAD::Parameters & p ) :
-    NOMAD::Evaluator ( p ) {}
-	
-	~My_Evaluator ( void ) {}
-	
-	/*----------------------------------------*/
-	/*     The problem evaluatiom             */
-	/*----------------------------------------*/	
-	// Provide the objective and constraints here		
-	bool eval_x ( NOMAD::Eval_Point   & x          ,
-				 const NOMAD::Double & h_max      ,
-				 bool                & count_eval   ) const
-	{
-		
-		NOMAD::Double c1 = 0.0 , c2 = 0.0;
-		for ( int i = 0 ; i < 5 ; i++ ) 
-		{
-			c1 += (x[i]-1).pow2();
-			c2 += (x[i]+1).pow2();
-		}
-		x.set_bb_output  ( 0 , x[4]  ); // objective value
-		x.set_bb_output  ( 1 , c1-25 ); // constraint 1
-		x.set_bb_output  ( 2 , 25-c2 ); // constraint 2
-		
-		count_eval = true; // count a black-box evaluation
-		
-		return true;       // the evaluation succeeded
-	}
-	
-	// Wrapper of eval_x used for parallel evaluation (pthreads). 	
-	static void * wrapper_eval_x ( void * dummy_eval_arg   )
-	{
-		
-		Arg_Eval_t * eval_arg = static_cast<Arg_Eval_t *>(dummy_eval_arg);
-		
-		NOMAD::Eval_Point & x=*(eval_arg->x);
-		bool & count_eval = *(eval_arg->count_eval);
-		const NOMAD::Double & h_max = (eval_arg->h_max);		
-		const My_Evaluator *ev=(eval_arg->ev);
-		
-		ev->eval_x(x,h_max,count_eval);
-		
-		pthread_exit(NULL);
-		
-	}
-	
-	// Implementation
-	bool eval_x ( std::list<NOMAD::Eval_Point *>	&list_x  ,
-				 const NOMAD::Double				& h_max,
-				 std::list<bool>					& list_count_eval ) const
-	{
-		int rc;
-		
+// Wrapper of eval_x used for parallel evaluation (pthreads).
+static void * wrapper_eval_x ( void * dummy_eval_arg   )
+{
+    
+    Arg_Eval_t * eval_arg = static_cast<Arg_Eval_t *>(dummy_eval_arg);
+    
+    NOMAD::Eval_Point & x=*(eval_arg->x);
+    bool & count_eval = *(eval_arg->count_eval);
+    const NOMAD::Double & h_max = (eval_arg->h_max);
+    
+    eval_x(x,h_max,count_eval);
+    
+    pthread_exit(NULL);
+    
+    // The semaphore is incremented. Another thread can be started
+    sem_post(&mySemaphore);
+    
+}
 
-		
-		list_count_eval.assign(list_count_eval.size(),false);  // Evaluations are not counted until eval_x is called and set count_eval
-		
-		// All threads are created
-		pthread_t threads[list_x.size()];
-		
-		// The semaphore will allow to run NUM_THREADS in parallel
-		mySemaphore=sem_open("sem",0,NUM_THREADS);
-		
-		// Arguments passed to the evaluation wrapper
-		Arg_Eval_t * eval_arg=new Arg_Eval_t[list_x.size()];		
 
-		std::list<NOMAD::Eval_Point *>::iterator it_x=list_x.begin(),end_x=list_x.end();
-		std::list<bool>::iterator it_count=list_count_eval.begin();		
-		int i=0;
-		// The list of points is evaluated under the control of a semaphore
-		for (it_x=list_x.begin(); it_x!=end_x; ++it_x,++it_count,++i)
-		{
-			eval_arg[i].x=(*it_x);
-			eval_arg[i].h_max=h_max.value();
-			eval_arg[i].count_eval=&(*it_count);
-			eval_arg[i].ev=this;
-			rc=pthread_create(&threads[i], NULL, wrapper_eval_x,&eval_arg[i]);
-			if (rc)
-			{
-				cout << "Error:unable to create thread," << rc << endl;
-				return false;
-			}
-			// wait until value of semaphore is greater than 0
-			// decrement the value of semaphore by 1
-			sem_wait(mySemaphore);
-			
-		}
-		
-		delete []eval_arg;
-		int ret;
-		for (i=0; i<list_x.size(); ++i)
-		{
-			// Wait for all the threads to finish
-			ret=pthread_join(threads[i],0);
-			if (ret!=0)
-			{
-				perror("pthread join has failed");
-				return false;
-			}
-		}
-		
-		sem_unlink("sem");
-		
-		return true;       // the evaluation succeeded
-	}
-	
-	
-	
+class My_Evaluator : public NOMAD::Evaluator
+{
+public:
+    My_Evaluator  ( const NOMAD::Parameters & p ) :
+    NOMAD::Evaluator ( p ) {}
+    
+    ~My_Evaluator ( void ) {}
+
+    
+    // Implementation
+    bool eval_x ( std::list<NOMAD::Eval_Point *>	&list_x  ,
+                 const NOMAD::Double				& h_max,
+                 std::list<bool>					& list_count_eval ) const
+    {
+        int rc;
+        
+        
+        
+        list_count_eval.assign(list_count_eval.size(),false);  // Evaluations are not counted until eval_x is called and set count_eval
+        
+        // All threads are created
+        pthread_t threads[list_x.size()];
+        
+        // The semaphore will allow to run NUM_THREADS in parallel
+        sem_init(&mySemaphore,0,NUM_THREADS);
+        
+        // Arguments passed to the evaluation wrapper
+        Arg_Eval_t * eval_arg=new Arg_Eval_t[list_x.size()];
+        
+        std::list<NOMAD::Eval_Point *>::iterator it_x=list_x.begin(),end_x=list_x.end();
+        std::list<bool>::iterator it_count=list_count_eval.begin();
+        int i=0;
+        // The list of points is evaluated under the control of a semaphore
+        for (it_x=list_x.begin(); it_x!=end_x; ++it_x,++it_count,++i)
+        {
+            eval_arg[i].x=(*it_x);
+            eval_arg[i].h_max=h_max.value();
+            eval_arg[i].count_eval=&(*it_count);
+
+            rc=pthread_create(&threads[i], NULL, wrapper_eval_x,&eval_arg[i]);
+            if (rc)
+            {
+                cout << "Error:unable to create thread," << rc << endl;
+                return false;
+            }
+            // wait until value of semaphore is greater than 0
+            // decrement the value of semaphore by 1
+            sem_wait(&mySemaphore);
+            
+        }
+        
+        int ret;
+        for (i=0; i<list_x.size(); ++i)
+        {
+            // Wait for all the threads to finish
+            ret=pthread_join(threads[i],0);
+            if (ret!=0)
+            {
+                perror("pthread join has failed");
+                return false;
+            }
+        }
+        delete []eval_arg;
+        sem_destroy(&mySemaphore);
+        
+        return true;       // the evaluation succeeded
+    }
+    
+    
+    
 };
 
 /*------------------------------------------*/
 /*            NOMAD main function           */
 /*------------------------------------------*/
-int main ( int argc , char ** argv ) {
-
-  // display:
-  NOMAD::Display out ( std::cout );
-  out.precision ( NOMAD::DISPLAY_PRECISION_STD );
-
-  try {
-
-    // NOMAD initializations:
-    NOMAD::begin ( argc , argv );
-
-    // parameters creation:
-    NOMAD::Parameters p ( out );
-
-    p.set_DIMENSION (5);             // number of variables
-
-    vector<NOMAD::bb_output_type> bbot (3); // definition of
-    bbot[0] = NOMAD::OBJ;                   // output types
-    bbot[1] = NOMAD::PB;
-    bbot[2] = NOMAD::EB;
-    p.set_BB_OUTPUT_TYPE ( bbot );
-
-//    p.set_DISPLAY_ALL_EVAL(true);   // displays all evaluations.
-    p.set_DISPLAY_DEGREE(2);  
-    p.set_DISPLAY_STATS ( "bbe ( sol ) obj" );
-
-    p.set_X0 ( NOMAD::Point(5,0.0) );  // starting point
-
-    p.set_LOWER_BOUND ( NOMAD::Point ( 5 , -6.0 ) ); // all var. >= -6
-    NOMAD::Point ub ( 5 );                    // x_4 and x_5 have no bounds
-    ub[0] = 5.0;                              // x_1 <= 5
-    ub[1] = 6.0;                              // x_2 <= 6
-    ub[2] = 7.0;                              // x_3 <= 7
-    p.set_UPPER_BOUND ( ub );
-
-    p.set_MAX_BB_EVAL (100);     // the algorithm terminates after
-                                 // 100 black-box evaluations
-	  
-    // Max number of points to be given as a block for evaluation
-	// This option is required to perform parallel evaluations 
-	p.set_BB_MAX_BLOCK_SIZE(NUM_THREADS);
-  
-    // parameters validation:
-    p.check();
-
-    // custom evaluator creation:
-    My_Evaluator ev   ( p );
-
-    // algorithm creation and execution:
-    NOMAD::Mads mads ( p , &ev );
-    mads.run();
-  }
-  catch ( exception & e ) {
-    cerr << "\nNOMAD has been interrupted (" << e.what() << ")\n\n";
-  }
-
-  NOMAD::Slave::stop_slaves ( out );
-  NOMAD::end();
-
-  return EXIT_SUCCESS;
+int main ( int argc , char ** argv )
+{
+    
+    
+    // display:
+    NOMAD::Display out ( std::cout );
+    out.precision ( NOMAD::DISPLAY_PRECISION_STD );
+    
+    try {
+        
+        // NOMAD initializations:
+        NOMAD::begin ( argc , argv );
+        
+        // parameters creation:
+        NOMAD::Parameters p ( out );
+        
+        p.set_DIMENSION (5);             // number of variables
+        
+        vector<NOMAD::bb_output_type> bbot (3); // definition of
+        bbot[0] = NOMAD::OBJ;                   // output types
+        bbot[1] = NOMAD::PB;
+        bbot[2] = NOMAD::EB;
+        p.set_BB_OUTPUT_TYPE ( bbot );
+        
+        //    p.set_DISPLAY_ALL_EVAL(true);   // displays all evaluations.
+        p.set_DISPLAY_DEGREE(2);
+        p.set_DISPLAY_STATS ( "bbe ( sol ) obj" );
+        
+        p.set_X0 ( NOMAD::Point(5,0.0) );  // starting point
+        
+        p.set_LOWER_BOUND ( NOMAD::Point ( 5 , -6.0 ) ); // all var. >= -6
+        NOMAD::Point ub ( 5 );                    // x_4 and x_5 have no bounds
+        ub[0] = 5.0;                              // x_1 <= 5
+        ub[1] = 6.0;                              // x_2 <= 6
+        ub[2] = 7.0;                              // x_3 <= 7
+        p.set_UPPER_BOUND ( ub );
+        
+        p.set_MAX_BB_EVAL (100);     // the algorithm terminates after
+        // 100 black-box evaluations
+        
+        // Max number of points to be given as a block for evaluation
+        // This option is required to perform parallel evaluations 
+        p.set_BB_MAX_BLOCK_SIZE(NUM_THREADS);
+        
+        // parameters validation:
+        p.check();
+        
+        // custom evaluator creation:
+        My_Evaluator ev   ( p );
+        
+        // algorithm creation and execution:
+        NOMAD::Mads mads ( p , &ev );
+        mads.run();
+    }
+    catch ( exception & e ) 
+    {
+        
+        cerr << "\nNOMAD has been interrupted (" << e.what() << ")\n\n";
+    }
+    
+    NOMAD::Slave::stop_slaves ( out );
+    NOMAD::end();
+    
+    return EXIT_SUCCESS;
 }
diff --git a/examples/basic/library/single_obj_parallel/makefile b/examples/basic/library/single_obj_parallel/makefile
index d7af859..1675b5e 100644
--- a/examples/basic/library/single_obj_parallel/makefile
+++ b/examples/basic/library/single_obj_parallel/makefile
@@ -1,13 +1,29 @@
-EXE                 = basic_lib.exe
+UNAME := $(shell uname)
 
-COMPILATOR          = g++
+EXE                    = basic_lib.exe
 
-COMPILATOR_OPTIONS  = -O2 -ansi 
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lm
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = basic_lib.o
+COMPILATOR             = g++
+
+COMPILATOR_OPTIONS     = -O2 -ansi -Wno-deprecated 
+
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+
+
+LDLIBS                 = -lm -lnomad -lpthread
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+
+OBJS                   = basic_lib.o
 
 
 ifndef NOMAD_HOME
@@ -18,26 +34,25 @@ endef
 endif
 
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
-	@echo "   building the parallel (ptrhreads) version ..."
+	@echo "   building the scalar version ..."
 	@echo "   exe file : "$(EXE)
-	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip  $(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
 basic_lib.o: basic_lib.cpp
 	$(ECHO_NOMAD)
 	@$(COMPILE) basic_lib.cpp
 
-$(L1) : ;
-	$(ECHO_NOMAD)
-
 
-all: $(EXE) 
+all: $(EXE)
 
 clean: ;
 	@echo "   cleaning obj files"
-	@rm -f $(OBJS) 
+	@rm -f $(OBJS)
 
 del: ;
 	@echo "   cleaning trash files"
diff --git a/examples/basic/library/single_obj_parallel/runExample.log b/examples/basic/library/single_obj_parallel/runExample.log
index c69008c..69e53de 100644
--- a/examples/basic/library/single_obj_parallel/runExample.log
+++ b/examples/basic/library/single_obj_parallel/runExample.log
@@ -13,15 +13,14 @@ MADS run {
 	  6	(	1.9677398202 0.0000000000 4.6510213932 1.0733126292 -1.0733126292 )	-1.0733126292
 	 12	(	1.4758048651 -0.5366563146 4.0696437190 0.8049844719 -1.6099689438 )	-1.6099689438
 	 14	(	0.4919349550 0.5366563146 4.0696437190 0.2683281573 -2.4149534157 )	-2.4149534157
-	 30	(	1.9677398202 0.5366563146 1.1627553483 1.3416407865 -3.2199378876 )	-3.2199378876
-	 52	(	0.9838699101 0.5366563146 1.7441330224 1.3416407865 -3.7565942022 )	-3.7565942022
-	 74	(	0.9838699101 1.0733126292 1.7441330224 0.5366563146 -3.7565942022 )	-3.7565942022
-	 92	(	1.2298373876 1.2074767078 1.3080997668 1.0062305899 -3.8236762415 )	-3.8236762415
-	 95	(	0.8608861713 1.2074767078 1.1627553483 1.3416407865 -3.8907582808 )	-3.8907582808
-	101	(	0.8608861713 1.2074767078 1.1627553483 1.3416407865 -3.8907582808 )	-3.8907582808
+	 30	(	1.9677398202 0.0000000000 2.9068883707 0.2683281573 -2.9516097303 )	-2.9516097303
+	 44	(	2.4596747752 2.1466252584 1.1627553483 0.2683281573 -3.4882660449 )	-3.4882660449
+	 76	(	1.9677398202 1.6099689438 1.7441330224 0.4024922359 -3.7565942022 )	-3.7565942022
+	 88	(	1.4758048651 0.9391485505 1.8894774410 0.6708203932 -3.8236762415 )	-3.8236762415
+	100	(	1.4758048651 0.9391485505 1.8894774410 0.6708203932 -3.8236762415 )	-3.8236762415
 
 } end of run (max number of blackbox evaluations)
 
-blackbox evaluations                     : 101
-best infeasible solution (min. violation): ( 0.9838699101 1.073312629 1.162755348 1.073312629 -4.024922359 ) h=0.2873436854 f=-4.024922359
-best feasible solution                   : ( 0.8608861713 1.207476708 1.162755348 1.341640786 -3.890758281 ) h=0 f=-3.890758281
+blackbox evaluations                     : 100
+best infeasible solution (min. violation): ( 1.96773982 1.744133022 1.598788604 0.2683281573 -3.756594202 ) h=0.009334196675 f=-3.756594202
+best feasible solution                   : ( 1.475804865 0.9391485505 1.889477441 0.6708203932 -3.823676242 ) h=0 f=-3.823676242
diff --git a/examples/interfaces/DLL/bi_obj/makefile b/examples/interfaces/DLL/bi_obj/makefile
index 241139b..e610902 100755
--- a/examples/interfaces/DLL/bi_obj/makefile
+++ b/examples/interfaces/DLL/bi_obj/makefile
@@ -1,11 +1,25 @@
-EXE                 = nomad_for_dll.exe
-COMPILATOR          = g++
-COMPILATOR_OPTIONS  = -O3
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lm
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = nomad_for_dll.o
+UNAME := $(shell uname)
+
+EXE                    = nomad_for_dll.exe
+COMPILATOR             = g++
+COMPILATOR_OPTIONS     = -O3 -ansi
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+
+LDLIBS                 = -lm -lnomad
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+
+OBJS                   = nomad_for_dll.o
 
 ifndef NOMAD_HOME
 define ECHO_NOMAD
@@ -14,13 +28,19 @@ define ECHO_NOMAD
 endef
 endif
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
+	@echo "   building the scalar version ..."
+	@echo "   exe file : "$(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
+
 
-nomad_for_dll.o: nomad_for_dll.cpp $(L1)
+nomad_for_dll.o: nomad_for_dll.cpp
 	$(ECHO_NOMAD)
-	$(COMPILE) nomad_for_dll.cpp
+	@$(COMPILE) nomad_for_dll.cpp
 
 $(L1): ;
 	$(ECHO_NOMAD)
diff --git a/examples/interfaces/DLL/single_obj/makefile b/examples/interfaces/DLL/single_obj/makefile
index da0aa1b..e610902 100755
--- a/examples/interfaces/DLL/single_obj/makefile
+++ b/examples/interfaces/DLL/single_obj/makefile
@@ -1,11 +1,25 @@
-EXE                 = nomad_for_dll.exe
-COMPILATOR          = g++
-COMPILATOR_OPTIONS  = -O3
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lm
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = nomad_for_dll.o
+UNAME := $(shell uname)
+
+EXE                    = nomad_for_dll.exe
+COMPILATOR             = g++
+COMPILATOR_OPTIONS     = -O3 -ansi
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+
+LDLIBS                 = -lm -lnomad
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+
+OBJS                   = nomad_for_dll.o
 
 ifndef NOMAD_HOME
 define ECHO_NOMAD
@@ -14,14 +28,19 @@ define ECHO_NOMAD
 endef
 endif
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
+	@echo "   building the scalar version ..."
+	@echo "   exe file : "$(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
 
 nomad_for_dll.o: nomad_for_dll.cpp
 	$(ECHO_NOMAD)
-	$(COMPILE) nomad_for_dll.cpp
+	@$(COMPILE) nomad_for_dll.cpp
 
 $(L1): ;
 	$(ECHO_NOMAD)
diff --git a/examples/interfaces/FORTRAN/example1/makefile b/examples/interfaces/FORTRAN/example1/makefile
index 6f7ea74..0b315b4 100644
--- a/examples/interfaces/FORTRAN/example1/makefile
+++ b/examples/interfaces/FORTRAN/example1/makefile
@@ -1,13 +1,26 @@
-EXE                 = test.exe
-COMPILATOR          = g++
-FCOMPILATOR         = gfortran
-COMPILATOR_OPTIONS  = -ansi -Wall -O3 
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lm
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-FCOMPILE            = $(FCOMPILATOR) -O3 -c
-OBJS                = test.o bb.o
+UNAME := $(shell uname)
+
+EXE                    = test.exe
+COMPILATOR             = g++
+FCOMPILATOR            = gfortran
+COMPILATOR_OPTIONS     = -ansi -Wall -O3 
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+
+
+LDLIBS                 = -lm -lnomad
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+FCOMPILE               = $(FCOMPILATOR) -O3 -c
+OBJS                   = test.o bb.o
 
 ifndef NOMAD_HOME
 define ECHO_NOMAD
@@ -17,18 +30,22 @@ endef
 endif
 
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS) -lgfortran
+	@echo "   building the scalar version ..."
+	@echo "   exe file : "$(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
 test.o: test.cpp bb.o
-	$(COMPILE) test.cpp
+	$(ECHO_NOMAD)
+	@$(COMPILE) test.cpp
 
 bb.o: bb.f
-	$(FCOMPILE) bb.f
-
-$(L1): ;
-	$(ECHO_NOMAD)	
+	$(ECHO_NOMAD)
+	@$(FCOMPILE) bb.f	
 	
 clean:
 	@echo "   cleaning obj files"
diff --git a/examples/interfaces/FORTRAN/example1/runExample.log b/examples/interfaces/FORTRAN/example1/runExample.log
index e13bad1..e14c513 100644
--- a/examples/interfaces/FORTRAN/example1/runExample.log
+++ b/examples/interfaces/FORTRAN/example1/runExample.log
@@ -3,15 +3,18 @@ MADS run {
 
 	BBE	OBJ
 
-	  2	275.2281000000 (PhaseOne)
+	  2	288.7937255854 (PhaseOne)
 	  3	0.0000000000 (PhaseOne)
-	  3	0.0000000000
-	 11	-1.5000000000
-	 55	-3.0000000000
-	100	-3.0000000000
+	  3	1.0733126292
+	 10	1.0062305899
+	 11	0.8049844719
+	 13	0.5366563146
+	 28	-1.0733126292
+	 32	-3.7565942022
+	100	-3.7565942022
 
 } end of run (max number of blackbox evaluations)
 
-blackbox evaluations    : 100
-best infeasible solution: ( 0.55 1.8 2.6 -1.5 -3 ) h=0.6525 f=-3
-best feasible solution  : ( 1.65 1.8 1.95 -1.5 -3 ) h=0 f=-3
+blackbox evaluations                     : 100
+best infeasible solution (min. violation): ( 2.459674775 0.5366563146 1.162755348 1.073312629 -3.756594202 ) h=0.0023902697 f=-3.756594202
+best feasible solution                   : ( 0.491934955 2.146625258 1.162755348 0.2683281573 -3.756594202 ) h=0 f=-3.756594202
diff --git a/examples/interfaces/FORTRAN/example2/makefile b/examples/interfaces/FORTRAN/example2/makefile
index 75f00d3..8875700 100644
--- a/examples/interfaces/FORTRAN/example2/makefile
+++ b/examples/interfaces/FORTRAN/example2/makefile
@@ -1,13 +1,27 @@
-EXE                 = test.exe
-COMPILATOR          = g++
-FCOMPILATOR         = gfortran
-COMPILATOR_OPTIONS  = -ansi -Wall -O3 
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lm
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-FCOMPILE            = $(FCOMPILATOR) -O3 -c
-OBJS                = nomad.o test.o
+UNAME := $(shell uname)
+
+EXE                    = test.exe
+COMPILATOR             = g++
+FCOMPILATOR            = gfortran
+COMPILATOR_OPTIONS     = -ansi -Wall -O3 
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+
+
+LDLIBS                 = -lm -lnomad -lstdc++
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+FCOMPILE               = $(FCOMPILATOR) -O3 -c
+
+OBJS                   = nomad.o test.o
 
 ifndef NOMAD_HOME
 define ECHO_NOMAD
@@ -16,18 +30,17 @@ define ECHO_NOMAD
 endef
 endif
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
-	$(FCOMPILATOR) -o $(EXE) $(OBJS) $(LIBS) -lstdc++
+	$(FCOMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) -L$(LIB_DIR) $(CXXFLAGS)
 
 nomad.o: nomad.cpp
+	$(ECHO_NOMAD)
 	$(COMPILE) nomad.cpp
 
 test.o: test.f
-	$(FCOMPILE) test.f
-
-$(L1): ;
 	$(ECHO_NOMAD)
+	$(FCOMPILE) test.f
 	
 clean:
 	@echo "   cleaning obj files"
diff --git a/examples/interfaces/Matlab_MEX/nomad.m b/examples/interfaces/Matlab_MEX/Functions/nomad.m
similarity index 83%
rename from examples/interfaces/Matlab_MEX/nomad.m
rename to examples/interfaces/Matlab_MEX/Functions/nomad.m
index b273d1c..e2365b3 100644
--- a/examples/interfaces/Matlab_MEX/nomad.m
+++ b/examples/interfaces/Matlab_MEX/Functions/nomad.m
@@ -2,11 +2,10 @@
 %
 %   min f(x)      subject to:     nlcon(x) <= 0
 %    x                            lb <= x <= ub
-%                                 xi in Z
-%                                 xj in {0,1}
+%                                 x in R
 %            
 %%%%%%%%%%%%% GERAD VERSION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%   [x,fval,exitflag,iter,nfval] = nomad(fun,x0,lb,ub,opts)
+%   [x,fval,exitflag,iter,nfval] = nomad(fun,x0,lb,ub,opts,param)
 %
 %   Input arguments:
 %       fun - nonlinear function handle (f and nlcon)
@@ -14,10 +13,11 @@
 %       lb - decision variable lower bounds
 %       ub - decision variable upper bounds
 %       opts - solver options (see nomadset)
+%       param - extra parameter passed to the blackbox function
 %
 %   Return arguments:
 %       x - solution vector
-%       fval - objective value at the solution
+%       fval - objective value at the solution (paretor front if bi-obj)
 %       exitflag - exit status (see below)
 %       iter - number of iterations taken by the solver
 %       nfval - number of function evaluations taken by the solver
diff --git a/examples/interfaces/Matlab_MEX/nomadset.m b/examples/interfaces/Matlab_MEX/Functions/nomadset.m
similarity index 100%
rename from examples/interfaces/Matlab_MEX/nomadset.m
rename to examples/interfaces/Matlab_MEX/Functions/nomadset.m
diff --git a/examples/interfaces/Matlab_MEX/GERAD_NOMAD_build.m b/examples/interfaces/Matlab_MEX/GERAD_NOMAD_build.m
index 36eee6c..f827e8e 100644
--- a/examples/interfaces/Matlab_MEX/GERAD_NOMAD_build.m
+++ b/examples/interfaces/Matlab_MEX/GERAD_NOMAD_build.m
@@ -5,75 +5,163 @@
 % To recompile you will need to get / do the following:
 
 % 1) Get NOMAD
-% NOMAD is available from http://www.gerad.ca/NOMAD/PHP_Forms/Download.php.
+% NOMAD is available from https://www.gerad.ca/nomad
 % Complete the download form then download the latest version. Define the
 % $NOMAD_HOME environment variable.
 
-% 2) NOMAD MEX Interface
+% 2) Start Matlab and go into $NOMAD_HOME/examples/interfaces/Matlab_Mex
 % The NOMAD MEX Interface is a simple MEX interface written to use NOMAD.
 
-% 3) Compile the MEX File
-% The code below will build the NOMAD MEX file. Once you have completed all the
-% above steps, simply run this file to compile NOMAD! You MUST BE in the 
-% base directory of OPTI!
+% 3) Compile the MEX File by executing this file in Matlab
+%
+%
+% The code below will build the NOMAD MEX file and set the Matlab path. 
 
 clear nomad
 
-switch(computer)
-case 'PCWIN'
-libdir = ' -Lwin32\';
-case 'PCWIN64' 
-libdir = ' -Lwin64\';        
-case 'GLNX86'
-libdir = 'glnx86/';
-case 'GLNXA64'
-libdir = 'glnxa64/';
-case 'MACI64'
-libdir = 'maci64/';
-end
+% Current directory
+cdir = cd;
 
+% Check and set nomad_home and create variables for path
 clear nomad_home nomad_src;
 
+% Default values
+nameLibNomad = '';
+updateLDFLAGS= '';
+install_name_tool='';
+
+if ( strcmp(computer,'PCWIN64') == 1 || strcmp(computer,'PCWIN32') == 1 )
+
+    nomad_home = getenv('NOMAD_EXAMPLES');
+
+    if ( length(nomad_home) > 1)
+        nomad_home = [ nomad_home '\VisualStudio' ];
+        warning('The nomad_home variable for Matlab is set to %s (that is NOMAD_EXAMPLES\\VisualStudio).The default can be replaced by using the command setenv(''NOMAD_EXAMPLES'',ARG1)! before running the GERAD_NOMAD_build command.',nomad_home);
+        if ( ~isempty( find(isspace(nomad_home),1) ) )
+            error('The compilation of Nomad for Matlab must be performed in the NOMAD_EXAMPLES directory. The NOMAD_EXAMPLES directory should not contain empty space. Please consider moving the NOMAD_EXAMPLES directory and reset the NOMAD_EXAMPLES environment variable accordingly.');
+        end
+        
+    else
+        cd ..
+        cd .. 
+        cd ..
+        cd 'VisualStudio';    
+        nomad_home = cd; 
+    
+        if ( ~ exist(nomad_home,'dir') )
+            error('The default NOMAD_EXAMPLES\VisualStudio directory does not exist. Please make sure that a VisualStudio directory exists.');
+        end
+        
+        cd(cdir);
+    end
+      
+    nomad_src=[nomad_home filesep 'src' filesep];
+    nomad_bin=[nomad_home filesep 'bin' filesep];
+    nomad_lib='';
+
+    %Compile & Move (Windows) ---> recompile Nomad
+    post = [' -I.  -I' nomad_src ' -lut -output ' nomad_bin filesep 'nomad.' mexext];
+    pre = ['mex -v -largeArrayDims nomadmex.cpp ' nomad_src 'Parameters.cpp ' nomad_src 'Barrier.cpp ' nomad_src 'Cache.cpp '...
+    nomad_src 'Cache_File_Point.cpp ' nomad_src 'Cache_Point.cpp ' nomad_src 'Cache_Search.cpp ' nomad_src 'Clock.cpp '...
+    nomad_src 'Direction.cpp ' nomad_src 'Directions.cpp ' nomad_src 'Display.cpp '...
+    nomad_src 'Double.cpp ' nomad_src 'Eval_Point.cpp ' nomad_src 'Evaluator.cpp ' nomad_src 'Evaluator_Control.cpp ' nomad_src 'Exception.cpp '...
+    nomad_src 'Extended_Poll.cpp ' nomad_src 'L_Curve.cpp ' nomad_src 'LH_Search.cpp ' nomad_src 'OrthogonalMesh.cpp ' nomad_src 'Mads.cpp ' nomad_src 'Model_Sorted_Point.cpp '...
+    nomad_src 'Model_Stats.cpp ' nomad_src 'Multi_Obj_Evaluator.cpp ' nomad_src 'Parameter_Entries.cpp '...
+    nomad_src 'Parameter_Entry.cpp ' nomad_src 'Pareto_Front.cpp ' nomad_src 'Pareto_Point.cpp ' nomad_src 'Phase_One_Evaluator.cpp '...
+    nomad_src 'Phase_One_Search.cpp ' nomad_src 'Point.cpp ' nomad_src 'Priority_Eval_Point.cpp ' nomad_src 'Quad_Model.cpp '...
+    nomad_src 'Quad_Model_Evaluator.cpp ' nomad_src 'Quad_Model_Search.cpp ' nomad_src 'Random_Pickup.cpp ' nomad_src 'RNG.cpp '...
+    nomad_src 'Signature.cpp ' nomad_src 'Slave.cpp ' nomad_src 'SMesh.cpp ' nomad_src 'Speculative_Search.cpp ' nomad_src 'Stats.cpp ' nomad_src 'utils.cpp '...
+    nomad_src 'Variable_Group.cpp ' nomad_src 'VNS_Search.cpp ' nomad_src 'XMesh.cpp'];
+
+
+else
+    %%%%%%%%%%%%%%%%%%%%%%%
+    % LINUX AND OSX
+    %%%%%%%%%%%%%%%%%%%%%%%
+    
+    % Default library names
+    nameLibNomad = 'libnomad.so';
+
+    % Default update LDFLAGS (linux only)
+    updateLDFLAGS= '';
+    % Post compilation tool for path to library (osx only)
+    install_name_tool='';
+
+    nomad_home = getenv('NOMAD_HOME');
+
+    if ( length(nomad_home) < 1 )
+        % Get a default directory for NOMAD_HOME
+        cd ..
+        cd .. 
+        cd ..
+        nomad_home = cd; 
+        if ( ~ exist(nomad_home,'dir') )
+            error('The default NOMAD_HOME directory does not exist. Please provide a correct value for the NOMAD_HOME variables with the command setenv(''NOMAD_HOME'',ARG1)');
+        end
+        warning('The NOMAD_HOME variable for Matlab is set with its default value %s. The default can be replaced by using the command setenv(''NOMAD_HOME'',ARG1)! before running the GERAD_NOMAD_build command.',nomad_home);
+        cd(cdir);
+    else
+        if ( ~isempty( find(isspace(nomad_home),1) ) )
+            error('The compilation of Nomad for Matlab uses the sources located in the NOMAD_HOME directory. The NOMAD_HOME directory should not contain empty space. Please consider moving the NOMAD_HOME directory and reset the NOMAD_HOME environment variable accordingly.');
+        end
+    end
+      
+    nomad_src=[nomad_home filesep 'src' filesep];
+    nomad_lib=[nomad_home filesep 'lib' filesep];
+    nomad_bin=[nomad_home filesep 'bin' filesep]; 
+    
+    switch(computer)
+        case 'GLNX86'
+            updateLDFLAGS = 'LDFLAGS=''$LDFLAGS -Wl,-rpath,''''$ORIGIN/../lib/'''' '' ';
+        case 'GLNXA64'
+            updateLDFLAGS = 'LDFLAGS=''$LDFLAGS -Wl,-rpath,''''$ORIGIN/../lib/'''' '' ';
+        case 'MACI64'
+            install_name_tool=['install_name_tool -change ' nameLibNomad ' @loader_path/../lib/' nameLibNomad ' ' nomad_bin filesep 'nomad.' mexext];
+    end
+   
+    %Compile & Move (Default) --> use shared object library
+    post = [' -I.  -I' nomad_src ' -lut -lnomad -L' nomad_lib ' -output ' nomad_bin filesep 'nomad.' mexext ];
+    pre =[ 'mex -v -largeArrayDims nomadmex.cpp ' updateLDFLAGS ];
+    
+    if ( ~ exist([nomad_lib filesep nameLibNomad],'file') )
+        error('The Nomad library file %s is not available. Please perform Nomad project compilation before proceeding.',nameLibNomad);      
+    end
+    
+end
+    
 
 fprintf('\n------------------------------------------------\n');
 fprintf('NOMAD MEX FILE BUILD --- GERAD VERSION \n\n');
 
-nomad_home = getenv('NOMAD_HOME');
-if (length(nomad_home)<1)
-    error('opti:nomad','Please set NOMAD_HOME variables properly with the command setenv(''NOMAD_HOME'',ARG1)!');
-end
-nomad_src=[nomad_home filesep 'src' filesep];
-
-
-%Get NOMAD Libraries
-post = [' -I.  -I' nomad_src ' -lm -lut -output nomad'];
-
 %CD to Source Directory
-cdir = cd;
 cd 'Source';
 
-%Compile & Move
-pre = ['mex -v -g -largeArrayDims nomadmex.cpp ' nomad_src 'Parameters.cpp ' nomad_src 'Barrier.cpp ' nomad_src 'Cache.cpp '...
-nomad_src 'Cache_File_Point.cpp ' nomad_src 'Cache_Point.cpp ' nomad_src 'Cache_Search.cpp ' nomad_src 'Clock.cpp '...
-nomad_src 'Direction.cpp ' nomad_src 'Directions.cpp ' nomad_src 'Display.cpp '...
-nomad_src 'Double.cpp ' nomad_src 'Eval_Point.cpp ' nomad_src 'Evaluator.cpp ' nomad_src 'Evaluator_Control.cpp ' nomad_src 'Exception.cpp '...
-nomad_src 'Extended_Poll.cpp ' nomad_src 'L_Curve.cpp ' nomad_src 'LH_Search.cpp ' nomad_src 'OrthogonalMesh.cpp ' nomad_src 'Mads.cpp ' nomad_src 'Model_Sorted_Point.cpp '...
-nomad_src 'Model_Stats.cpp ' nomad_src 'Multi_Obj_Evaluator.cpp ' nomad_src 'Parameter_Entries.cpp '...
-nomad_src 'Parameter_Entry.cpp ' nomad_src 'Pareto_Front.cpp ' nomad_src 'Pareto_Point.cpp ' nomad_src 'Phase_One_Evaluator.cpp '...
-nomad_src 'Phase_One_Search.cpp ' nomad_src 'Point.cpp ' nomad_src 'Priority_Eval_Point.cpp ' nomad_src 'Quad_Model.cpp '...
-nomad_src 'Quad_Model_Evaluator.cpp ' nomad_src 'Quad_Model_Search.cpp ' nomad_src 'Random_Pickup.cpp ' nomad_src 'RNG.cpp '...
-nomad_src 'Signature.cpp ' nomad_src 'Slave.cpp ' nomad_src 'SMesh.cpp ' nomad_src 'Speculative_Search.cpp ' nomad_src 'Stats.cpp ' nomad_src 'utils.cpp '...
-nomad_src 'Variable_Group.cpp ' nomad_src 'VNS_Search.cpp ' nomad_src 'XMesh.cpp'];
-
 try
+
+    if ( ~ exist([nomad_lib filesep nameLibNomad],'file') )
+        error('The Nomad library file %s is not available. Please perform Nomad project compilation before proceeding.',nameLibNomad);      
+    end
+
     eval([pre post])
-    movefile(['nomad.' mexext],['..' filesep],'f')
+    
+    if ( strcmp(computer,'MACI64') == 1 )
+        system(install_name_tool);
+    end
+    
     cd(cdir);
-    clear nomad_home nomad_src cdir post pre libdir;
-    fprintf('Done!\n');
+    fprintf('Compilation done!\n');
+    fprintf('\n----------------------------------------------------------------------------------------------\n');
+    fprintf(' To be able to use the nomad functions, you may need to modify the Matlab path \n');
+    qstring = 'To be able to use the nomad functions, you may need to modify the Matlab path. Do you want to update the Matlab path?';
+    choice = questdlg(qstring,'Set path','Yes','No','Yes');
+    if ( strcmp(choice,'Yes') )
+        addpath([ cdir filesep 'Functions']);
+        addpath(nomad_bin);
+        fprintf('  ---> The Matlab path has been modified but not saved.\n');
+    end
+    clear nomad_home nomad_lib nomad_bin nomad_src cdir post pre updateLDFLAGS qstring choice install_name_tool nameLibNomad;
 catch ME
     cd(cdir);
-	clear nomad_home nomad_src cdir post pre libdir;
-    error('opti:nomad','Error Compiling NOMAD!\n%s',ME.message);
+	clear nomad_home nomad_lib noamd_bin nomad_src cdir post pre updateLDFLAGS qstring choice install_name_tool nameLibNomad;
+    error('Error Compiling NOMAD!\n%s',ME.message);
 end
-fprintf('------------------------------------------------\n');
diff --git a/examples/interfaces/Matlab_MEX/Source/nomadmex.cpp b/examples/interfaces/Matlab_MEX/Source/nomadmex.cpp
index cd8f3ec..e96f29e 100755
--- a/examples/interfaces/Matlab_MEX/Source/nomadmex.cpp
+++ b/examples/interfaces/Matlab_MEX/Source/nomadmex.cpp
@@ -1,16 +1,24 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search MATLAB Interface     */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*	               Charles Audet        - Ecole Polytechnique de Montreal              */
+/*	               Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*	               Christophe Tribes    - Ecole Polytechnique de Montreal              */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
 /*                                                                                     */
-/*  MEX Interface Author: Jonathan Currie 2012 (I2C2)                                  */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
+/*                                                                                     */
+/*                                                                                     */
+/*  MEX Interface Author: Jonathan Currie 2012 (I2C2) + modifs C. Tribes               */
 /*                                                                                     */
 /*  MEX Interface Contact information:                                                 */
 /*    jocurrie@aut.ac.nz                                                               */
@@ -30,7 +38,7 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 
-#define NOMADMEX_VERSION "1.24_ct  [feb 12, 2015]"
+#define NOMADMEX_VERSION "1.25_ct  [Sept 3rd, 2015]"
 //NOTE from Version 1.15 on this MEX file contains a dual interface:
 
 // 1) The default (GERAD) interface is:
@@ -54,7 +62,7 @@ using namespace std;
 
 //Function handle structure
 #define FLEN 128 /* max length of user function name */
-#define MAXRHS 3 /* max nrhs for user function */
+#define MAXRHS 4 /* max nrhs for user function */
 typedef struct {
     char f[FLEN];
     mxArray *plhs[1];
@@ -90,9 +98,9 @@ extern void utSetInterruptPending(bool);
 
 //Argument Enums (in expected order of arguments)
 #ifdef OPTI_VERSION
-enum {eFUN, eX0, eLB, eUB, eNLCON, eNLRHS, eXTYPE, eOPTS};
+enum {eFUN, eX0, eLB, eUB, eNLCON, eNLRHS, eXTYPE, eOPTS, ePARAM};
 #else //GERAD VERSION
-enum {eFUN, eX0, eLB, eUB, eOPTS};
+enum {eFUN, eX0, eLB, eUB, eOPTS, ePARAM};
 enum {eNLCON, eNLRHS, eXTYPE}; //placeholders
 #endif
 //PRHS Defines
@@ -104,6 +112,7 @@ enum {eNLCON, eNLRHS, eXTYPE}; //placeholders
 #define pNLRHS  prhs[eNLRHS]
 #define pXTYPE  prhs[eXTYPE]
 #define pOPTS   prhs[eOPTS]
+#define pParam  prhs[ePARAM]
 
 //Function Prototypes
 void printSolverInfo();
@@ -144,7 +153,7 @@ public:
 };
 
 /*-----------------------------------------*/
-/*  constructor: creates the signature  */
+/*  constructor: creates the 3 signatures  */
 /*-----------------------------------------*/
 Matlab_Extended_Poll::Matlab_Extended_Poll ( NOMAD::Parameters & p , neighborsFcn * neighbors)
 : Extended_Poll ( p    ) ,
@@ -163,8 +172,8 @@ void Matlab_Extended_Poll::construct_extended_points ( const NOMAD::Eval_Point &
 {
     double *xm;
     char errstr[1024];
-	
-	if ( !x.is_complete() )
+    
+    if ( !x.is_complete() )
     {
         mexWarnMsgTxt("construct_extended_points:  bad extended poll center\n%sExiting NOMAD...\n\n");
         //Force exit
@@ -172,7 +181,7 @@ void Matlab_Extended_Poll::construct_extended_points ( const NOMAD::Eval_Point &
     }
     
     
-    xm = mxGetPr(_neighbors->prhs[1]);
+    xm = mxGetPr( _neighbors->prhs[1] );
     int n=_s1->get_n();
     
     for(int i=0;i<n;i++)
@@ -199,7 +208,7 @@ void Matlab_Extended_Poll::construct_extended_points ( const NOMAD::Eval_Point &
     }
     
     
-    size_t nbNPoints=mxGetNumberOfElements(_neighbors->plhs[0])/n;
+    int nbNPoints=static_cast<int>(mxGetNumberOfElements(_neighbors->plhs[0])/n);
     double *xr=mxGetPr(_neighbors->plhs[0]);
     
     for(int i=0;i<nbNPoints;i++)
@@ -216,10 +225,12 @@ void Matlab_Extended_Poll::construct_extended_points ( const NOMAD::Eval_Point &
 
 
 //MATLAB Evaluator Class
-class matlabEval : public NOMAD::Evaluator {
+class matlabEval : public NOMAD::Evaluator
+{
 private:
     usrFcn *fun;
     bool hasSur;
+    // bool hasAdditionalParam;
     int nobj;
     usrFcn *con;
     int ncon;
@@ -247,8 +258,7 @@ public:
     ~matlabEval(void) {}
     
     
-    // evaluating a list of points
-	bool eval_x(std::list<NOMAD::Eval_Point *> &x, const NOMAD::Double &h_max, std::list<bool>					& list_count_eval )
+    bool eval_x(std::list<NOMAD::Eval_Point *> &x, const NOMAD::Double &h_max, std::list<bool> & list_count_eval )
     {
         
 #ifdef OPTI_VERSION
@@ -261,17 +271,16 @@ public:
         
         char errstr[1024];
         bool stop = false;
-        int i, j;
-        size_t m, n;
+        int i, j, m, n;
         double  *fvals;
         mxLogical *sur;
         
-        m=x.size();
+        m=static_cast<int>(x.size());
         n=(*(x.begin()))->size();
         
         if ( m !=list_count_eval.size())
         {
-			mexPrintf("NomadMex Evaluator: inconsistent size of list" );
+            mexPrintf("NomadMex Evaluator: inconsistent size of list" );
             //Force exit
             raise(SIGINT);
             return false;
@@ -279,7 +288,7 @@ public:
         
         
         //Check for Ctrl-C
-        if (utIsInterruptPending())
+        if ( utIsInterruptPending() )
         {
             utSetInterruptPending(false); /* clear Ctrl-C status */
             mexPrintf("\nCtrl-C Detected. Exiting NOMAD...\n\n");
@@ -299,10 +308,10 @@ public:
         
         
         //Add Surrogate if present and requested
-        if(hasSur)
-		{
+        if( hasSur )
+        {
             sur=mxGetLogicals(fun->prhs[fun->xrhs+1]);
-			(x.front()->get_eval_type()==NOMAD::SGTE)? *sur=true:*sur=false;  // all evaluations in a list have the same eval_type
+            ( x.front()->get_eval_type()==NOMAD::SGTE )? *sur=true:*sur=false;  // all evaluations in a list have the same eval_type
         }
         
         
@@ -359,11 +368,11 @@ public:
         
         
         //Assign bb output
-		fvals = mxGetPr(fun->plhs[0]);
-		j=0;
-		for (it_x=x.begin();it_x!=x.end();++it_x,++j)
-			for(i=0;i<(nobj+ncon);i++)
-				(*it_x)->set_bb_output(i,fvals[m*i+j]);
+        fvals = mxGetPr(fun->plhs[0]);
+        j=0;
+        for (it_x=x.begin();it_x!=x.end();++it_x,++j)
+            for(i=0;i<(nobj+ncon);i++)
+                (*it_x)->set_bb_output(i,fvals[m*i+j]);
         
         //Iteration Callback
         if(iterF->enabled)
@@ -414,13 +423,14 @@ public:
     {
         char errstr[1024];
         bool stop = false;
-        int i, n = x.size();
+        int i, n = static_cast<int>(x.size());
         double *xm, *fvals;
         mxLogical *sur;
         count_eval = true; //mexErrMsgTxt will kill MEX
         
         //Check for Ctrl-C
-        if (utIsInterruptPending()) {
+        if ( utIsInterruptPending() )
+        {
             utSetInterruptPending(false); /* clear Ctrl-C status */
             mexPrintf("\nCtrl-C Detected. Exiting NOMAD...\n\n");
             count_eval = false;
@@ -432,24 +442,30 @@ public:
         xm = mxGetPr(fun->prhs[fun->xrhs]);
         for(i=0;i<n;i++)
             xm[i] = x[i].value();
+
         //Add Surrogate if present and requested
-        if(hasSur) {
+        if( hasSur )
+        {
             sur=mxGetLogicals(fun->prhs[fun->xrhs+1]);
-			(x.get_eval_type()==NOMAD::SGTE)? *sur=true:*sur=false;
+            (x.get_eval_type()==NOMAD::SGTE)? *sur=true:*sur=false;
         }
+        
         //Call MATLAB Objective
-        try {
+        try
+        {
             mexCallMATLAB(1, fun->plhs, fun->nrhs, fun->prhs, fun->f);
         }
         //Note if these errors occur it is due to errors in MATLAB code, no way to recover?
-        catch(exception &e) {
+        catch(exception &e)
+        {
             sprintf(errstr,"Unrecoverable Error from Objective / Blackbox Callback:\n%sExiting NOMAD...\n\n",e.what());
             mexWarnMsgTxt(errstr);
             //Force exit
             raise(SIGINT);
             return false;
         }
-        catch(...) {
+        catch(...)
+        {
             mexPrintf("Unrecoverable Error from Objective / Blackbox Callback, Exiting NOMAD...\n\n");
             //Force exit
             raise(SIGINT);
@@ -458,21 +474,24 @@ public:
         
 #ifdef OPTI_VERSION
         //Check we got the correct number back
-        if(mxGetM(fun->plhs[0]) != nobj)
+        if( mxGetM(fun->plhs[0]) != nobj )
             mexErrMsgTxt("Incorrect number of elements returned from the objective function");
+        
         //Set Objective (Or multi-objective)
         fvals = mxGetPr(fun->plhs[0]);
-        for(i=0;i<nobj;i++)
-            x.set_bb_output(i,fvals[i]);
+        for( i=0 ; i<nobj ; i++ )
+            x.set_bb_output( i,fvals[i] );
         
         //Constraint Evaluation
-        if(ncon) {
+        if( ncon )
+        {
             con->plhs[0] = NULL;
             xm = mxGetPr(con->prhs[con->xrhs]);
             for(i=0;i<n;i++)
                 xm[i] = x[i].value();
             //Call MATLAB Constraint
-            try {
+            try
+            {
                 mexCallMATLAB(1, con->plhs, con->nrhs, con->prhs, con->f);
             }
             catch(...)
@@ -485,18 +504,20 @@ public:
             //Check we got the correct number back
             if(mxGetM(con->plhs[0]) != ncon)
                 mexErrMsgTxt("Incorrect number of elements returned from nonlinear constraint function");
+            
             //Set Constraints
             double *cons = mxGetPr(con->plhs[0]);
             for(i=0,j=nobj;i<ncon;i++,j++)
                 x.set_bb_output(j,cons[i] - con->nlrhs[i]); //subtract nlrhs
+            
             // Clean up LHS Ptr
             mxDestroyArray(con->plhs[0]);
         }
 #else //GERAD VERSION
         //Check we got the correct number of elements back
-        if(mxGetNumberOfElements(fun->plhs[0]) > nobj+ncon)
+        if( mxGetNumberOfElements(fun->plhs[0]) > nobj+ncon )
             mexWarnMsgTxt("Black box returns more elements than required. Please provide a BB_OUTPUT_TYPE consistent with your black box function");
-        else if(mxGetNumberOfElements(fun->plhs[0]) < nobj+ncon)
+        else if( mxGetNumberOfElements(fun->plhs[0]) < nobj+ncon )
         {
             mexPrintf("Insufficient outputs provided by the black box function. Exiting NOMAD...\n\n");
             raise(SIGINT);
@@ -572,13 +593,11 @@ public:
     {
         return mEval->eval_x(x,h_max,count_eval);
     }
-
-   //Function + Constraint Information
+    //Function + Constraint Information
     bool eval_x(std::list<NOMAD::Eval_Point *> &x, const NOMAD::Double &h_max, std::list<bool> & list_count_eval )
     {
         return mEval->eval_x(x,h_max,list_count_eval);
     }
-
 };
 
 //cout Redirection
@@ -591,26 +610,28 @@ public:
     }
 private:
     enum { s_size = 1024 }; //not sure on this size
-	char m_buffer[s_size];
-	int_type overflow(int_type c)
-	{
-		if (!traits_type::eq_int_type(c, traits_type::eof())) {
-			*pptr() = traits_type::to_char_type(c);
-			pbump(1);
-		}
-		return sync() != -1 ? traits_type::not_eof(c) : traits_type::eof();
-	}
-    
-	int sync() {
-		*pptr() = 0;
-		mexPrintf(pbase());
+    char m_buffer[s_size];
+    int_type overflow(int_type c)
+    {
+        if (!traits_type::eq_int_type(c, traits_type::eof()))
+        {
+            *pptr() = traits_type::to_char_type(c);
+            pbump(1);
+        }
+        return sync() != -1 ? traits_type::not_eof(c) : traits_type::eof();
+    }
+    
+    int sync()
+    {
+        *pptr() = 0;
+        mexPrintf(pbase());
         mexEvalString("drawnow;");
-		setp(m_buffer, m_buffer + s_size - 2);
-		return 0;
-	}
+        setp(m_buffer, m_buffer + s_size - 2);
+        return 0;
+    }
 };
 
-// make the buffer static to have a single buffer when nested nomad optimizations
+
 static printfbuf buf;
 
 // Main Entry Function
@@ -623,7 +644,7 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     char *xtype = NULL;
     
     //Outputs Args
-	double *exitflag, *iter, *nfval;
+    double *exitflag, *iter, *nfval;
     
     //Internal Vars
     size_t ndec;
@@ -633,7 +654,7 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     neighborsFcn neighborsF;
     
     //Check user inputs
-    if(!checkInputs(prhs,nrhs,plhs,nlhs))
+    if( !checkInputs(prhs,nrhs,plhs,nlhs) )
         return;
     
     //Redirect cout
@@ -646,9 +667,12 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     NOMAD::Point px0;
     NOMAD::Double *nx0;
     NOMAD::stop_type stopflag;
+
     //Evaluator Vars
     matlabEval *mSEval = NULL;
     matlabMEval *mBEval = NULL;
+
+    
     // Extended Poll Vars
     Matlab_Extended_Poll *mEP = NULL;
     
@@ -663,37 +687,39 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     ndec = mxGetNumberOfElements(pX0);
     
     //Get Blackbox / Objective Function Handle
-    if (mxIsChar(pFUN))
+    if ( mxIsChar(pFUN) )
     {
-        if(mxGetString(pFUN, fun.f, FLEN) != 0)
+        if( mxGetString(pFUN, fun.f, FLEN) != 0 )
             mexErrMsgTxt("error reading objective name string");
         fun.nrhs = 1;
         fun.xrhs = 0;
-    } else
+    }
+    else
     {
         fun.prhs[0] = (mxArray*)pFUN;
         strcpy(fun.f, "feval");
         fun.nrhs = 2;
         fun.xrhs = 1;
     }
-    fun.prhs[fun.xrhs] = mxCreateDoubleMatrix(ndec, 1, mxREAL); //x
+    fun.prhs[fun.xrhs] = mxCreateDoubleMatrix( ndec, 1, mxREAL ); //x
     
     //Get x0
     x0 = mxGetPr(pX0);
     
     //Get xtype
-    if(nrhs > eXTYPE && !mxIsEmpty(pXTYPE))
+    if( nrhs > eXTYPE && !mxIsEmpty(pXTYPE) )
         xtype = mxArrayToString(pXTYPE);
     
     //Get MEX Options if specified
-    if(nrhs > eOPTS && !mxIsEmpty(pOPTS)) {
-        if(mxGetField(pOPTS,0,"display_degree") && !mxIsEmpty(mxGetField(pOPTS,0,"display_degree")))
+    if( nrhs > eOPTS && !mxIsEmpty(pOPTS) )
+    {
+        if( mxGetField(pOPTS,0,"display_degree") && !mxIsEmpty(mxGetField(pOPTS,0,"display_degree")) )
             printLevel = (int)*mxGetPr(mxGetField(pOPTS,0,"display_degree"));
-        if(mxGetField(pOPTS,0,"param_file") && !mxIsEmpty(mxGetField(pOPTS,0,"param_file")))
+        if( mxGetField(pOPTS,0,"param_file") && !mxIsEmpty(mxGetField(pOPTS,0,"param_file")) )
             paramfile = mxArrayToString(mxGetField(pOPTS,0,"param_file"));
-        if(mxGetField(pOPTS,0,"bb_output_type") && !mxIsEmpty(mxGetField(pOPTS,0,"bb_output_type")))
+        if( mxGetField(pOPTS,0,"bb_output_type") && !mxIsEmpty(mxGetField(pOPTS,0,"bb_output_type")) )
             bb_out_type = mxGetField(pOPTS,0,"bb_output_type");
-        if(mxGetField(pOPTS,0,"iterfun") && !mxIsEmpty(mxGetField(pOPTS,0,"iterfun")))
+        if( mxGetField(pOPTS,0,"iterfun") && !mxIsEmpty(mxGetField(pOPTS,0,"iterfun")) )
         {
             iterF.prhs[0] = (mxArray*)mxGetField(pOPTS,0,"iterfun");
             strcpy(iterF.f, "feval");
@@ -702,7 +728,7 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
             iterF.prhs[2] = mxCreateDoubleMatrix(1,1,mxREAL);
             iterF.prhs[3] = mxCreateDoubleMatrix(ndec,1,mxREAL);
         }
-        // This is for categorical variables
+        
         if(mxGetField(pOPTS,0,"neighbors_mat") && !mxIsEmpty(mxGetField(pOPTS,0,"neighbors_mat")))
         {
             strcpy(neighborsF.f, "feval");
@@ -712,22 +738,27 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
         }
         
     }
-    
+
     
     //Setup ndec
     p.set_DIMENSION((int)ndec);
+    
     //Warn if >1000
-    if(ndec > 1000 && printLevel) {
+    if(ndec > 1000 && printLevel)
+    {
         sprintf(errstr,"Warning: NOMAD is designed for problems with less than 1000 variables. Your model has %d.\nWhile unlikely, it is possible that NOMAD may not perform as intended on this problem.",static_cast<int>(ndec));
         mexWarnMsgTxt(errstr);
     }
     
     //Setup Lower Bounds
-    if(nrhs > eLB && !mxIsEmpty(pLB)) {
+    if( nrhs > eLB && !mxIsEmpty(pLB) )
+    {
         NOMAD::Point ptLB;
         NOMAD::Double *dLB = new NOMAD::Double[ndec];
         lb = mxGetPr(pLB);
-        for(i=0;i<ndec;i++) {
+        
+        for(i=0;i<ndec;i++)
+        {
             if(!mxIsInf(lb[i])) //if not initialized will not be used
                 dLB[i] = lb[i];
         }
@@ -735,13 +766,15 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
         p.set_LOWER_BOUND(ptLB);
         delete [] dLB;
     }
+    
     //Setup Upper Bounds
-    if(nrhs > eUB && !mxIsEmpty(pUB))
+    if( nrhs > eUB && !mxIsEmpty(pUB) )
     {
         NOMAD::Point ptUB;
         NOMAD::Double *dUB = new NOMAD::Double[ndec];
         ub = mxGetPr(pUB);
-        for(i=0;i<ndec;i++) {
+        for(i=0;i<ndec;i++)
+        {
             if(!mxIsInf(ub[i])) //if not initialized will not be used
                 dUB[i] = ub[i];
         }
@@ -752,10 +785,11 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     
     //Setup x0
     nx0 = new NOMAD::Double[ndec];
+    
 #ifdef OPTI_VERSION
     double xl, xu;
     //If integer variables declared, need to ensure x0[i] is an integer
-    if(xtype)
+    if( xtype )
     {
         for(i=0;i<ndec;i++)
         {
@@ -773,17 +807,22 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
                 case 'i':
                 case 'b':
                     xl = floor(x0[i]); //First round is a floor
+                    
                     //If lower bounds exist
-                    if(lb) {
+                    if( lb )
+                    {
                         //if lower bound broken
-                        if(xl < lb[i]) {
+                        if( xl < lb[i] )
+                        {
                             xu = ceil(x0[i]);
                             //If upper bounds exist, check bound directions
-                            if(ub && xu > ub[i]) { //if broken, no integer x0 exists
+                            if( ub && xu > ub[i] )
+                            { //if broken, no integer x0 exists
                                 sprintf(errstr,"x0[%d] cannot be rounded to an integer value between lb: %g, ub %g",i,lb[i],ub[i]);
                                 mexErrMsgTxt(errstr);
                             }
-                            if(xu != x0[i]) { //If we changed something, warn user
+                            if( xu != x0[i] )
+                            { //If we changed something, warn user
                                 sprintf(errstr,"x0[%d] was rounded up to %g to suit NOMAD interface",i,xu);
                                 mexWarnMsgTxt(errstr);
                             }
@@ -791,8 +830,10 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
                             nx0[i] = xu;
                         }
                         //Floor value did not break lower bounds, value OK
-                        else {
-                            if(xl != x0[i]) { //If we changed something, warn user
+                        else
+                        {
+                            if( xl != x0[i] )
+                            { //If we changed something, warn user
                                 sprintf(errstr,"x0[%d] was rounded down to %g to suit NOMAD interface",i,xl);
                                 mexWarnMsgTxt(errstr);
                             }
@@ -802,7 +843,8 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
                     }
                     //No lower bounds, floor value assumed OK
                     else {
-                        if(xl != x0[i]) { //If we changed something, warn user
+                        if( xl != x0[i] )
+                        { //If we changed something, warn user
                             sprintf(errstr,"x0[%d] was rounded down to %g to suit NOMAD interface",i,xl);
                             mexWarnMsgTxt(errstr);
                         }
@@ -820,9 +862,11 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
         }
     }
     //Else user start position within bounds
-    else {
-        for(i=0;i<ndec;i++) {
-            if(lb && x0[i] < lb[i])
+    else
+    {
+        for(i=0;i<ndec;i++)
+        {
+            if( lb && x0[i] < lb[i] )
                 nx0[i] = lb[i];
             else if(ub && x0[i] > ub[i])
                 nx0[i] = ub[i];
@@ -841,24 +885,30 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     
 #ifdef OPTI_VERSION
     //Setup Nonlinear Constraints
-    if(nrhs > eNLCON && !mxIsEmpty(pNLCON)) {
-        if (mxIsChar(pNLCON)) {
+    if( nrhs > eNLCON && !mxIsEmpty(pNLCON) )
+    {
+        if ( mxIsChar(pNLCON) )
+        {
             if(mxGetString(pNLCON, con.f, FLEN) != 0)
                 mexErrMsgTxt("error reading constraint name string");
             con.nrhs = 1;
             con.xrhs = 0;
-        } else {
+        }
+        else
+        {
             con.prhs[0] = (mxArray*)pNLCON;
             strcpy(con.f, "feval");
             con.nrhs = 2;
             con.xrhs = 1;
         }
         con.prhs[con.xrhs] = mxCreateDoubleMatrix(ndec, 1, mxREAL); //x
-        if(nrhs < eNLRHS+1 || mxIsEmpty(pNLRHS)) {//we will default to <= 0
+        if(nrhs < eNLRHS+1 || mxIsEmpty(pNLRHS))
+        {//we will default to <= 0
             ncon = -1;
             con.nlrhs = NULL;
         }
-        else {
+        else
+        {
             ncon = (int)mxGetNumberOfElements(pNLRHS);
             con.nlrhs = mxGetPr(pNLRHS);
         }
@@ -875,28 +925,29 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     
 #endif //GERAD Version does not have a separate constraint handler and handles input and output types using options
     
-    // evaluation tags and numbers are reset
-	NOMAD::Eval_Point::reset_tags_and_bbes();
+    // Make sure that evaluation numbers are reset
+    NOMAD::Eval_Point::reset_tags_and_bbes();
     
-    // Reset the random number generator for each mads run.
     // The seed will always be to its default value
     NOMAD::RNG::reset_seed_to_default();
     
     //Set User Options
-    if(nrhs > eOPTS && !mxIsEmpty(pOPTS))
+    if( nrhs > eOPTS && !mxIsEmpty(pOPTS) )
         setNOMADopts(p,pOPTS);
     else
         setNOMADopts(p,NULL);
     
     //If the user has specified a parameter file to read, see if it exists, and if so, read and parse it.
-    if(paramfile)
+    if( paramfile )
     {
         FILE *pFile = fopen(paramfile,"r");
-        if(pFile==NULL) {
+        if(pFile==NULL)
+        {
             sprintf(errstr,"Cannot open parameter file: %s\n\nEnsure it exists!",paramfile);
             mexErrMsgTxt(errstr);
         }
-        else{
+        else
+        {
             fclose(pFile); //close file pointer (we don't need it)
             try
             {
@@ -915,7 +966,8 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     {
         p.check();
     }
-    catch(exception &e) {
+    catch(exception &e)
+    {
         sprintf(errstr,"NOMAD Parameter Error:\n\n%s",e.what());
         mexErrMsgTxt(errstr);
     }
@@ -924,21 +976,36 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
 #ifndef OPTI_VERSION
     nobj=p.get_nb_obj();
     ncon=(int)p.get_bb_output_type().size()-nobj;
-    if (p.has_sgte()) {
+    if ( p.has_sgte() )
+    {
         fun.prhs[fun.xrhs+1] = mxCreateLogicalMatrix(1,1); //extra logical indicating surrogate or not
         fun.nrhs++;
     }
 #endif
+
+    
+    // Get additional bb param if specified
+    if ( nrhs > ePARAM && ! mxIsEmpty(pParam) )
+    {
+        fun.nrhs++;
+        
+        if ( p.has_sgte() )
+            fun.prhs[fun.xrhs+2]=mxDuplicateArray(pParam);
+        else
+            fun.prhs[fun.xrhs+1]=mxDuplicateArray(pParam);
+    }
+
     
     //Print Header
-    if(printLevel) {
+    if(printLevel)
+    {
         mexPrintf("\n------------------------------------------------------------------\n");
         mexPrintf(" This is NOMAD v%s\n",NOMAD::VERSION.c_str());
-        mexPrintf(" Authors: M. Abramson, C. Audet, G. Couture, J. Dennis,  S. Le Digabel, C. Tribes\n");
+        mexPrintf(" Authors: C. Audet, S. Le Digabel and C. Tribes\n");
 #ifdef OPTI_VERSION
         mexPrintf(" MEX Interface (OPTI) J. Currie 2012\n\n");
 #else
-        mexPrintf(" MEX Interface (GERAD) J. Currie 2012 and C.Tribes 2015 \n\n");
+        mexPrintf(" MEX Interface (GERAD) J. Currie 2012 and C. Tribes 2016 \n\n");
 #endif
         mexPrintf(" Problem Properties:\n");
         mexPrintf(" # Decision Variables:               %4d\n",ndec);
@@ -952,7 +1019,7 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     //Create evaluator and run mads based on number of objectives
     try
     {
-        if(nobj > 1)
+        if( nobj > 1 )
         {
             mBEval = new matlabMEval(p,&fun,nobj,&con,ncon,&iterF); //Bi-Objective Evaluator
             
@@ -999,8 +1066,6 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
             mxFree(xtype);
         xtype = NULL;
         
-        delete mads;
-        
         sprintf(errstr,"NOMAD Run Error:\n\n%s",e.what());
         mexErrMsgTxt(errstr);
     }
@@ -1008,99 +1073,120 @@ void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     if(printLevel)
         mexPrintf("------------------------------------------------------------------\n");
     
-    //Obtain Solution
-	
-	
-	//Create Outputs
+    
+    //Create Outputs
     plhs[2] = mxCreateDoubleMatrix(1,1, mxREAL);
     plhs[3] = mxCreateDoubleMatrix(1,1, mxREAL);
     plhs[4] = mxCreateDoubleMatrix(1,1, mxREAL);
+    plhs[5] = mxCreateDoubleMatrix(ndec,1, mxREAL);
+    plhs[6] = mxCreateDoubleMatrix(ndec,1, mxREAL);
+    
     exitflag = mxGetPr(plhs[2]);
     iter = mxGetPr(plhs[3]);
     nfval = mxGetPr(plhs[4]);
-	if (nobj>1)
-	{
-		
-		NOMAD::Pareto_Front * pareto_front=mads->get_pareto_front();
+    
+    double *mesh_size=mxGetPr(plhs[5]);
+    
+    //Save mesh size
+    NOMAD::Point ms( static_cast<int>(ndec) );
+    p.get_signature()->get_mesh()->get_delta(ms);
+    for(i=0;i<ndec;i++)
+        mesh_size[i] = ms[i].value();
+
+    double *poll_size=mxGetPr(plhs[6]);
+    //Save poll size
+    NOMAD::Point ps( static_cast<int>(ndec) );
+    p.get_signature()->get_mesh()->get_Delta(ps);
+    for(i=0;i<ndec;i++)
+        poll_size[i] = ps[i].value();
+    
+    if (nobj>1)
+    {
+        
+        NOMAD::Pareto_Front * pareto_front=mads->get_pareto_front();
         
-		if ( pareto_front )
-		{
-			
-			int nb_pareto_pts = pareto_front->size();
-			plhs[0] = mxCreateDoubleMatrix(ndec,nb_pareto_pts, mxREAL);
-			plhs[1] = mxCreateDoubleMatrix(nobj,nb_pareto_pts, mxREAL);
-			double *x = mxGetPr(plhs[0]);
-			double *fval = mxGetPr(plhs[1]);
+        if ( pareto_front )
+        {
             
-			const NOMAD::Eval_Point * cur = pareto_front->begin();
-			int i=0;
-			while ( cur )
-			{
-				
-				if ( cur->is_eval_ok() && cur->is_feasible ( p.get_h_min() ) )
-				{
-					const std::list<int>           & index_obj = p.get_index_obj();
-					std::list<int>::const_iterator   it , end  = index_obj.end();
-					const NOMAD::Point             & bbo       = cur->get_bb_outputs();
-					int                              j         = 0;
-					NOMAD::Point multi_obj ( static_cast<int>(index_obj.size()) );
-					
-					for ( it = index_obj.begin() ; it != end ; ++it,j++ )
-						fval[nobj*i+j] = bbo[*it].value();
-					
-					for(j=0;j<ndec;j++)
-						x[ndec*i+j] = (*cur)[j].value();
-				}
-				cur = pareto_front->next();
-				i++;
-			}
-			*exitflag = getStatus(stopflag);
+            int nb_pareto_pts = pareto_front->size();
+            plhs[0] = mxCreateDoubleMatrix(ndec,nb_pareto_pts, mxREAL);
+            plhs[1] = mxCreateDoubleMatrix(nobj,nb_pareto_pts, mxREAL);
+            double *x = mxGetPr(plhs[0]);
+            double *fval = mxGetPr(plhs[1]);
             
-		}
-		else
-		{
-			stopflag = (NOMAD::stop_type)10;
-			*exitflag = -1; //No solution
-		}
-		//Save Status & Iterations
+            const NOMAD::Eval_Point * cur = pareto_front->begin();
+            int i=0;
+            while ( cur )
+            {
+                
+                if ( cur->is_eval_ok() && cur->is_feasible ( p.get_h_min() ) )
+                {
+                    const std::list<int>           & index_obj = p.get_index_obj();
+                    std::list<int>::const_iterator   it , end  = index_obj.end();
+                    const NOMAD::Point             & bbo       = cur->get_bb_outputs();
+                    int                              j         = 0;
+                    NOMAD::Point multi_obj ( static_cast<int>(index_obj.size()) );
+                    
+                    for ( it = index_obj.begin() ; it != end ; ++it,j++ )
+                        fval[nobj*i+j] = bbo[*it].value();
+                    
+                    for(j=0;j<ndec;j++)
+                        x[ndec*i+j] = (*cur)[j].value();
+                }
+                cur = pareto_front->next();
+                i++;
+            }
+            *exitflag = getStatus(stopflag);
+            
+        }
+        else
+        {
+            stopflag = (NOMAD::stop_type)10;
+            *exitflag = -1; //No solution
+        }
+        //Save Status & Iterations
         
-		*iter = mads->get_stats().get_iterations();
-		*nfval = mads->get_stats().get_bb_eval();
-		
-	}
-	else
-	{
+        *iter = mads->get_stats().get_iterations();
+        *nfval = mads->get_stats().get_bb_eval();
         
-		plhs[0] = mxCreateDoubleMatrix(ndec,1, mxREAL);
-		plhs[1] = mxCreateDoubleMatrix(1,1, mxREAL); //even bi-objectives return 1 fval
-		double *x = mxGetPr(plhs[0]);
-		double *fval = mxGetPr(plhs[1]);
-		
-		const NOMAD::Eval_Point *bestSol = mads->get_best_feasible();
-		if(bestSol == NULL)
-		{
-			bestSol = mads->get_best_infeasible();
-			//manually set as infeasible (no infeasible stop flag)
-			stopflag = (NOMAD::stop_type)10;
-		}
-		if(bestSol == NULL)
-			*exitflag = -1; //No solution
+    }
+    else
+    {
+        
+        plhs[0] = mxCreateDoubleMatrix(ndec,1, mxREAL);
+        plhs[1] = mxCreateDoubleMatrix(1,1, mxREAL);
+        double *x = mxGetPr(plhs[0]);
+        double *fval = mxGetPr(plhs[1]);
+        
+        
+        const NOMAD::Eval_Point *bestSol = mads->get_best_feasible();
+        if(bestSol == NULL)
+        {
+            bestSol = mads->get_best_infeasible();
+            //manually set as infeasible (no infeasible stop flag)
+            stopflag = (NOMAD::stop_type)10;
+        }
+        if(bestSol == NULL)
+            *exitflag = -1; //No solution
         
-		//If we have a solution, save it
-		if(*exitflag != -1) {
-			//Save x
-			NOMAD::Point pt(*bestSol);
-			for(i=0;i<ndec;i++)
-				x[i] = pt[i].value();
-			//Save fval
-			*fval = bestSol->get_f().value();
+        //If we have a solution, save it
+        if(*exitflag != -1)
+        {
+            //Save x
+            NOMAD::Point pt(*bestSol);
+            for(i=0;i<ndec;i++)
+                x[i] = pt[i].value();
+            //Save fval
+            *fval = bestSol->get_f().value();
             
-			//Save Status & Iterations
-			*exitflag = getStatus(stopflag);
-			*iter = mads->get_stats().get_iterations();
-			*nfval = mads->get_stats().get_bb_eval();
-		}
-	}
+            //Save Status & Iterations
+            *exitflag = getStatus(stopflag);
+            *iter = mads->get_stats().get_iterations();
+            *nfval = mads->get_stats().get_bb_eval();
+            
+        }
+    }
+    
     
     //Return error control to default
     mexSetTrapFlag(0);
@@ -1132,43 +1218,48 @@ vector<NOMAD::bb_output_type> detRetTypes(usrFcn *fun, mxArray *out_types, int *
     //Test Blackbox / Objective Evaluation
     fun->plhs[0] = NULL;
     memcpy(mxGetPr(fun->prhs[fun->xrhs]), x0, n * sizeof(double));
+    
     //Call MATLAB Objective
     stat = mexCallMATLAB(1, fun->plhs, fun->nrhs, fun->prhs, fun->f);
     if(stat)
         mexErrMsgTxt("Error calling Objective Function!");
     //Ensure we have a real column
-    if(mxGetN(fun->plhs[0]) > mxGetM(fun->plhs[0]))
+    if( mxGetN(fun->plhs[0]) > mxGetM(fun->plhs[0]) )
         mexErrMsgTxt("The objective function must return a scalar or column vector");
-    if(mxIsSparse(fun->plhs[0]) || mxIsComplex(fun->plhs[0]))
+    if( mxIsSparse(fun->plhs[0]) || mxIsComplex(fun->plhs[0]) )
         mexErrMsgTxt("The objective function must return a real, dense, vector");
     
     //Ensure 1 or 2 rows (max of bi-objective)
     *nobj = (int)mxGetNumberOfElements(fun->plhs[0]);
-    if(*nobj < 1 || *nobj > 2)
+    if( *nobj < 1 || *nobj > 2 )
         mexErrMsgTxt("The objective function must return a scalar or 2x1 vector (bi-objective)");
+    
     // Clean up LHS Ptr
     mxDestroyArray(fun->plhs[0]);
     
     //Test Constraint Evaluation
-    if(*ncon) {
+    if( *ncon )
+    {
         con->plhs[0] = NULL;
         memcpy(mxGetPr(con->prhs[con->xrhs]), x0, n * sizeof(double));
         //Call MATLAB Objective
         stat = mexCallMATLAB(1, con->plhs, con->nrhs, con->prhs, con->f);
-        if(stat)
+        if( stat )
             mexErrMsgTxt("Error calling Constraint Function!");
         //Ensure we have a real column
-        if(mxGetN(con->plhs[0]) > mxGetM(con->plhs[0]))
+        if( mxGetN(con->plhs[0]) > mxGetM(con->plhs[0]) )
             mexErrMsgTxt("The constraint function must return a scalar or column vector");
-        if(mxIsSparse(con->plhs[0]) || mxIsComplex(con->plhs[0]))
+        if( mxIsSparse(con->plhs[0]) || mxIsComplex(con->plhs[0]) )
             mexErrMsgTxt("The constraint function must return a real, dense, vector");
         
         //If we have nlrhs, check against returned vector
-        if(*ncon > 0) {
+        if(*ncon > 0)
+        {
             if(mxGetM(con->plhs[0]) != *ncon)
                 mexErrMsgTxt("The vector returned from nlcon is not the same length as nlrhs!");
         }
-        else {
+        else
+        {
             *ncon = (int)mxGetM(con->plhs[0]);
             con->nlrhs = mxGetPr(mxCreateDoubleMatrix(*ncon,1, mxREAL)); //create dummy rhs
         }
@@ -1182,13 +1273,15 @@ vector<NOMAD::bb_output_type> detRetTypes(usrFcn *fun, mxArray *out_types, int *
     for(i=0;i<*nobj;i++)
         varType[i] = NOMAD::OBJ;
     //If the user has set bb_output_type use it to set constraint types
-    if(out_types) {
-        if(!mxIsCell(out_types))
+    if( out_types )
+    {
+        if( !mxIsCell(out_types) )
             mexErrMsgTxt("Parameter bb_output_type must be a cell array of strings.");
-        if(mxGetNumberOfElements(out_types) != *ncon)
+        if( mxGetNumberOfElements(out_types) != *ncon )
             mexErrMsgTxt("You must specify a bb_output_type for each element returned by the constraint function (not objective).");
         //Process each element in the array
-        for(i=0,j=*nobj;i<*ncon;i++,j++){
+        for(i=0,j=*nobj;i<*ncon;i++,j++)
+        {
             mxArray *ctype = mxGetCell(out_types,i);
             if(!mxIsChar(ctype))
                 mexErrMsgTxt("An element in the bb_output_type paramter is not a string");
@@ -1243,7 +1336,8 @@ NOMAD::bb_output_type getOutEnum(char *str)
 void lower(char *str)
 {
     int i = 0;
-    while(str[i]) {
+    while(str[i])
+    {
         str[i] = tolower(str[i]);
         i++;
     }
@@ -1255,14 +1349,15 @@ vector<NOMAD::bb_input_type> detInTypes(char *xtype, size_t n)
     int i;
     char msgbuf[1024];
     vector<NOMAD::bb_input_type> varType(n);
-    for(i=0;i<n;i++) {
+    for(i=0;i<n;i++)
+    {
         switch(tolower(xtype[i]))
         {
             case 'c':
-            	varType[i] = NOMAD::CATEGORICAL; break;
+                varType[i] = NOMAD::CATEGORICAL; break;
             case 'r':
                 varType[i] = NOMAD::CONTINUOUS; break;
-                mexErrMsgTxt("Please specify continuous (real) variables using 'c' when using the OPTI version");
+                mexErrMsgTxt("Please specify continuous (real) variables using 'c' when using the OPTI version");  // C-> categorical (not implemented in Matlab version) R-> continuous/real !
             case 'i':
                 varType[i] = NOMAD::INTEGER; break;
             case 'b':
@@ -1282,7 +1377,8 @@ int checkInputs(const mxArray *prhs[], int nrhs, mxArray *plhs[], int nlhs)
     char *str = NULL;
     
     //MEX Display Version (OPTI compatibility)
-    if (nrhs < 1) {
+    if (nrhs < 1)
+    {
         if(nlhs < 1)
             printSolverInfo();
         else
@@ -1292,58 +1388,65 @@ int checkInputs(const mxArray *prhs[], int nrhs, mxArray *plhs[], int nlhs)
     
     //Redirect cout
     std::streambuf *cout_sbuf = std::cout.rdbuf(); //keep existing buffer
-	std::cout.rdbuf(&buf); //redirect buffer
+    std::cout.rdbuf(&buf); //redirect buffer
     
     //NOMAD Display
     NOMAD::Display out (std::cout);
     
     //Check for display on options passed as structure
-    if(nrhs == 1 && mxIsStruct(prhs[0])) {
+    if(nrhs == 1 && mxIsStruct(prhs[0]))
+    {
         int i, no = mxGetNumberOfFields(prhs[0]);
         const char *field;
         std::list<std::string> ls;
         //For all fields, display nomad help
-        for(i=0;i<no;i++) {
+        for(i=0;i<no;i++)
+        {
             field = mxGetFieldNameByNumber(prhs[0],i);
             string st(field);
             ls.push_back ( st );
         }
-        if(no>0) {
+        if(no>0)
+        {
             //NOMAD Display
-			NOMAD::Parameters p ( out );
+            NOMAD::Parameters p ( out );
             p.help(ls);
         }
-		std::cout.rdbuf(cout_sbuf); //Return cout to initial buffer
+        std::cout.rdbuf(cout_sbuf); //Return cout to initial buffer
         return 0;
     }
     
     //Check for Version / Information / Help Request
-    if(nrhs == 1 && mxIsChar(prhs[0])) {
+    if(nrhs == 1 && mxIsChar(prhs[0]))
+    {
         str = mxArrayToString(prhs[0]);
         //Check for Info Request
-        if(!strcmp(str,"-I") || !strcmp(str,"-INFO") || !strcmp(str,"-i") || !strcmp(str,"-info")) {
+        if(!strcmp(str,"-I") || !strcmp(str,"-INFO") || !strcmp(str,"-i") || !strcmp(str,"-info"))
+        {
             //Information to Print
             mexPrintf("\nNOMAD Blackbox Optimization Software, v%s\n\n",NOMAD::VERSION.c_str());
-            mexPrintf("Copyright (C) 2001-2015\n");
-            mexPrintf("Mark A. Abramson     - The Boeing Company\n");
-            mexPrintf("Charles Audet        - Ecole Polytechnique de Montreal\n");
-            mexPrintf("Gilles Couture       - Ecole Polytechnique de Montreal\n");
-            mexPrintf("John E. Dennis, Jr.  - Rice University\n");
-            mexPrintf("Sebastien Le Digabel - Ecole Polytechnique de Montreal\n");
-			mexPrintf("Christophe Tribes    - Ecole Polytechnique de Montreal\n\n");
-            mexPrintf("Funded in part by AFOSR and Exxon Mobil.\n\n");
-			mexPrintf("License   : \'%s\'\n",NOMAD::LGPL_FILE.c_str());
-			mexPrintf("User guide: \'%s\'\n",NOMAD::USER_GUIDE_FILE.c_str());
-			mexPrintf("Examples  : \'%s\'\n",NOMAD::EXAMPLES_DIR.c_str());
-			mexPrintf("Tools     : \'%s\'\n\n",NOMAD::TOOLS_DIR.c_str());
-			mexPrintf("Please report NOMAD bugs to nomad@gerad.ca and MEX Interface bugs to jocurrie@aut.ac.nz\n\n");
+            mexPrintf("NOMAD - version %s has been created by {\n",NOMAD::VERSION.c_str());
+            mexPrintf("      Charles Audet        - Ecole Polytechnique de Montreal\n");
+            mexPrintf("      Sebastien Le Digabel - Ecole Polytechnique de Montreal\n");
+            mexPrintf("      Christophe Tribes    - Ecole Polytechnique de Montreal\n}\n\n");
+            mexPrintf("The copyright of NOMAD - version %s is owned by {\n",NOMAD::VERSION.c_str());
+            mexPrintf("      Sebastien Le Digabel - Ecole Polytechnique de Montreal\n");
+            mexPrintf("      Christophe Tribes    - Ecole Polytechnique de Montreal\n}\n\n");
+            mexPrintf("NOMAD version 3 is a new version of Nomad v1 and v2, it has been funded by AFOSR and Exxon Mobil.\n");
+            mexPrintf("Nomad v1 and v2 were created and developed by Mark A. Abramson from The Boeing Company, Charles Audet and Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from Rice University, and were funded by AFOSR and Exxon Mobil.\n\n");
+            mexPrintf("Web       : www.gerad.ca/nomad\n");
+            mexPrintf("License   : \'%s\'\n",NOMAD::LGPL_FILE.c_str());
+            mexPrintf("User guide: \'%s\'\n",NOMAD::USER_GUIDE_FILE.c_str());
+            mexPrintf("Examples  : \'%s\'\n",NOMAD::EXAMPLES_DIR.c_str());
+            mexPrintf("Tools     : \'%s\'\n\n",NOMAD::TOOLS_DIR.c_str());
+            mexPrintf("Please report bugs to nomad@gerad.ca\n\n");
             
             std::cout.rdbuf(cout_sbuf); //Return cout to initial buffer
             return 0;
         }
         //Check for Ver Request
         if(!strcmp(str,"-V") || !strcmp(str,"-v") || !strcmp(str,"-version"))
-		{
+        {
             mexPrintf("NOMAD - version %s - www.gerad.ca/nomad\n\n",NOMAD::VERSION.c_str());
 #ifdef OPTI_VERSION
             mexPrintf("MEX Interface (OPTI) v%s\n",NOMADMEX_VERSION);
@@ -1353,23 +1456,23 @@ int checkInputs(const mxArray *prhs[], int nrhs, mxArray *plhs[], int nlhs)
             
             std::cout.rdbuf(cout_sbuf); //Return cout to initial buffer
             return 0;
-		}
+        }
         //Check for Help Request
         if (strcmp(str,"-H")<0 || strcmp(str,"-HELP")<0 || strcmp(str,"-h")<0 || strcmp(str,"-help")<0 )
-		{
+        {
             NOMAD::Parameters p ( out );
-			std::list<std::string> helpS;
-			const char * toks=" ";
-			char *w = strtok(str,toks) ;
-			for ( w = strtok(NULL,toks) ; w != NULL ; w = strtok(NULL,toks) )
-			{
-				helpS.push_back(w);
-			}
-			p.help (helpS );
+            std::list<std::string> helpS;
+            const char * toks=" ";
+            char *w = strtok(str,toks) ;
+            for ( w = strtok(NULL,toks) ; w != NULL ; w = strtok(NULL,toks) )
+            {
+                helpS.push_back(w);
+            }
+            p.help (helpS );
             
             std::cout.rdbuf(cout_sbuf); //Return cout to initial buffer
             return 0;
-		}
+        }
     }
     
     //Otherwise assume we have a normal problem
@@ -1387,7 +1490,8 @@ int checkInputs(const mxArray *prhs[], int nrhs, mxArray *plhs[], int nlhs)
     ndec = mxGetNumberOfElements(prhs[1]);
     
     //Check Bounds
-    if(nrhs > 2) {
+    if(nrhs > 2)
+    {
         if(!mxIsDouble(pLB) || mxIsComplex(pLB))
             mexErrMsgTxt("lb must be a real double column vector!");
         if(nrhs > 3 && (!mxIsDouble(pUB) || mxIsComplex(pUB)))
@@ -1405,14 +1509,16 @@ int checkInputs(const mxArray *prhs[], int nrhs, mxArray *plhs[], int nlhs)
         mexErrMsgTxt("It appears you may be calling NOMAD using the GERAD NOMAD Syntax - nomad(bb,x0,lb,ub,opts). This is the OPTI NOMAD version and requires nomad(fun,x0,lb,ub,nlcon,nlrhs,xtype,opts).");
     
     //Check Nonlinear Constraint Handle
-    if(nrhs > eNLCON && !mxIsEmpty(pNLCON)) {
+    if(nrhs > eNLCON && !mxIsEmpty(pNLCON))
+    {
         if(!mxIsFunctionHandle(pNLCON) && !mxIsChar(pNLCON))
             mexErrMsgTxt("nlcon must be a function handle or function name!");
         if(nrhs > eNLRHS && (!mxIsDouble(pNLRHS) || mxIsComplex(pNLRHS)))
             mexErrMsgTxt("nlrhs must be a real double column vector!");
     }
     //Check for xtype
-    if(nrhs > eXTYPE && !mxIsEmpty(pXTYPE)) {
+    if(nrhs > eXTYPE && !mxIsEmpty(pXTYPE))
+    {
         if(!mxIsChar(pXTYPE))
             mexErrMsgTxt("The xtype vector must be a char array!");
         if(ndec != mxGetNumberOfElements(pXTYPE))
@@ -1425,7 +1531,8 @@ int checkInputs(const mxArray *prhs[], int nrhs, mxArray *plhs[], int nlhs)
 #endif
     
     //Check Options
-    if(nrhs > eOPTS && !mxIsEmpty(pOPTS)) {
+    if(nrhs > eOPTS && !mxIsEmpty(pOPTS))
+    {
         //Version check
         if(mxIsDouble(pOPTS))
             mexErrMsgTxt("It appears you may be calling NOMAD using the OPTI NOMAD Syntax - nomad(fun,x0,lb,ub,nlcon,nlrhs,xtype,opts). This is the GERAD NOMAD version and requires nomad(bb,x0,lb,ub,opts).");
@@ -1456,28 +1563,34 @@ void setNOMADopts(NOMAD::Parameters &p, const mxArray *opts)
         no = mxGetNumberOfFields(opts);
     
     //For each field, check if it's empty, if not, set it within NOMAD
-    for(i=0;i<no;i++) {
+    for(i=0;i<no;i++)
+    {
         field = mxGetFieldNameByNumber(opts,i);
         value = mxGetFieldByNumber(opts,0,i);
+        
         //Check we don't have an empty or MEX option
-        if(!mxIsEmpty(value) && isNMDOption(field)) {
+        if( !mxIsEmpty(value) && isNMDOption(field) )
+        {
             //Switch on data type
-            switch(mxGetClassID(value))
+            switch( mxGetClassID(value) )
             {
                     
                 case mxDOUBLE_CLASS:
                     m = mxGetNumberOfElements(value);
                     //This interface doesn't write vectors as options
-                    if(m > 1) {
+                    if(m > 1)
+                    {
                         sprintf(strbuf,"This interface does not support vector options for parameter %s. Please provide it as a string",field);
                         mexErrMsgTxt(strbuf);
                     }
                     val = *mxGetPr(value);
                     //Check if we have an integer parameter (I assume this check is ok!)
-                    if(floor(val) == val) {
+                    if(floor(val) == val)
+                    {
                         sprintf(strbuf,"%s %.0f",field,val); doAdd = true; //write with no decimal points and no exponent
                     }
-                    else {//write as double (exponent ok)
+                    else
+                    {//write as double (exponent ok)
                         sprintf(strbuf,"%s %g",field,val); doAdd = true;
                     }
                     break;
@@ -1500,23 +1613,28 @@ void setNOMADopts(NOMAD::Parameters &p, const mxArray *opts)
 #ifdef OPTI_VERSION
                     //Add each string for the specified field
                     m = mxGetNumberOfElements(value);
-                    for(j=0;j<m;j++) {
+                    for(j=0;j<m;j++)
+                    {
                         mxArray *cellopt = mxGetCell(value,j);
-                        if(!mxIsChar(cellopt)) {
+                        if( !mxIsChar(cellopt) )
+                        {
                             sprintf(strbuf,"Element %d in the cell array of paramter %s is not a string",j+1,field);
                             mexErrMsgTxt(strbuf);
                         }
                         //Get the string and create the required option string
                         char *str = mxArrayToString(cellopt);
                         sprintf(strbuf,"%s %s",field,str);
+                        
                         //Add to our set of parameter entries
                         NOMAD::Parameter_Entry *pe = new NOMAD::Parameter_Entry(strbuf);  // pe will be deleted by ~Parameter_Entries()
-                        if(pe->is_ok())
+                        if( pe->is_ok() )
                             entries.insert(pe);
-                        else {
+                        else
+                        {
                             sprintf(strbuf,"Parameter %s has an error",field);
                             mexErrMsgTxt(strbuf);
                         }
+                        
                         //Free local memory at each iteration
                         mxFree(str);
                     }
@@ -1532,24 +1650,25 @@ void setNOMADopts(NOMAD::Parameters &p, const mxArray *opts)
             }
             
             //If we have a valid parameter, add it to our set of entries
-            if(doAdd) {
+            if( doAdd )  {
                 //mexPrintf("NOMAD Option set as: %s\n",strbuf); //enable for debug
                 NOMAD::Parameter_Entry *pe = new NOMAD::Parameter_Entry(strbuf);
-                if(pe->is_ok())
+                if( pe->is_ok() )
                     entries.insert(pe);  // pe will be deleted by ~Parameter_Entries()
                 else
-				{
+                {
                     sprintf(strbuf,"Parameter %s has an error",field);
                     mexErrMsgTxt(strbuf);
                 }
-				
+                
                 doAdd = false;
             }
         }
     }
     //GERAD default bb_output_type if not specified
 #ifndef OPTI_VERSION
-    if(!has_BB_OUTPUT_TYPE) {
+    if( ! has_BB_OUTPUT_TYPE )
+    {
         NOMAD::Parameter_Entry *pe = new NOMAD::Parameter_Entry("BB_OUTPUT_TYPE OBJ");
         entries.insert(pe); // pe will be deleted by ~Parameter_Entries()
     }
@@ -1628,8 +1747,8 @@ void printSolverInfo()
     mexPrintf("\n-----------------------------------------------------------\n");
     mexPrintf(" NOMAD: Nonlinear Optimization using the MADS Algorithm [v%s]\n",NOMAD::VERSION.c_str());
     mexPrintf("  - Released under the GNU Lesser General Public License: http://www.gnu.org/copyleft/lesser.html\n");
-    mexPrintf("  - Source available from: http://www.gerad.ca/NOMAD/Project/Home.html\n");
+    mexPrintf("  - Source available from: https://www.gerad.ca/nomad/\n");
     
-    mexPrintf("\n MEX Interface J.Currie 2013 (www.i2c2.aut.ac.nz) and C.Tribes 2015 \n");
+    mexPrintf("\n MEX Interface J.Currie 2013 (www.i2c2.aut.ac.nz) and C. Tribes 2015  \n");
     mexPrintf("-----------------------------------------------------------\n");
 }
diff --git a/examples/interfaces/Matlab_MEX/example_categorical/run_nomad.m b/examples/interfaces/Matlab_MEX/example_categorical/run_nomad.m
index c4d169f..3c93d8c 100644
--- a/examples/interfaces/Matlab_MEX/example_categorical/run_nomad.m
+++ b/examples/interfaces/Matlab_MEX/example_categorical/run_nomad.m
@@ -1,7 +1,7 @@
 x0 = [0 100 1 100 ]';
 lb = [-100 0.0 0 0.0  ]';
 ub = [100 10000.0 100 10000]';
-opts = nomadset('display_degree',2,'max_bb_eval',200,'bb_output_type','EB EB OBJ','bb_input_type','[C R C R]','neighbors_mat',@neighbors); 
+opts = nomadset('display_degree',2,'display_all_eval',1,'history_file','history.txt','max_bb_eval',500,'bb_output_type','EB EB OBJ','f_target',0,'bb_input_type','[C R C R]','neighbors_mat',@neighbors); 
 
 % Start optimization
 [x,fval] = nomad(@fun,x0,lb,ub,opts);
diff --git a/examples/interfaces/Matlab_MEX/example_extra_param/bb.m b/examples/interfaces/Matlab_MEX/example_extra_param/bb.m
new file mode 100644
index 0000000..b71bc0a
--- /dev/null
+++ b/examples/interfaces/Matlab_MEX/example_extra_param/bb.m
@@ -0,0 +1,8 @@
+function eval = bb(x,extra_param)
+
+param = [0 ;0];
+if (nargin==2)
+    param=extra_param;
+end
+
+eval=[10*(x(2)-x(1)^2)+param(1); 1 - x(1)+param(2)];
diff --git a/examples/interfaces/Matlab_MEX/example_extra_param/run_nomad.m b/examples/interfaces/Matlab_MEX/example_extra_param/run_nomad.m
new file mode 100644
index 0000000..c7ec81f
--- /dev/null
+++ b/examples/interfaces/Matlab_MEX/example_extra_param/run_nomad.m
@@ -0,0 +1,7 @@
+%% TEST FOR EXTRA BB PARAMETER
+clc
+x0 = [1;1];
+
+bb_extra_param = [ 0 ; 1 ];
+opts = nomadset('display_degree',2,'bb_output_type','OBJ EB');
+[x,fval] = nomad(@bb,x0,[-10;-10],[10;10],opts,bb_extra_param)
diff --git a/examples/interfaces/Matlab_MEX/example_group_variables/param.txt b/examples/interfaces/Matlab_MEX/example_group_variables/param.txt
new file mode 100644
index 0000000..91163e0
--- /dev/null
+++ b/examples/interfaces/Matlab_MEX/example_group_variables/param.txt
@@ -0,0 +1,2 @@
+VARIABLE_GROUP 0 1
+VARIABLE_GROUP 2 3
\ No newline at end of file
diff --git a/examples/interfaces/Matlab_MEX/example_group_variables/test.m b/examples/interfaces/Matlab_MEX/example_group_variables/test.m
new file mode 100644
index 0000000..585abc0
--- /dev/null
+++ b/examples/interfaces/Matlab_MEX/example_group_variables/test.m
@@ -0,0 +1,19 @@
+%% PROBLEM 4 [fval = -2.5]
+
+clc
+fun = @(x)   [-x(1) - x(2) - x(3);
+              (x(2) - 1./2.)*(x(2) - 1./2.) + (x(3) - 1./2.)*(x(3) - 1./2.) - 1/4;
+                x(1) - x(2);
+                x(1) + x(3) + x(4) - 2];          
+ub = [1;10;10;5];
+lb = [0;0;0;0];
+x0 = [0;0;0;0];
+
+opts = []; %not no nomadset just to keep user options
+opts.display_degree = 3;
+opts.bb_output_type = 'OBJ PB PB PB';
+opts.model_search = 'false';
+opts.param_file='param.txt';
+opts.max_bb_eval = 20;
+
+[xr,fval,ef,iter] = nomad(fun,x0,lb,ub,opts)
\ No newline at end of file
diff --git a/examples/interfaces/Matlab_MEX/example_int_variables/param.txt b/examples/interfaces/Matlab_MEX/example_int_variables/param.txt
new file mode 100644
index 0000000..2e03401
--- /dev/null
+++ b/examples/interfaces/Matlab_MEX/example_int_variables/param.txt
@@ -0,0 +1,3 @@
+GRANULARITY 0-0 1
+GRANULARITY 3-3 1
+INITIAL_MESH_SIZE 5
\ No newline at end of file
diff --git a/examples/interfaces/Matlab_MEX/example_int_variables/run.m b/examples/interfaces/Matlab_MEX/example_int_variables/run.m
new file mode 100644
index 0000000..872da6b
--- /dev/null
+++ b/examples/interfaces/Matlab_MEX/example_int_variables/run.m
@@ -0,0 +1,10 @@
+%% MINLP 1 [fval = -5]
+%clc
+fun = @(x) [ (x(1) - 5)^2 + x(2)^2 - 25;
+              x(1)^2 - x(2) + 0.5 ];
+x0 = [10;10];
+opts = nomadset('display_degree',2,'initial_mesh_size','5','bb_input_type','[I I]','max_eval',100,'direction_type','ortho 2n','disable','models','bb_output_type','OBJ PB');
+
+[xr,fval,ef,iter] = nomad(fun,x0,[],[],opts)
+
+
diff --git a/examples/interfaces/Matlab_MEX/example_int_variables/run2.m b/examples/interfaces/Matlab_MEX/example_int_variables/run2.m
new file mode 100644
index 0000000..934c0ca
--- /dev/null
+++ b/examples/interfaces/Matlab_MEX/example_int_variables/run2.m
@@ -0,0 +1,23 @@
+%% PROBLEM 4 [fval = -2.5]
+clc
+fun = @(x)   [-x(1) - x(2) - x(3);
+              (x(2) - 1./2.)*(x(2) - 1./2.) + (x(3) - 1./2.)*(x(3) - 1./2.) - 1/4;
+                x(1) - x(2);
+                x(1) + x(3) + x(4) - 2];          
+ub = [1;10;10;5];
+lb = [0;0;0;0];
+x0 = [0;0;0;0];
+
+opts = []; %just to keep user options
+opts.display_degree = 2;
+opts.bb_output_type = 'OBJ PB PB PB';
+opts.model_search = 'false';
+opts.model_eval_sort = 'false';
+opts.max_eval =  500;
+opts.direction_type = 'ortho 2n';
+opts.param_file = 'param.txt';
+opts.anisotropic_mesh = 0;
+
+[xr,fval,ef,iter] = nomad(fun,x0,lb,ub,opts)
+
+
diff --git a/examples/interfaces/Matlab_MEX/test_nomad_gerad.m b/examples/interfaces/Matlab_MEX/test_nomad_gerad.m
index 810ca83..47d8c88 100755
--- a/examples/interfaces/Matlab_MEX/test_nomad_gerad.m
+++ b/examples/interfaces/Matlab_MEX/test_nomad_gerad.m
@@ -12,12 +12,12 @@ opts = nomadset('display_degree',2,'min_mesh_size','1e-004','initial_mesh_size',
 [x,fval] = nomad(fun,x0,lb,ub,opts);
 
 
-%%Uncomment the following problems for further testing
-% 
-% 
+%Uncomment the following problems for further testing
+
+
 % %% PROBLEM 2
-% %clc
 % % Blackbox Function
+% %clc
 % bb = @(x) [29.4*x(1) + 18*x(2);
 %            -(x(1) - 0.2458*x(1)^2/x(2)) + 6];
 % % Bounds      
@@ -66,11 +66,9 @@ opts = nomadset('display_degree',2,'min_mesh_size','1e-004','initial_mesh_size',
 % [xr,fval,ef,iter] = nomad(fun,x0,lb,ub,opts)
 % 
 % 
-% %% REMAINDER OF PROBLEMS OK
-% 
 % %% Rosenbrock [x = 1,1, fval = 0]
-% %clc
 % % Blackbox Function
+% %clc
 % bb = @(x) (1-x(1))^2 + 100 *(x(2)-x(1)^2)^2;
 % % Starting Guess
 % x0 = [0 0]';
@@ -78,8 +76,8 @@ opts = nomadset('display_degree',2,'min_mesh_size','1e-004','initial_mesh_size',
 % [x,fval,ef,iter] = nomad(bb,x0)
 % 
 % %% St_e01 [x = 6,0.6667, fval = -6.6667]
-% %clc
 % % Blackbox Function
+% %clc
 % bb = @(x) [-x(1) - x(2);
 %            x(1)*x(2) - 4];
 % % Bounds
@@ -127,7 +125,7 @@ opts = nomadset('display_degree',2,'min_mesh_size','1e-004','initial_mesh_size',
 % [x,fval,ef,iter] = nomad(bb,x0,lb,ub,opts)
 % 
 % %% MINLP 1 [fval = -5]
-% clc
+% %clc
 % fun = @(x) [ (x(1) - 5)^2 + x(2)^2 - 25;
 %               x(1)^2 - x(2) + 0.5 ];
 % x0 = [0;0];
@@ -150,3 +148,4 @@ opts = nomadset('display_degree',2,'min_mesh_size','1e-004','initial_mesh_size',
 % opts = nomadset('display_degree',2,'multi_overall_bb_eval',100,'bb_output_type','obj obj eb');
 % 
 % [xr,fval,ef,iter] = nomad(bb,x0,lb,ub,opts)
+% 
diff --git a/install/install.sh b/install/install.sh
index a38c847..27e136c 100755
--- a/install/install.sh
+++ b/install/install.sh
@@ -1,44 +1,51 @@
 #!/bin/bash
 
-#-------------------------------------------------------------------------------------*/
-#  NOMAD - Nonsmooth Optimization by Mesh Adaptive Direct search - version 3.7.2      */
-#                                                                                     */
-#  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-#                           Charles Audet        - Ecole Polytechnique, Montreal      */
-#                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-#                           John Dennis          - Rice University, Houston           */
-#                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-#                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
-#                                                                                     */
-#  funded in part by AFOSR and Exxon Mobil                                            */
-#                                                                                     */
-#  Author: Christophe Tribes                                                          */
-#                                                                                     */
-#  Contact information:                                                               */
-#    Ecole Polytechnique de Montreal - GERAD                                          */
-#    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  */
-#    e-mail: nomad@gerad.ca                                                           */
-#    phone : 1-514-340-6053 #6928                                                     */
-#    fax   : 1-514-340-5665                                                           */
-#                                                                                     */
-#  This program is free software: you can redistribute it and/or modify it under the  */
-#  terms of the GNU Lesser General Public License as published by the Free Software   */
-#  Foundation, either version 3 of the License, or (at your option) any later         */
-#  version.                                                                           */
-#                                                                                     */
-#  This program is distributed in the hope that it will be useful, but WITHOUT ANY    */
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    */
-#  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   */
-#                                                                                     */
-#  You should have received a copy of the GNU Lesser General Public License along     */
-#  with this program. If not, see <http://www.gnu.org/licenses/>.                     */
-#                                                                                     */
-#  You can find information on the NOMAD software at www.gerad.ca/nomad               */
-#-------------------------------------------------------------------------------------*/
+#-------------------------------------------------------------------------------------#
+#  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      #
+#                                                                                     #
+#                                                                                     #
+#  NOMAD - version 3.7.3 has been created by                                          #
+#	               Charles Audet        - Ecole Polytechnique de Montreal             #
+#	               Sebastien Le Digabel - Ecole Polytechnique de Montreal             #
+#	               Christophe Tribes    - Ecole Polytechnique de Montreal             #
+#                                                                                     #
+#  The copyright of NOMAD - version 3.7.3 is owned by                                 #
+#                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              #
+#                 Christophe Tribes    - Ecole Polytechnique de Montreal              #
+#                                                                                     #
+#  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 #
+#                                                                                     #
+#  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     #
+#  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           #
+#  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   #
+#  Rice University, and were funded by AFOSR and Exxon Mobil.                         #
+#                                                                                     #
+#                                                                                     #
+#  Contact information:                                                               #
+#    Ecole Polytechnique de Montreal - GERAD                                          #
+#    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  #
+#    e-mail: nomad@gerad.ca                                                           #
+#    phone : 1-514-340-6053 #6928                                                     #
+#    fax   : 1-514-340-5665                                                           #
+#                                                                                     #
+#  This program is free software: you can redistribute it and/or modify it under the  #
+#  terms of the GNU Lesser General Public License as published by the Free Software   #
+#  Foundation, either version 3 of the License, or (at your option) any later         #
+#  version.                                                                           #
+#                                                                                     #
+#  This program is distributed in the hope that it will be useful, but WITHOUT ANY    #
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    #
+#  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   #
+#                                                                                     #
+#  You should have received a copy of the GNU Lesser General Public License along     #
+#  with this program. If not, see <http://www.gnu.org/licenses/>.                     #
+#                                                                                     #
+#  You can find information on the NOMAD software at www.gerad.ca/nomad               #
+#-------------------------------------------------------------------------------------#
 #
 
 echo "*****************************************************"
-echo "            NOMAD 3.7.2 Installation Script          "
+echo "            NOMAD 3.7.3 Installation Script          "
 echo " usage: ./install.sh [nparallel]                     "
 echo "       - nparallel : number of parallel process to make " 
 echo "*****************************************************"
diff --git a/install/readme.MPI_for_MINGW.rtf b/install/readme.MPI_for_MINGW.rtf
deleted file mode 100644
index e438110..0000000
--- a/install/readme.MPI_for_MINGW.rtf
+++ /dev/null
@@ -1,24 +0,0 @@
-{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360
-{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\margl1440\margr1440\vieww9000\viewh8400\viewkind0
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
-
-\f0\fs24 \cf0 For NOMAD, the suggested implementation of MPI to be used with MinGW under Windows operating system is MPICH2. The following steps briefly describe how to make nomad parallel version work on Windows :\
-\
-1- Download and install MPICH2 \
-2- Add or modify environment variables \
-	* MPI_HOME=c:/mingw/mpich2 (or where MPICH2 has been installed),\
-  	* CPLUS_INCLUDE_PATH=%MPI_HOME%/include\
-	* LIBRARY_PATH=%MPI_HOME%/lib\
-	* PATH=%PATH%;%MPI_HOME%/bin\
-3- Start smpd with administrator privileges:\
-	* c:/mingw/mpich2/bin/smpd.exe -install\
-4- Compile nomad mpi version in MSYS command shell:\
-         * cd into the install directory \
-	* type ./install.sh\
-5- For a single computer (local host only) with several nodes start nomad with the following command:\ 
-	* mpiexec.exe -localonly n %NOMAD_HOME%/nomad.MPI.exe param.txt\
-\
-\
-}
diff --git a/readme.txt b/readme.txt
index 4966d0c..62bf558 100644
--- a/readme.txt
+++ b/readme.txt
@@ -2,74 +2,57 @@
 #                                                                                     #
 #                                  README                                             #
 #                                                                                     #
-#######################################################################################
+#-------------------------------------------------------------------------------------#
+#  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      #
 #                                                                                     #
-#            NOMAD - Nonsmooth Optimization by Mesh Adaptive Direct search            #
-#            V 3.7.2                                                                  #
+#  NOMAD - version 3.7.3 has been created by                                          #
+#	          Charles Audet        - Ecole Polytechnique de Montreal              #
+#	          Sebastien Le Digabel - Ecole Polytechnique de Montreal              #
+#	          Christophe Tribes    - Ecole Polytechnique de Montreal              #
 #                                                                                     #
-#	Copyright (C) 2001-2015                                                       #
+#  The copyright of NOMAD - version 3.7.3 is owned by                                 #
+#                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              #
+#                 Christophe Tribes    - Ecole Polytechnique de Montreal              #
 #                                                                                     #
-#                           Mark Abramson	 - the Boeing Company, Seattle        #
-#                           Charles Audet	 - Ecole Polytechnique, Montreal      #
-#                           Gilles Couture	 - Ecole Polytechnique, Montreal      #
-#                           John Dennis		 - Rice University, Houston           #
-#                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      #
-#                           Christophe Tribes    - Ecole Polytechnique, Montreal      #
+#  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 #
 #                                                                                     #
-#-------------------------------------------------------------------------------------#
-#                                                                                     # 
-#	Contact information:                                                          #
+#  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     #
+#  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           #
+#  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   #
+#  Rice University, and were funded by AFOSR and Exxon Mobil.                         #
+#                                                                                     #
+#  Contact information:                                                               #
 #    Ecole Polytechnique de Montreal - GERAD                                          #
 #    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  #
 #    e-mail: nomad@gerad.ca                                                           #
 #    phone : 1-514-340-6053 #6928                                                     #
 #    fax   : 1-514-340-5665                                                           #
 #                                                                                     #
-# This program is free software: you can redistribute it and/or modify it under the   #
-# terms of the GNU Lesser General Public License as published by the Free Software    #
-# Foundation, either version 3 of the License, or (at your option) any later          #
-# version.                                                                            #
+#  This program is free software: you can redistribute it and/or modify it under the  #
+#  terms of the GNU Lesser General Public License as published by the Free Software   #
+#  Foundation, either version 3 of the License, or (at your option) any later         #
+#  version.                                                                           #
 #                                                                                     #
-# This program is distributed in the hope that it will be useful, but WITHOUT ANY     #
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A     #
-# PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.    #
+#  This program is distributed in the hope that it will be useful, but WITHOUT ANY    #
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    #
+#  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   #
 #                                                                                     #
-#
-# You should have received a copy of the GNU Lesser General Public License along      #
-# with this program. If not, see <http://www.gnu.org/licenses/>.                      #
+#  You should have received a copy of the GNU Lesser General Public License along     #
+#  with this program. If not, see <http://www.gnu.org/licenses/>.                     #
 #                                                                                     #
-# You can find information on the NOMAD software at www.gerad.ca/nomad                #
-#######################################################################################
-
-
-     AUTHORS :
-
-* Mark A. Abramson (Mark.A.Abramson@boeing.com), The Boeing Company.
-
-* Charles Audet (www.gerad.ca/Charles.Audet), GERAD and Departement de
-mathematiques et de genie industriel, ecole Polytechnique de Montreal.
-
-* J.E. Dennis Jr. (www.caam.rice.edu/~dennis), Computational and Applied
-Mathematics Department, Rice University.
-
-* Sebastien Le Digabel (www.gerad.ca/Sebastien.Le.Digabel), GERAD and Departement
-de mathematiques et de genie industriel, ecole Polytechnique de Montreal.
+#  You can find information on the NOMAD software at www.gerad.ca/nomad               #
+#-------------------------------------------------------------------------------------#
 
-* Christophe Tribes, GERAD, Departement
-de mathematiques et de genie industriel, Department of mechanical engineering, ecole Polytechnique de Montreal.
 
-     DESCRIPTION :
+    DESCRIPTION :
 
 NOMAD is a C++ implementation of the Mesh Adaptive Direct Search (MADS) algorithm,
 designed for constrained optimization of black-box functions.
 
-The project started in 2001, and was funded in part by AFOSR, CRIAQ, FQRNT, LANL,
-NSERC, the Boeing Company, and ExxonMobil Upstream Research Company.
-
 
      WEB PAGE :
 
-http://www.gerad.ca/nomad/
+https://www.gerad.ca/nomad/
 
 
      FURTHER INSTRUCTIONS :
@@ -111,4 +94,4 @@ For informations about the execution of NOMAD, please read the user guide :
 
 or
 
-  http://www.gerad.ca/NOMAD/Downloads/user_guide.pdf
+  https://www.gerad.ca/NOMAD/Downloads/user_guide.pdf
diff --git a/src/Barrier.cpp b/src/Barrier.cpp
index ab768cd..b9289d7 100644
--- a/src/Barrier.cpp
+++ b/src/Barrier.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -78,8 +85,9 @@ void NOMAD::Barrier::display ( const Display & out ) const
     
     if ( _p.get_barrier_type() == NOMAD::EB )
         out << "extreme barrier (EB)" << std::endl;
-    
-    else {
+    else
+    {
+        
         
         out << "type                       : "
         << ( (_p.get_barrier_type()==NOMAD::FILTER) ? "filter" : "progressive"  )
@@ -87,7 +95,8 @@ void NOMAD::Barrier::display ( const Display & out ) const
         << "h_norm                     : " << _p.get_h_norm()   << std::endl
         << "h_min                      : " << _p.get_h_min()    << std::endl
         << "h_max                      : " << _h_max            << std::endl;
-        if ( _p.get_barrier_type()==NOMAD::PB || _p.get_barrier_type()==NOMAD::PEB_P ) {
+        if ( _p.get_barrier_type()==NOMAD::PB || _p.get_barrier_type()==NOMAD::PEB_P )
+        {
             out << "poll center  trigger rho   : " << _p.get_rho()      << std::endl
             << "number of trigger leaps    : " << _rho_leaps        << std::endl;
             if ( _p.get_barrier_type()==NOMAD::PEB_P )
@@ -125,9 +134,11 @@ void NOMAD::Barrier::display ( const Display & out ) const
 void NOMAD::Barrier::update_and_reset_success ( void )
 {
     if ( ( _p.get_barrier_type() == NOMAD::PB || _p.get_barrier_type() == NOMAD::PEB_P ) &&
-        _success != NOMAD::UNSUCCESSFUL ) {
+        _success != NOMAD::UNSUCCESSFUL )
+    {
         
-        if ( _success == NOMAD::PARTIAL_SUCCESS ) {
+        if ( _success == NOMAD::PARTIAL_SUCCESS )
+        {
             
             if ( _filter.empty() )
                 throw Barrier::Update_Error ( "Barrier.cpp" , __LINE__ ,
@@ -136,9 +147,11 @@ void NOMAD::Barrier::update_and_reset_success ( void )
             std::set<NOMAD::Filter_Point>::const_iterator it = _filter.end();
             --it;
             
-            while ( true ) {
+            while ( true )
+            {
                 
-                if ( it->get_point()->get_h().value() < _h_max.value() ) {
+                if ( it->get_point()->get_h().value() < _h_max.value() )
+                {
                     set_h_max ( it->get_point()->get_h() );
                     break;
                 }
@@ -171,7 +184,8 @@ void NOMAD::Barrier::insert ( const NOMAD::Eval_Point & x )
                                      "insertion of an Eval_Point into the bad Barrier object" );
     
     // basic check:
-    if ( !x.is_eval_ok() ) {
+    if ( !x.is_eval_ok() )
+    {
         _one_eval_succ = NOMAD::UNSUCCESSFUL;
         return;
     }
@@ -180,7 +194,8 @@ void NOMAD::Barrier::insert ( const NOMAD::Eval_Point & x )
     // then return _UNSUCCESSFUL_:
     size_t size_before = _prefilter.size();
     _prefilter.insert ( x.get_tag() );
-    if ( _prefilter.size() == size_before ) {
+    if ( _prefilter.size() == size_before )
+    {
         _one_eval_succ = NOMAD::UNSUCCESSFUL;
         return;
     }
@@ -193,7 +208,8 @@ void NOMAD::Barrier::insert ( const NOMAD::Eval_Point & x )
     if ( !x.is_EB_ok             () ||
         !x.get_f().is_defined   () ||
         !h.is_defined           () ||
-        h.value() > _h_max.value()    ) {
+        h.value() > _h_max.value()    )
+    {
         _one_eval_succ = NOMAD::UNSUCCESSFUL;
         return;
     }
@@ -217,7 +233,8 @@ void NOMAD::Barrier::insert ( const Barrier & b )
     NOMAD::Eval_Point * modifiable_x;
     
     std::list<const NOMAD::Eval_Point *>::const_iterator it , end = b._all_inserted.end();
-    for ( it = b._all_inserted.begin() ; it != end ; ++it ) {
+    for ( it = b._all_inserted.begin() ; it != end ; ++it )
+    {
         
         modifiable_x = &NOMAD::Cache::get_modifiable_point ( **it );
         
@@ -238,7 +255,8 @@ void NOMAD::Barrier::insert ( const Barrier & b )
 /*---------------------------------------------------------*/
 NOMAD::success_type NOMAD::Barrier::insert_feasible ( const NOMAD::Eval_Point & x )
 {
-    if ( !_best_feasible || ( x.get_f().value() < _best_feasible->get_f().value() ) ) {
+    if ( !_best_feasible || ( x.get_f().value() < _best_feasible->get_f().value() ) )
+    {
         _best_feasible = &x;
         return NOMAD::FULL_SUCCESS;
     }
@@ -250,16 +268,21 @@ NOMAD::success_type NOMAD::Barrier::insert_feasible ( const NOMAD::Eval_Point &
 /*---------------------------------------------------------*/
 void NOMAD::Barrier::filter_insertion ( const NOMAD::Eval_Point & x , bool & insert )
 {
-    if ( _filter.empty() ) {
+    if ( _filter.empty() )
+    {
         _filter.insert (&x);
         insert = true;
     }
-    else {
+    else
+    {
+        
         
         insert = false;
         std::set<NOMAD::Filter_Point>::iterator it = _filter.begin();
-        while ( it != _filter.end() ) {
-            if ( x < *(it->get_point()) ) {
+        while ( it != _filter.end() )
+        {
+            if ( x < *(it->get_point()) )
+            {
                 _filter.erase(it++);
                 insert = true;
                 continue;
@@ -268,11 +291,14 @@ void NOMAD::Barrier::filter_insertion ( const NOMAD::Eval_Point & x , bool & ins
             ++it;
         }
         
-        if ( !insert ) {
+        if ( !insert )
+        {
             insert = true;
             std::set<NOMAD::Filter_Point>::iterator end = _filter.end();
-            for ( it = _filter.begin() ; it != end ; ++it ) {
-                if ( *(it->get_point()) < x ) {
+            for ( it = _filter.begin() ; it != end ; ++it )
+            {
+                if ( *(it->get_point()) < x )
+                {
                     insert = false;
                     break;
                 }
@@ -298,11 +324,13 @@ NOMAD::success_type NOMAD::Barrier::insert_infeasible ( const NOMAD::Eval_Point
     
     // filter:
     // -------
-    if ( _p.get_barrier_type() == NOMAD::FILTER ) {
+    if ( _p.get_barrier_type() == NOMAD::FILTER )
+    {
         const NOMAD::Eval_Point * bi = get_best_infeasible();
         if ( !bi )
             return NOMAD::UNSUCCESSFUL;
-        if ( old_bi ) {
+        if ( old_bi )
+        {
             if ( bi->get_h().value() < old_bi->get_h().value() )
                 return NOMAD::FULL_SUCCESS;
             if ( insert )
@@ -380,23 +408,28 @@ void NOMAD::Barrier::select_poll_center ( NOMAD::success_type last_it_success )
     const NOMAD::Eval_Point * best_infeasible = get_best_infeasible();
     
     _sec_poll_center = NULL;
-    if ( !_best_feasible && !best_infeasible ) {
+    if ( !_best_feasible && !best_infeasible )
+    {
         _poll_center = NULL;
         return;
     }
-    if ( !best_infeasible ) {
+    if ( !best_infeasible )
+    {
         _poll_center = _best_feasible;
         return;
     }
-    if ( !_best_feasible ) {
+    if ( !_best_feasible )
+    {
         _poll_center = best_infeasible;
         return;
     }
     
     // filter:
-    if ( _p.get_barrier_type() == NOMAD::FILTER ) {
+    if ( _p.get_barrier_type() == NOMAD::FILTER )
+    {
         
-        if ( !_poll_center ) {
+        if ( !_poll_center )
+        {
             _poll_center = _best_feasible;
             return;
         }
@@ -409,15 +442,19 @@ void NOMAD::Barrier::select_poll_center ( NOMAD::success_type last_it_success )
     }
     
     // progressive barrier:
-    if ( _p.get_barrier_type() == NOMAD::PB || _p.get_barrier_type() == NOMAD::PEB_P ) {
+    if ( _p.get_barrier_type() == NOMAD::PB || _p.get_barrier_type() == NOMAD::PEB_P )
+    {
         
         const NOMAD::Point * last_poll_center = _poll_center;
         
-        if ( best_infeasible->get_f() < (_best_feasible->get_f() - _p.get_rho()) ) {
+        if ( best_infeasible->get_f() < (_best_feasible->get_f() - _p.get_rho()) )
+        {
             _poll_center     = best_infeasible;
             _sec_poll_center = _best_feasible;
         }
-        else {
+        else
+        {
+            
             _poll_center     = _best_feasible;
             _sec_poll_center = best_infeasible;
         }
@@ -435,9 +472,11 @@ void NOMAD::Barrier::set_h_max ( const NOMAD::Double & h_max )
     _h_max = h_max;
     
     // we remove all filter points x such that h(x) > h_max:
-    if ( !_filter.empty() ) {
+    if ( !_filter.empty() )
+    {
         
-        if ( _filter.begin()->get_point()->get_h().value() > _h_max.value() ) {
+        if ( _filter.begin()->get_point()->get_h().value() > _h_max.value() )
+        {
             _filter.clear();
             return;
         }
@@ -464,8 +503,10 @@ void NOMAD::Barrier::check_PEB_constraints ( const NOMAD::Eval_Point & x , bool
     int                                        nb    = static_cast<int>(bbot.size());
     std::list<int>                             ks;
     
-    for ( int k = 0 ; k < nb ; ++k ) {
-        if ( bbot[k] == NOMAD::PEB_P && bbo[k] <= h_min ) {
+    for ( int k = 0 ; k < nb ; ++k )
+    {
+        if ( bbot[k] == NOMAD::PEB_P && bbo[k] <= h_min )
+        {
             if ( display )
                 _p.out() << std::endl
                 << "change status of blackbox output " << k
@@ -480,7 +521,8 @@ void NOMAD::Barrier::check_PEB_constraints ( const NOMAD::Eval_Point & x , bool
     // at least one constraint changed status, so we have to update the filter
     // and remove all points that have their h value changed to infinity
     // (it can add new dominant points from the list _peb_lop):
-    if ( !ks.empty() ) {
+    if ( !ks.empty() )
+    {
         
         std::list<int>::const_iterator it_k , end_k = ks.end() , begin_k = ks.begin();
         
@@ -490,11 +532,13 @@ void NOMAD::Barrier::check_PEB_constraints ( const NOMAD::Eval_Point & x , bool
         bool reset_filter = false;
         std::set<NOMAD::Filter_Point>::const_iterator end = _filter.end() , it;
         
-        for ( it = _filter.begin() ; it != end ; ++it ) {
+        for ( it = _filter.begin() ; it != end ; ++it )
+        {
             
             const NOMAD::Point & bbo_cur = it->get_point()->get_bb_outputs();
             for ( it_k = begin_k ; it_k != end_k ; ++it_k )
-                if ( bbo_cur[*it_k] > h_min ) {
+                if ( bbo_cur[*it_k] > h_min )
+                {
                     reset_filter = true;
                     break;
                 }
@@ -502,7 +546,8 @@ void NOMAD::Barrier::check_PEB_constraints ( const NOMAD::Eval_Point & x , bool
                 break;
         }
         
-        if ( reset_filter ) {
+        if ( reset_filter )
+        {
             
             if ( display )
                 _p.out() << std::endl << "PEB change of status: filter reset" << std::endl;
@@ -515,19 +560,22 @@ void NOMAD::Barrier::check_PEB_constraints ( const NOMAD::Eval_Point & x , bool
             std::list<const NOMAD::Eval_Point *>::const_iterator end2 = _peb_lop.end  ();
             std::list<const NOMAD::Eval_Point *>::iterator       it2  = _peb_lop.begin();
             
-            while ( it2 != end2 ) {
+            while ( it2 != end2 )
+            {
                 
                 insert = true;
                 const NOMAD::Point & bbo_cur = (*it2)->get_bb_outputs();
                 
                 for ( it_k = begin_k ; it_k != end_k ; ++it_k )
-                    if ( bbo_cur[*it_k] > h_min ) {
+                    if ( bbo_cur[*it_k] > h_min )
+                    {
                         insert = false;
                         break;
                     }
                 
                 // if insert==true: this point is potentially a new filter point:
-                if ( insert ) {
+                if ( insert )
+                {
                     filter_insertion ( **it2 , insert );
                     ++it2;
                 }
@@ -535,7 +583,9 @@ void NOMAD::Barrier::check_PEB_constraints ( const NOMAD::Eval_Point & x , bool
                 // if insert==false: it means that the current filter point
                 // has to be removed from filter and from _peb_lop, and
                 // in addition, its h is put to INF:
-                else {
+                else
+                {
+                    
                     NOMAD::Cache::get_modifiable_point ( **it2 ).set_h ( NOMAD::Double() );
                     _peb_lop.erase(it2++);
                 }
diff --git a/src/Barrier.hpp b/src/Barrier.hpp
index 2b303a4..a41ad4c 100644
--- a/src/Barrier.hpp
+++ b/src/Barrier.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -47,260 +54,260 @@
 #include "Filter_Point.hpp"
 
 namespace NOMAD {
-	
-	/// Barrier class for constraints handling.
-	/**
+    
+    /// Barrier class for constraints handling.
+    /**
      The barrier is basically a structure that stores evaluation points.
-	 */
-	class Barrier : private NOMAD::Uncopyable {
-		
-	private:
-		
-		const NOMAD::Parameters & _p;              ///< Parameters.
-		NOMAD::eval_type          _eval_type;      ///< Truth or surrogate.
-		NOMAD::Double             _h_max;          ///< Maximal value for \c h.
-		const NOMAD::Eval_Point * _best_feasible;  ///< Best feasible solution.
-		
-		/// Progressive barrier reference point.
-		const NOMAD::Eval_Point * _ref;
-		
-		std::set<NOMAD::Filter_Point> _filter;     ///< Filter.
-		std::set<int>                 _prefilter;  ///< Pre-filter based on point tags.
-		
-		int                           _rho_leaps;  ///< Number of trigger (rho) leaps.
-		
-		const NOMAD::Eval_Point     * _poll_center;      ///< Primary poll center.
-		const NOMAD::Eval_Point     * _sec_poll_center;  ///< Secondary poll center.
-		
-		/**
-		 Number of constraints that have been changed to NOMAD::PEB_E
-		 (Extreme status for the PEB strategy).
-		 */
-		int _peb_changes;
-		
-		/**
-		 Number of times that the filter has been reseted following a PEB
-		 change of status.
-		 */
-		int _peb_filter_reset;
-		
-		/**
-		 List of all points that we tried to insert into the filter,
-		 with PEB constraints.
-		 */
-		std::list<const NOMAD::Eval_Point *> _peb_lop;
-		
-		/// List of all points that we tried to insert into the filter.
-		std::list<const NOMAD::Eval_Point *> _all_inserted;
-		
-		NOMAD::success_type _one_eval_succ; ///< Success for one evaluation.
-		NOMAD::success_type _success;       ///< Success for a list of evaluations.
-		
-		/*----------------------------------------------------*/
-		
-		/// Insertion of a feasible point.
-		/**
-		 \param  x The feasible point to insert -- \b IN.
-		 \return Success type of the insertion
-		 (NOMAD::FULL_SUCCESS or NOMAD::UNSUCCESSFUL).
-		 */
-		NOMAD::success_type insert_feasible ( const NOMAD::Eval_Point & x );
-		
-		/// Insertion of an infeasible point.
-		/**
-		 \param  x The infeasible point to insert -- \b IN.
-		 \return Success type of the insertion
-		 (NOMAD::FULL_SUCCESS, NOMAD::UNSUCCESSFUL, or NOMAD::PARTIAL_SUCCESS).
-		 */
-		NOMAD::success_type insert_infeasible ( const NOMAD::Eval_Point & x );
-		
-		/// Change the value of \c h_max.
-		/**
-		 \param h_max The new value of \c h_max -- \b IN.
-		 */
-		void set_h_max ( const NOMAD::Double & h_max );
-		
-		/// Insertion into the filter.
-		/**
-		 \param x      The point to insert -- \b IN.
-		 \param insert A boolean equal to \c true if the point has been
-		 inserted into the barrier -- \b OUT.
-		 */
-		void filter_insertion ( const NOMAD::Eval_Point & x , bool & insert );
-		
-		/*----------------------------------------------------*/
-		
-	public:
-		
-		/// Exception class for barrier update error.
-		class Update_Error : public NOMAD::Exception
-		{
-		public:
-			/// Constructor.
-			Update_Error ( const std::string & file ,
-						  int                 line ,
-						  const std::string & msg    )
-			: NOMAD::Exception ( file , line , msg ) {}
-		};
-		
-		/// Exception class for an insertion error.
-		class Insert_Error : public NOMAD::Exception
-		{
-		public:
-			/// Constructor.
-			Insert_Error ( const std::string & file ,
-						  int                 line ,
-						  const std::string & msg    )
-			: NOMAD::Exception ( file , line , msg ) {}
-		};
-		
-		/*----------------------------------------------------*/
-		
-		/// Constructor.
-		/**
-		 \param p  Parameters         -- \b IN.
-		 \param et Truth or surrogate -- \b IN.
-		 */
-		Barrier ( const NOMAD::Parameters & p , NOMAD::eval_type et )
-		: _p               ( p                   ) ,
-		_eval_type       ( et                  ) ,
-		_h_max           ( p.get_h_max_0()     ) ,
-		_best_feasible   ( NULL                ) ,
-		_ref             ( NULL                ) ,
-		_rho_leaps       ( 0                   ) ,
-		_poll_center     ( NULL                ) , 
-		_sec_poll_center ( NULL                ) ,
-		_peb_changes     ( 0                   ) ,
-		_peb_filter_reset( 0                   ) ,
-		_one_eval_succ   ( NOMAD::UNSUCCESSFUL ) ,    
-		_success         ( NOMAD::UNSUCCESSFUL )   {}
-		
-		/// Destructor.
-		virtual ~Barrier ( void ) {}
-		
-		/// Reset the barrier.
-		void reset ( void );
-		
-		/// Reset the success types.
-		void reset_success ( void ) { _one_eval_succ = _success = NOMAD::UNSUCCESSFUL; }
-		
-		/// Poll center selection.
-		/**
-		 \param last_it_success Success of the last iteration -- \b IN.
-		 */
-		void select_poll_center ( NOMAD::success_type last_it_success );
-		
-		/// Barrier updates.
-		void update_and_reset_success ( void );
-		
-		/// Access to the best infeasible point.
-		/**
-		 \return A pointer to the best infeasible point.
-		 */
-		const NOMAD::Eval_Point * get_best_infeasible ( void ) const;
-		
-		/// Access to the best feasible point.
-		/**
-		 \return A pointer to the best feasible point.
-		 */
-		const NOMAD::Eval_Point * get_best_feasible ( void ) const { return _best_feasible; }
-		
-		/// Access to the best infeasible point with min. violation.
-		/**
-		 \return A pointer to the best infeasible point with min. viol.
-		 */
-		const NOMAD::Eval_Point * get_best_infeasible_min_viol ( void ) const;
-		
-		/// Access to \c h_max.
-		/**
-		 \return The value of \c h_max.
-		 */
-		const NOMAD::Double & get_h_max ( void ) const { return _h_max; }
-		
-		/// Access to the poll center.
-		/**
-		 \return A pointer to the poll center.
-		 */
-		const NOMAD::Eval_Point * get_poll_center ( void ) const { return _poll_center; }
-		
-		/// Access to the success type of one evaluation.
-		/**
-		 \return The success type of one evaluation.
-		 */
-		NOMAD::success_type get_one_eval_succ ( void ) const { return _one_eval_succ;}
-		
-		/// Access to the success type of a list of evaluations.
-		/**
-		 \return The success type of a list of evaluations.
-		 */
-		NOMAD::success_type get_success ( void ) const { return _success; }
-		
-		/// Access to the secondary poll center.
-		/**
-		 \return A pointer to the secondary poll center.
-		 */
-		const NOMAD::Eval_Point * get_sec_poll_center ( void ) const
-		{
-			return _sec_poll_center;
-		}
-		
-		/// Access the list of all inserted points.
-		/**
-		 \return A list with pointers to the inserted points.
-		 */
-		const std::list<const NOMAD::Eval_Point *> & get_all_inserted ( void ) const
-		{
-			return _all_inserted;
-		}
-		
-		/// Insertion of a point into the barrier.
-		/**
-		 \param x The point -- \b IN.
-		 */
-		void insert ( const NOMAD::Eval_Point & x );
-		
-		/// Update the barrier from another barrier.
-		/**
-		 Used by the VNS search.
-		 \param b The other barrier -- \b IN.
-		 */
-		void insert ( const Barrier & b );
-		
-		/// Check the PEB constraints.
-		/**
-		 This will change eventually the status of PEB constraints
-		 from NOMAD::PEB_P to NOMAD::PEB_E.
-		 \param x       Point at which the constraints are checked -- \b IN.
-		 \param display A boolean equal to \c true if displays are authorized -- \b IN.
-		 */
-		void check_PEB_constraints ( const NOMAD::Eval_Point & x , bool display );
-		
-		/// Display.
-		/**
-		 \param out The NOMAD::Display object -- \b IN.
-		 */
-		void display ( const NOMAD::Display & out ) const;
-		
-		/// Display.
-		/**
-		 Uses the NOMAD::Display object of the NOMAD::Parameters class.
-		 */
-		void display ( void ) const { display ( _p.out() ); }
-		
-	};
-	
-	/// Display a NOMAD::Barrier object.
-	/**
+     */
+    class Barrier : private NOMAD::Uncopyable {
+        
+    private:
+        
+        const NOMAD::Parameters & _p;              ///< Parameters.
+        NOMAD::eval_type          _eval_type;      ///< Truth or surrogate.
+        NOMAD::Double             _h_max;          ///< Maximal value for \c h.
+        const NOMAD::Eval_Point * _best_feasible;  ///< Best feasible solution.
+        
+        /// Progressive barrier reference point.
+        const NOMAD::Eval_Point * _ref;
+        
+        std::set<NOMAD::Filter_Point> _filter;     ///< Filter.
+        std::set<int>                 _prefilter;  ///< Pre-filter based on point tags.
+        
+        int                           _rho_leaps;  ///< Number of trigger (rho) leaps.
+        
+        const NOMAD::Eval_Point     * _poll_center;      ///< Primary poll center.
+        const NOMAD::Eval_Point     * _sec_poll_center;  ///< Secondary poll center.
+        
+        /**
+         Number of constraints that have been changed to NOMAD::PEB_E
+         (Extreme status for the PEB strategy).
+         */
+        int _peb_changes;
+        
+        /**
+         Number of times that the filter has been reseted following a PEB
+         change of status.
+         */
+        int _peb_filter_reset;
+        
+        /**
+         List of all points that we tried to insert into the filter,
+         with PEB constraints.
+         */
+        std::list<const NOMAD::Eval_Point *> _peb_lop;
+        
+        /// List of all points that we tried to insert into the filter.
+        std::list<const NOMAD::Eval_Point *> _all_inserted;
+        
+        NOMAD::success_type _one_eval_succ; ///< Success for one evaluation.
+        NOMAD::success_type _success;       ///< Success for a list of evaluations.
+        
+        /*----------------------------------------------------*/
+        
+        /// Insertion of a feasible point.
+        /**
+         \param  x The feasible point to insert -- \b IN.
+         \return Success type of the insertion
+         (NOMAD::FULL_SUCCESS or NOMAD::UNSUCCESSFUL).
+         */
+        NOMAD::success_type insert_feasible ( const NOMAD::Eval_Point & x );
+        
+        /// Insertion of an infeasible point.
+        /**
+         \param  x The infeasible point to insert -- \b IN.
+         \return Success type of the insertion
+         (NOMAD::FULL_SUCCESS, NOMAD::UNSUCCESSFUL, or NOMAD::PARTIAL_SUCCESS).
+         */
+        NOMAD::success_type insert_infeasible ( const NOMAD::Eval_Point & x );
+        
+        /// Change the value of \c h_max.
+        /**
+         \param h_max The new value of \c h_max -- \b IN.
+         */
+        void set_h_max ( const NOMAD::Double & h_max );
+        
+        /// Insertion into the filter.
+        /**
+         \param x      The point to insert -- \b IN.
+         \param insert A boolean equal to \c true if the point has been
+         inserted into the barrier -- \b OUT.
+         */
+        void filter_insertion ( const NOMAD::Eval_Point & x , bool & insert );
+        
+        /*----------------------------------------------------*/
+        
+    public:
+        
+        /// Exception class for barrier update error.
+        class Update_Error : public NOMAD::Exception
+        {
+        public:
+            /// Constructor.
+            Update_Error ( const std::string & file ,
+                          int                 line ,
+                          const std::string & msg    )
+            : NOMAD::Exception ( file , line , msg ) {}
+        };
+        
+        /// Exception class for an insertion error.
+        class Insert_Error : public NOMAD::Exception
+        {
+        public:
+            /// Constructor.
+            Insert_Error ( const std::string & file ,
+                          int                 line ,
+                          const std::string & msg    )
+            : NOMAD::Exception ( file , line , msg ) {}
+        };
+        
+        /*----------------------------------------------------*/
+        
+        /// Constructor.
+        /**
+         \param p  Parameters         -- \b IN.
+         \param et Truth or surrogate -- \b IN.
+         */
+        Barrier ( const NOMAD::Parameters & p , NOMAD::eval_type et )
+        : _p               ( p                   ) ,
+        _eval_type       ( et                  ) ,
+        _h_max           ( p.get_h_max_0()     ) ,
+        _best_feasible   ( NULL                ) ,
+        _ref             ( NULL                ) ,
+        _rho_leaps       ( 0                   ) ,
+        _poll_center     ( NULL                ) ,
+        _sec_poll_center ( NULL                ) ,
+        _peb_changes     ( 0                   ) ,
+        _peb_filter_reset( 0                   ) ,
+        _one_eval_succ   ( NOMAD::UNSUCCESSFUL ) ,
+        _success         ( NOMAD::UNSUCCESSFUL )   {}
+        
+        /// Destructor.
+        virtual ~Barrier ( void ) {}
+        
+        /// Reset the barrier.
+        void reset ( void );
+        
+        /// Reset the success types.
+        void reset_success ( void ) { _one_eval_succ = _success = NOMAD::UNSUCCESSFUL; }
+        
+        /// Poll center selection.
+        /**
+         \param last_it_success Success of the last iteration -- \b IN.
+         */
+        void select_poll_center ( NOMAD::success_type last_it_success );
+        
+        /// Barrier updates.
+        void update_and_reset_success ( void );
+        
+        /// Access to the best infeasible point.
+        /**
+         \return A pointer to the best infeasible point.
+         */
+        const NOMAD::Eval_Point * get_best_infeasible ( void ) const;
+        
+        /// Access to the best feasible point.
+        /**
+         \return A pointer to the best feasible point.
+         */
+        const NOMAD::Eval_Point * get_best_feasible ( void ) const { return _best_feasible; }
+        
+        /// Access to the best infeasible point with min. violation.
+        /**
+         \return A pointer to the best infeasible point with min. viol.
+         */
+        const NOMAD::Eval_Point * get_best_infeasible_min_viol ( void ) const;
+        
+        /// Access to \c h_max.
+        /**
+         \return The value of \c h_max.
+         */
+        const NOMAD::Double & get_h_max ( void ) const { return _h_max; }
+        
+        /// Access to the poll center.
+        /**
+         \return A pointer to the poll center.
+         */
+        const NOMAD::Eval_Point * get_poll_center ( void ) const { return _poll_center; }
+        
+        /// Access to the success type of one evaluation.
+        /**
+         \return The success type of one evaluation.
+         */
+        NOMAD::success_type get_one_eval_succ ( void ) const { return _one_eval_succ;}
+        
+        /// Access to the success type of a list of evaluations.
+        /**
+         \return The success type of a list of evaluations.
+         */
+        NOMAD::success_type get_success ( void ) const { return _success; }
+        
+        /// Access to the secondary poll center.
+        /**
+         \return A pointer to the secondary poll center.
+         */
+        const NOMAD::Eval_Point * get_sec_poll_center ( void ) const
+        {
+            return _sec_poll_center;
+        }
+        
+        /// Access the list of all inserted points.
+        /**
+         \return A list with pointers to the inserted points.
+         */
+        const std::list<const NOMAD::Eval_Point *> & get_all_inserted ( void ) const
+        {
+            return _all_inserted;
+        }
+        
+        /// Insertion of a point into the barrier.
+        /**
+         \param x The point -- \b IN.
+         */
+        void insert ( const NOMAD::Eval_Point & x );
+        
+        /// Update the barrier from another barrier.
+        /**
+         Used by the VNS search.
+         \param b The other barrier -- \b IN.
+         */
+        void insert ( const Barrier & b );
+        
+        /// Check the PEB constraints.
+        /**
+         This will change eventually the status of PEB constraints
+         from NOMAD::PEB_P to NOMAD::PEB_E.
+         \param x       Point at which the constraints are checked -- \b IN.
+         \param display A boolean equal to \c true if displays are authorized -- \b IN.
+         */
+        void check_PEB_constraints ( const NOMAD::Eval_Point & x , bool display );
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+        
+        /// Display.
+        /**
+         Uses the NOMAD::Display object of the NOMAD::Parameters class.
+         */
+        void display ( void ) const { display ( _p.out() ); }
+        
+    };
+    
+    /// Display a NOMAD::Barrier object.
+    /**
      \param out The NOMAD::Display object -- \b IN.
      \param b   The NOMAD::Barrier object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-	 */
-	inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
-											   const NOMAD::Barrier & b     )
-	{
-		b.display ( out );
-		return out;
-	}
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
+                                               const NOMAD::Barrier & b     )
+    {
+        b.display ( out );
+        return out;
+    }
 }
 
 #endif
diff --git a/src/Cache.cpp b/src/Cache.cpp
index dea9a34..d65dfcf 100644
--- a/src/Cache.cpp
+++ b/src/Cache.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -119,21 +126,24 @@ const NOMAD::Eval_Point * NOMAD::Cache::find
     // search in _cache2 (points to write in a cache file):
     NOMAD::Cache_Point cp ( &x );
     it = _cache2.find ( cp );
-    if ( it != _cache2.end() ) {
+    if ( it != _cache2.end() )
+    {
         cache_index = NOMAD::CACHE_2;
         return it->get_point();
     }
     
     // search in _cache3 (points saved in a file):
     it = _cache3.find ( cp );
-    if ( it != _cache3.end() ) {
+    if ( it != _cache3.end() )
+    {
         cache_index = NOMAD::CACHE_3;
         return it->get_point();
     }
     
     // search in _cache1 (points read in an initial cache file):
     it = _cache1.find ( cp );
-    if ( it != _cache1.end() ) {
+    if ( it != _cache1.end() )
+    {
         cache_index = NOMAD::CACHE_1;
         return it->get_point();
     }
@@ -165,14 +175,18 @@ bool NOMAD::Cache::erase ( const NOMAD::Eval_Point & x )
     const NOMAD::Eval_Point * cache_x = find ( x , it , cache_index );
     
     // the point has been found:
-    if ( cache_x ) {
+    if ( cache_x )
+    {
         
         // remove the point from the list of extern points:
-        if ( cache_x->get_current_run() || x.get_current_run() ) {
+        if ( cache_x->get_current_run() || x.get_current_run() )
+        {
             std::list<const NOMAD::Eval_Point*>::const_iterator end2 = _extern_pts.end();
             std::list<const NOMAD::Eval_Point*>::iterator       it2  = _extern_pts.begin();
-            while ( it2 != end2 ) {
-                if ( *it2 == cache_x || *it2 == &x ) {
+            while ( it2 != end2 )
+            {
+                if ( *it2 == cache_x || *it2 == &x )
+                {
                     _extern_pts.erase ( it2 );
                     break;
                 }
@@ -187,7 +201,8 @@ bool NOMAD::Cache::erase ( const NOMAD::Eval_Point & x )
         // remove the point from the cache:
         _sizeof -= x.size_of();
         
-        switch ( cache_index ) {
+        switch ( cache_index )
+        {
             case NOMAD::CACHE_1:
                 _cache1.erase ( it );
                 break;
@@ -211,7 +226,8 @@ bool NOMAD::Cache::erase ( const NOMAD::Eval_Point & x )
 void NOMAD::Cache::clear ( void )
 {
     const NOMAD::Eval_Point * x = begin();
-    while ( x ) {
+    while ( x )
+    {
         delete x;
         x = next();
     }
@@ -266,12 +282,14 @@ void NOMAD::Cache::insert ( Cache & c )
     const NOMAD::Eval_Point * cache_x;
     const NOMAD::Eval_Point * cur = c.begin();
     
-    while ( cur ) {
+    while ( cur )
+    {
         
         cache_x = find ( *cur );
         
         // the current point is already in cache:
-        if ( cache_x ) {
+        if ( cache_x )
+        {
             update ( get_modifiable_point ( *cache_x ) , *cur );
             delete cur;
         }
@@ -297,7 +315,8 @@ void NOMAD::Cache::insert ( Cache & c )
 /*  . example of use:                                               */
 /*                                                                  */
 /*        const NOMAD::Eval_Point * cur = cache.begin();            */
-/*        while ( cur ) {                                           */
+/*        while ( cur )
+ {                                           */
 /*          ...                                                     */
 /*          cur = cache.next();                                     */
 /*        }                                                         */
@@ -309,15 +328,18 @@ void NOMAD::Cache::insert ( Cache & c )
 // --------
 const NOMAD::Eval_Point * NOMAD::Cache::begin ( void ) const
 {
-    if ( !_cache2.empty() ) {
+    if ( !_cache2.empty() )
+    {
         _it = _cache2.begin();
         return _it->get_point();
     }
-    if ( !_cache3.empty() ) {
+    if ( !_cache3.empty() )
+    {
         _it = _cache3.begin();
         return _it->get_point();
     }
-    if ( !_cache1.empty() ) {
+    if ( !_cache1.empty() )
+    {
         _it = _cache1.begin();
         return _it->get_point();
     }
@@ -330,12 +352,15 @@ const NOMAD::Eval_Point * NOMAD::Cache::next ( void ) const
 {
     ++_it;
     
-    if ( !_cache2.empty() && _it == _cache2.end() ) {
-        if ( !_cache3.empty() ) {
+    if ( !_cache2.empty() && _it == _cache2.end() )
+    {
+        if ( !_cache3.empty() )
+        {
             _it = _cache3.begin();
             return _it->get_point();
         }
-        if ( !_cache1.empty() ) {
+        if ( !_cache1.empty() )
+        {
             _it = _cache1.begin();
             return _it->get_point();
         }
@@ -343,8 +368,10 @@ const NOMAD::Eval_Point * NOMAD::Cache::next ( void ) const
     }
     
     
-    if ( !_cache3.empty() && _it == _cache3.end() ) {
-        if ( !_cache1.empty() ) {
+    if ( !_cache3.empty() && _it == _cache3.end() )
+    {
+        if ( !_cache1.empty() )
+        {
             _it = _cache1.begin();
             return _it->get_point();
         }
@@ -417,10 +444,12 @@ bool NOMAD::Cache::read_points_from_cache_file ( std::ifstream & fin
         const NOMAD::Eval_Point * cache_x;
         
         // main loop:
-        while ( !fin.eof() ) {
+        while ( !fin.eof() )
+        {
             
             // reading of the Cache_File_Point:
-            if ( !cfp.read ( fin ) ) {
+            if ( !cfp.read ( fin ) )
+            {
                 if ( fin.eof() )
                     break;
                 return false;
@@ -438,13 +467,16 @@ bool NOMAD::Cache::read_points_from_cache_file ( std::ifstream & fin
             cache_x = find ( *cur );
             
             // the current point is already in cache:
-            if ( cache_x ) {
+            if ( cache_x )
+            {
                 update ( get_modifiable_point ( *cache_x ) , *cur );
                 delete cur;
             }
             
             // point not in cache: insertion:
-            else {
+            else
+            {
+                
                 
                 // insertion in _extern_pts:
                 insert_extern_point ( *cur );
@@ -459,7 +491,8 @@ bool NOMAD::Cache::read_points_from_cache_file ( std::ifstream & fin
         } // end of main loop
         
         // display stats on the cache load:
-        if ( display ) {
+        if ( display )
+        {
             _out << "number of points: " << static_cast<int>(_cache1.size()) << std::endl
             << "size            : ";
             _out.display_size_of ( _sizeof );
@@ -467,7 +500,8 @@ bool NOMAD::Cache::read_points_from_cache_file ( std::ifstream & fin
             << "load time       : " << c.get_real_time() << 's' << std::endl;
         }
     }
-    catch ( ... ) {
+    catch ( ... )
+    {
         return false;
     }
     return true;
@@ -500,7 +534,8 @@ bool NOMAD::Cache::load ( const std::string & file_name       ,
         return false;
     
     // the file exists:
-    if ( NOMAD::check_read_file ( file_name ) ) {
+    if ( NOMAD::check_read_file ( file_name ) )
+    {
         
         int           id;
         std::ifstream fin ( file_name.c_str() , std::ios::binary );
@@ -508,7 +543,8 @@ bool NOMAD::Cache::load ( const std::string & file_name       ,
         fin.read ( (char *) &id , sizeof(int) );
         
         // it is a valid cache file:
-        if ( !fin.fail() && id == NOMAD::CACHE_FILE_ID ) {
+        if ( !fin.fail() && id == NOMAD::CACHE_FILE_ID )
+        {
             
             // display:
             if ( display )
@@ -516,7 +552,8 @@ bool NOMAD::Cache::load ( const std::string & file_name       ,
                 << NOMAD::open_block ( "loading of \'" + file_name + "\'" );
             
             // read the points:
-            if ( !read_points_from_cache_file ( fin , p_nb_bb_outputs , display ) ) {
+            if ( !read_points_from_cache_file ( fin , p_nb_bb_outputs , display ) )
+            {
                 fin.close();
                 return false;  // it is not a valid cache file
             }
@@ -533,14 +570,18 @@ bool NOMAD::Cache::load ( const std::string & file_name       ,
         }
         
         // it is not a valid cache file:
-        else {
+        else
+        {
+            
             fin.close();
             return false;
         }
     }
     
     // the file does not exist:
-    else {
+    else
+    {
+        
         
         // display:
         if ( display )
@@ -549,7 +590,8 @@ bool NOMAD::Cache::load ( const std::string & file_name       ,
         // create the file as a valid cache file:
         std::ofstream fout ( file_name.c_str() , std::ios::binary );
         
-        if ( fout.fail() ) {
+        if ( fout.fail() )
+        {
             fout.close();
             return false;
         }
@@ -583,11 +625,13 @@ bool NOMAD::Cache::save ( bool overwrite , bool display )
     
     std::ofstream fout;
     
-    if ( overwrite ) {
+    if ( overwrite )
+    {
         
         // open:
         fout.open ( _locked_file.c_str() , std::ios::binary );
-        if ( fout.fail() ) {
+        if ( fout.fail() )
+        {
             fout.close();
             return false;
         }
@@ -597,9 +641,11 @@ bool NOMAD::Cache::save ( bool overwrite , bool display )
         
         // save all cache points:
         const NOMAD::Eval_Point * cur = begin();
-        while ( cur ) {
+        while ( cur )
+        {
             NOMAD::Cache_File_Point cfp ( *cur );
-            if ( !cfp.write ( fout ) ) {
+            if ( !cfp.write ( fout ) )
+            {
                 fout.close();
                 return false;
             }
@@ -607,21 +653,26 @@ bool NOMAD::Cache::save ( bool overwrite , bool display )
         }
     }
     
-    else {
+    else
+    {
+        
         
         // open and go at the end of the file:
         fout.open ( _locked_file.c_str() , std::ios::binary | std::ios::app );
-        if ( fout.fail() ) {
+        if ( fout.fail() )
+        {
             fout.close();
             return false;
         }
         
         std::set<NOMAD::Cache_Point>::iterator it = _cache2.begin();
-        while ( it != _cache2.end() ) {
+        while ( it != _cache2.end() )
+        {
             
             // write it->get_point() in 'fout':
             NOMAD::Cache_File_Point cfp ( *it->get_point() );
-            if ( !cfp.write ( fout ) ) {
+            if ( !cfp.write ( fout ) )
+            {
                 fout.close();
                 return false;
             }
@@ -676,8 +727,6 @@ void NOMAD::Cache::update ( NOMAD::Eval_Point       & cache_x ,
         cache_x.set_eval_status ( NOMAD::EVAL_OK     );
         cache_x.set_bb_output   ( bbo_x              );
         cache_x.set_signature   ( x.get_signature () );
-        cache_x.set_direction   ( x.get_direction () );
-        
         _sizeof += cache_x.size_of();
         return;
     }
@@ -686,7 +735,8 @@ void NOMAD::Cache::update ( NOMAD::Eval_Point       & cache_x ,
     int c1 = 0;
     int c2 = 0;
     
-    for ( int i = 0 ; i < m ; ++i ) {
+    for ( int i = 0 ; i < m ; ++i )
+    {
         
         if ( bbo_cache_x[i].is_defined() )
             ++c1;
@@ -700,10 +750,10 @@ void NOMAD::Cache::update ( NOMAD::Eval_Point       & cache_x ,
     
     // the two points are 'eval_ok' and have comparable outputs:
     // we select the best as the one with the more defined bb_outputs:
-    if ( c2 > c1 ) {
+    if ( c2 > c1 )
+    {
         cache_x.set_signature  ( x.get_signature () );
         cache_x.set_direction  ( x.get_direction () );
-        
     }
     
     _sizeof += cache_x.size_of();
@@ -717,7 +767,8 @@ void NOMAD::Cache::display_extern_pts ( const NOMAD::Display & out ) const
     int  nb = static_cast<int>(_extern_pts.size());
     int cnt = 0;
     std::list<const NOMAD::Eval_Point *>::const_iterator it , end = _extern_pts.end();
-    for ( it = _extern_pts.begin() ; it != end ; ++it ) {
+    for ( it = _extern_pts.begin() ; it != end ; ++it )
+    {
         out << "point ";
         out.display_int_w ( ++cnt , nb );
         out << "/" << nb << ": ";
@@ -745,7 +796,8 @@ void NOMAD::Cache::display ( const NOMAD::Display & out ) const
     int cnt = 0;
     out << NOMAD::open_block ( "cache points" ) << std::endl;
     const NOMAD::Eval_Point * cur = begin();
-    while ( cur ) {
+    while ( cur )
+    {
         out << "point ";
         out.display_int_w ( ++cnt , nb );
         out << "/" << nb << ": ";
diff --git a/src/Cache.hpp b/src/Cache.hpp
index 99cfbfb..260ec72 100644
--- a/src/Cache.hpp
+++ b/src/Cache.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Cache.hpp
-  \brief  Cache memorizing all evaluations (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-12
-  \see    Cache.cpp
-*/
+ \file   Cache.hpp
+ \brief  Cache memorizing all evaluations (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-12
+ \see    Cache.cpp
+ */
 
 //  To browse the cache:
 //  ---------------------
@@ -56,355 +63,357 @@
 #include "Clock.hpp"
 
 namespace NOMAD {
-
-  /// Cache memorizing all evaluations.
-  /**
-     - The evaluation are stored as NOMAD::Eval_Point objects in
-       three \c std::set containers
-       ( \c _cache1 , \c _cache2 and \c _cache3 ).
-     - Browse the points inside the cache with the following instructions:
-       \code
-       const NOMAD::Eval_Point * cur = cache.begin();
-       while ( cur ) {
-         ...
-         cur = cache.next();
-       }
-       \endcode
-  */
-  class Cache : private NOMAD::Uncopyable {
-
-  protected:
-
-    /// Display:
-    const NOMAD::Display & _out;
-
-  private:
-  
-    /// Static list of locked files.
-    static std::set<std::string> _locked_files;
-
-    /// Cache file that is currently in use for load/save (this file is locked).
-    std::string _locked_file;
     
-    /// Type of cache (truth or surrogate).
-    NOMAD::eval_type _eval_type;
-
-    /// Points read in the (optional) initial cache file.
-    std::set<NOMAD::Cache_Point> _cache1;
-
-    /// Points of the cache to write in the cache file.
-    std::set<NOMAD::Cache_Point> _cache2;
-
-    /// Points of the cache already saved in the file.
-    std::set<NOMAD::Cache_Point> _cache3;
-
-    /// Points not from the current run (from a cache file or from a user).
-    mutable std::list<const NOMAD::Eval_Point*> _extern_pts;
-    
-    /// Size in memory.
-    mutable float _sizeof;
-
-    /// Iterator to browse the cache with \c begin() and \c next().
-    mutable std::set<NOMAD::Cache_Point>::const_iterator _it;
-    
-    /*---------------------------------------------------------------------------*/
-
-    /// Read points in a cache file.
-    /**
-       - Reads points from a cache file.
-       - Fills the set \c _cache1.
-       \param fin             The already opened input file -- \b IN.
-       \param p_nb_bb_outputs A pointer on an integer with the number
-                              of blackbox outputs; can be \c NULL  -- \b IN.
-       \param display         A boolean equal to \c true if displays
-                              are authorized -- \b IN.
-       \return A boolean equal to \c true if the file could be read.
-    */
-    bool read_points_from_cache_file ( std::ifstream & fin             ,
-				       const int     * p_nb_bb_outputs ,
-				       bool            display           );
-    
-    /// Check if a file is locked.
-    /**
-       \param file_name Name of the file -- \b IN.
-       \return A boolean equal to \c true if the file is locked.
-    */
-    bool is_locked ( const std::string & file_name );
-
-    /// Lock a file.
-    /**
-       \param file_name Name of the file -- \b IN.
-       \return A boolean equal to \c false if the file was already locked.
-    */
-    bool lock ( const std::string & file_name );
-
-    /// Unlock the locked file.
-    void unlock ( void );
-
-    /// Update a point already in cache.
+    /// Cache memorizing all evaluations.
     /**
-       - The point already in cache is updated from another
+     - The evaluation are stored as NOMAD::Eval_Point objects in
+     three \c std::set containers
+     ( \c _cache1 , \c _cache2 and \c _cache3 ).
+     - Browse the points inside the cache with the following instructions:
+     \code
+     const NOMAD::Eval_Point * cur = cache.begin();
+     while ( cur ) {
+     ...
+     cur = cache.next();
+     }
+     \endcode
+     */
+    class Cache : private NOMAD::Uncopyable {
+        
+    protected:
+        
+        /// Display:
+        const NOMAD::Display & _out;
+        
+    private:
+        
+        /// Static list of locked files.
+        static std::set<std::string> _locked_files;
+        
+        /// Cache file that is currently in use for load/save (this file is locked).
+        std::string _locked_file;
+        
+        /// Type of cache (truth or surrogate).
+        NOMAD::eval_type _eval_type;
+        
+        /// Points read in the (optional) initial cache file.
+        std::set<NOMAD::Cache_Point> _cache1;
+        
+        /// Points of the cache to write in the cache file.
+        std::set<NOMAD::Cache_Point> _cache2;
+        
+        /// Points of the cache already saved in the file.
+        std::set<NOMAD::Cache_Point> _cache3;
+        
+        /// Points not from the current run (from a cache file or from a user).
+        mutable std::list<const NOMAD::Eval_Point*> _extern_pts;
+        
+        /// Size in memory.
+        mutable float _sizeof;
+        
+        /// Iterator to browse the cache with \c begin() and \c next().
+        mutable std::set<NOMAD::Cache_Point>::const_iterator _it;
+        
+        /*---------------------------------------------------------------------------*/
+        
+        /// Read points in a cache file.
+        /**
+         - Reads points from a cache file.
+         - Fills the set \c _cache1.
+         \param fin             The already opened input file -- \b IN.
+         \param p_nb_bb_outputs A pointer on an integer with the number
+         of blackbox outputs; can be \c NULL  -- \b IN.
+         \param display         A boolean equal to \c true if displays
+         are authorized -- \b IN.
+         \return A boolean equal to \c true if the file could be read.
+         */
+        bool read_points_from_cache_file ( std::ifstream & fin             ,
+                                          const int     * p_nb_bb_outputs ,
+                                          bool            display           );
+        
+        /// Check if a file is locked.
+        /**
+         \param file_name Name of the file -- \b IN.
+         \return A boolean equal to \c true if the file is locked.
+         */
+        bool is_locked ( const std::string & file_name );
+        
+        /// Lock a file.
+        /**
+         \param file_name Name of the file -- \b IN.
+         \return A boolean equal to \c false if the file was already locked.
+         */
+        bool lock ( const std::string & file_name );
+        
+        /// Unlock the locked file.
+        void unlock ( void );
+        
+        /// Update a point already in cache.
+        /**
+         - The point already in cache is updated from another
          point with the same coordinates.
-       - If both points have a different number of blackbox outputs,
+         - If both points have a different number of blackbox outputs,
          they are not comparable and we set \c cache_x \c = \c x .
-       \param cache_x The point already in cache -- \b IN/OUT.
-       \param x       The other point            -- \b IN.
-    */
-    void update ( NOMAD::Eval_Point & cache_x , const NOMAD::Eval_Point & x ) const;
-    
-    /// Find a point in the cache.
-    /**
-       \param x           The point -- \b IN.
-       \param it          An iterator indicating the position of the point
-                          -- \b OUT.
-       \param cache_index Index of the std::set in which the point has been found
-                          -- \b OUT.
-       \return A pointer to the point in cache.
-       \return \c NULL if \c x is not in the cache.
-    */
-    const NOMAD::Eval_Point * find
-    ( const NOMAD::Eval_Point                      & x           ,
-      std::set<NOMAD::Cache_Point>::const_iterator & it          ,
-      NOMAD::cache_index_type                      & cache_index   ) const;
-    
-    /// Initialization of \c _sizeof.
-    /**
-       \return The size of an empty cache.
-    */
-    int sizeof_init ( void ) const;  
-
-    /*---------------------------------------------------------------------------*/
-    
-  public:
-
-    /// Exception class for a cache error.
-    /**
-       Occurs when points have not the same \c eval_type as \c this->_eval_type.
-    */
-    class Cache_Error : public NOMAD::Exception
-    {
+         \param cache_x The point already in cache -- \b IN/OUT.
+         \param x       The other point            -- \b IN.
+         */
+        void update ( NOMAD::Eval_Point & cache_x , const NOMAD::Eval_Point & x ) const;
+        
+        /// Find a point in the cache.
+        /**
+         \param x           The point -- \b IN.
+         \param it          An iterator indicating the position of the point
+         -- \b OUT.
+         \param cache_index Index of the std::set in which the point has been found
+         -- \b OUT.
+         \return A pointer to the point in cache.
+         \return \c NULL if \c x is not in the cache.
+         */
+        const NOMAD::Eval_Point * find ( const NOMAD::Eval_Point                      & x ,
+                                        std::set<NOMAD::Cache_Point>::const_iterator & it ,
+                                        NOMAD::cache_index_type                      & cache_index) const;
+        
+        /// Initialization of \c _sizeof.
+        /**
+         \return The size of an empty cache.
+         */
+        int sizeof_init ( void ) const;
+        
+        /*---------------------------------------------------------------------------*/
+        
     public:
-      /// Constructor.
-      Cache_Error ( const std::string & file ,
-		    int                 line ,
-		    const std::string & msg    )
-	: NOMAD::Exception ( file , line , msg ) {}
+        
+        /// Exception class for a cache error.
+        /**
+         Occurs when points have not the same \c eval_type as \c this->_eval_type.
+         */
+        class Cache_Error : public NOMAD::Exception
+        {
+        public:
+            /// Constructor.
+            Cache_Error ( const std::string & file ,
+                         int                 line ,
+                         const std::string & msg    )
+            : NOMAD::Exception ( file , line , msg ) {}
+        };
+        
+        /*---------------------------------------------------------------------------*/
+        
+        /// Constructor.
+        /**
+         \param out  The NOMAD::Display object -- \b IN.
+         \param type Type of the cache
+         -- \b IN -- \b optional (default = NOMAD::TRUTH).
+         */
+        explicit Cache ( const NOMAD::Display & out ,
+                        NOMAD::eval_type       type = NOMAD::TRUTH )
+        : _out       ( out                               ) ,
+        _eval_type ( type                              ) ,
+        _sizeof    ( static_cast<float>(sizeof_init()) )   {}
+        
+        /// Destructor.
+        virtual ~Cache ( void ) { clear(); }
+        
+        /// Access to the size of cache in memory.
+        /**
+         \return The size of cache in memory, in bytes.
+         */
+        float size_of ( void ) const { return _sizeof; }
+        
+        /// Access to the number of points.
+        /**
+         \return The number of points in the cache.
+         */
+        int size ( void ) const
+        {
+            return static_cast<int> ( _cache1.size() + _cache2.size() + _cache3.size() );
+        }
+        
+        /// check if the cache is empty.
+        /**
+         \return A boolean equal to \c true if the cache is empty.
+         */
+        bool empty ( void ) const
+        {
+            return _cache1.empty() && _cache2.empty() && _cache3.empty();
+        }
+        
+        /// Access to the evaluation type (truth or surrogate).
+        /**
+         \return The evaluation type.
+         */
+        NOMAD::eval_type get_eval_type ( void ) const { return _eval_type; }
+        
+        /// Const cast for an evaluation point.
+        /**
+         Transforms a \c const NOMAD::Eval_Point \c & into a NOMAD::Eval_Point \c &.
+         \param x The const point -- \b IN.
+         \return  The non-const point.
+         */
+        static NOMAD::Eval_Point & get_modifiable_point ( const NOMAD::Eval_Point & x )
+        {
+            return const_cast<NOMAD::Eval_Point&> ( x );
+        }
+        
+        /// Insertion of a point into the list of extern points.
+        /**
+         \param x The extern point -- \b IN.
+         */
+        void insert_extern_point  ( const NOMAD::Eval_Point & x ) const;
+        
+        /// Access to the number of extern points.
+        /**
+         \return The number of extern points.
+         */
+        virtual int get_nb_extern_points ( void ) const
+        {
+            return static_cast<int>(_extern_pts.size());
+        }
+        
+        /// Access to an extern point.
+        /**
+         Get the first extern point and remove it from the list.
+         \return A pointer to the extern point;
+         \c NULL if there is no extern point.
+         */
+        virtual const NOMAD::Eval_Point * get_and_remove_extern_point ( void ) const;
+        
+        /// Find a point in the cache.
+        /**
+         \param x The point -- \b IN.
+         \return A pointer to the point in cache.
+         \return \c NULL if the point is not in cache.
+         */
+        virtual const NOMAD::Eval_Point * find ( const NOMAD::Eval_Point & x ) const;
+        
+        /// Access to the first point in cache.
+        /**
+         We browse in this order: \c _cache2, \c _cache3, and \c _cache_1 .
+         \return A pointer to the first point in cache;
+         \c NULL if the cache is empty.
+         */
+        const NOMAD::Eval_Point * begin ( void ) const;
+        
+        /// Access to the next point when browsing the cache.
+        /**
+         Supposes that \c begin() has already been called.
+         \return A pointer to the next point; \c NULL if there
+         is no more point.
+         */
+        const NOMAD::Eval_Point * next ( void ) const;
+        
+        /// Erase a point.
+        /**
+         The point is not deleted from memory if its
+         address does not match the address of the point
+         in cache.
+         \param x The point -- \b IN.
+         \return A boolean equal to \c true
+         if the point has been found and removed from the cache.
+         */
+        bool erase ( const NOMAD::Eval_Point & x );
+        
+        /// Insertion of a point in the cache ( \c _cache2 ).
+        /**
+         Supposes that \c x is not already in cache.
+         \param x The point -- \b IN.
+         */
+        virtual void insert ( const NOMAD::Eval_Point & x );
+        
+        /// Insert all points of another cache into the current cache.
+        /**
+         This empties the points in \c c in order to avoid NOMAD::Eval_Point copies.
+         \c c._locked_file and \c this->_locked_file are different by construction.
+         \param c The other cache -- \b IN/OUT.
+         */
+        void insert ( Cache & c );
+        
+        /// Load a cache file.
+        /**
+         - fills the set \c _cache1.
+         - locks the file \c file_name.
+         
+         \param file_name The file -- \b IN.
+         
+         \param p_nb_bb_outputs A pointer to the number of blackbox outputs.
+         It is ignored if equal to \c NULL.
+                  Points from the file with a different number
+                  of outputs are ignored
+                  -- \b IN -- \b optional (default = \c NULL).
+         
+         \param display A boolean equal to \c true if displays
+         are authorized
+         -- \b IN -- \b optional (default = \c true).
+         
+         \return \c false if the file exists and is not a valid cache file.
+         \return \c false if the file is already locked.
+         \return \c false if the object already locked another file.
+         \return \c true if the object is already locked with this file (and do nothing).
+         \return \c true and create a valid cache file if the file does not exist.
+         \return \c false if the previous anything else did not work.
+         */
+        bool load ( const std::string & file_name              ,
+                   const         int * p_nb_bb_outputs = NULL ,
+                   bool                display         = true   );
+        
+        /// Save a cache file.
+        /**
+         \param overwrite A boolean.
+         If \c false, points are written
+         at the end of the locked file and only points
+         from \c _cache2 are considered.
+         These points are then transfered to \c _cache3.
+         If \c true, all the points are considered.
+         -- \b IN -- \b optional (default = \c false).
+         \param display   A boolean equal to \c true if displays
+         are authorized
+         -- \b IN -- \b optional (default = \c true).
+         \return A boolean equal to \c true if the save could complete.
+         */
+        bool save ( bool overwrite = false ,
+                   bool display   = true    );
+        
+        /// Erase all points in cache and unlock the file.
+        void clear ( void );
+        
+        /// Display the list of extern points.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display_extern_pts ( const NOMAD::Display & out ) const;
+        
+        /// Display the list of extern points.
+        /**
+         Uses the \c this->_out member as NOMAD::Display object.
+         */
+        void display_extern_pts ( void ) const { display_extern_pts ( _out ); }
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+        
+        /// Display.
+        /**
+         Uses the \c this->_out member as NOMAD::Display object.
+         */
+        void display ( void ) const { display ( _out ); }
+        
     };
     
-    /*---------------------------------------------------------------------------*/
-
-    /// Constructor.
-    /**
-       \param out  The NOMAD::Display object -- \b IN.
-       \param type Type of the cache
-                   -- \b IN -- \b optional (default = NOMAD::TRUTH).
-    */
-    explicit Cache ( const NOMAD::Display & out ,
-		     NOMAD::eval_type       type = NOMAD::TRUTH )
-      : _out       ( out                               ) ,
-	_eval_type ( type                              ) ,
-	_sizeof    ( static_cast<float>(sizeof_init()) )   {}
-    
-    /// Destructor.
-    virtual ~Cache ( void ) { clear(); }
-    
-    /// Access to the size of cache in memory.
-    /**
-       \return The size of cache in memory, in bytes.
-    */
-    float size_of ( void ) const { return _sizeof; }
-
-    /// Access to the number of points.
-    /**
-       \return The number of points in the cache.
-    */
-    int size ( void ) const
-    {
-      return static_cast<int> ( _cache1.size() + _cache2.size() + _cache3.size() );
-    }
-    
-    /// check if the cache is empty.
+    /// Display a NOMAD::Cache object.
     /**
-       \return A boolean equal to \c true if the cache is empty.
-    */
-    bool empty ( void ) const
-    {
-      return _cache1.empty() && _cache2.empty() && _cache3.empty();
-    }
-    
-    /// Access to the evaluation type (truth or surrogate).
-    /**
-       \return The evaluation type.
-    */
-    NOMAD::eval_type get_eval_type ( void ) const { return _eval_type; }
-
-    /// Const cast for an evaluation point.
-    /**
-       Transforms a \c const NOMAD::Eval_Point \c & into a NOMAD::Eval_Point \c &.
-       \param x The const point -- \b IN.
-       \return  The non-const point.
-    */
-    static NOMAD::Eval_Point & get_modifiable_point ( const NOMAD::Eval_Point & x )
-    {
-      return const_cast<NOMAD::Eval_Point&> ( x );
-    }
-  
-    /// Insertion of a point into the list of extern points.
-    /**
-       \param x The extern point -- \b IN.
-    */
-    void insert_extern_point  ( const NOMAD::Eval_Point & x ) const;
-
-    /// Access to the number of extern points.
-    /**
-       \return The number of extern points.
-    */
-    virtual int get_nb_extern_points ( void ) const { return static_cast<int>(_extern_pts.size()); }
-
-    /// Access to an extern point.
-    /**
-       Get the first extern point and remove it from the list.
-       \return A pointer to the extern point;
-               \c NULL if there is no extern point.
-    */
-    virtual const NOMAD::Eval_Point * get_and_remove_extern_point ( void ) const;
-
-    /// Find a point in the cache.
-    /**
-       \param x The point -- \b IN.
-       \return A pointer to the point in cache.
-       \return \c NULL if the point is not in cache.
-    */
-    virtual const NOMAD::Eval_Point * find ( const NOMAD::Eval_Point & x ) const;
-    
-    /// Access to the first point in cache.
-    /**
-       We browse in this order: \c _cache2, \c _cache3, and \c _cache_1 .
-       \return A pointer to the first point in cache;
-               \c NULL if the cache is empty.
-    */
-    const NOMAD::Eval_Point * begin ( void ) const;
-
-    /// Access to the next point when browsing the cache.
-    /**
-       Supposes that \c begin() has already been called.
-       \return A pointer to the next point; \c NULL if there
-               is no more point.
-    */
-    const NOMAD::Eval_Point * next ( void ) const;
-
-    /// Erase a point.
-    /**
-       The point is not deleted from memory if its
-       address does not match the address of the point
-       in cache.
-       \param x The point -- \b IN.
-       \return A boolean equal to \c true
-               if the point has been found and removed from the cache.
-    */
-    bool erase ( const NOMAD::Eval_Point & x );
-
-    /// Insertion of a point in the cache ( \c _cache2 ).
-    /**
-       Supposes that \c x is not already in cache.
-       \param x The point -- \b IN.
-    */
-    virtual void insert ( const NOMAD::Eval_Point & x );
-
-    /// Insert all points of another cache into the current cache.
-    /**
-       This empties the points in \c c in order to avoid NOMAD::Eval_Point copies.
-       \c c._locked_file and \c this->_locked_file are different by construction.
-       \param c The other cache -- \b IN/OUT.
-    */
-    void insert ( Cache & c );
-
-    /// Load a cache file.
-    /**
-       - fills the set \c _cache1.
-       - locks the file \c file_name.
-
-       \param file_name The file -- \b IN.
-
-       \param p_nb_bb_outputs A pointer to the number of blackbox outputs.
-                              It is ignored if equal to \c NULL.
-			      Points from the file with a different number
-			      of outputs are ignored
-			      -- \b IN -- \b optional (default = \c NULL).
-
-       \param display A boolean equal to \c true if displays
-                      are authorized
-		      -- \b IN -- \b optional (default = \c true).
-
-       \return \c false if the file exists and is not a valid cache file.
-       \return \c false if the file is already locked.
-       \return \c false if the object already locked another file.
-       \return \c true if the object is already locked with this file (and do nothing).
-       \return \c true and create a valid cache file if the file does not exist.
-       \return \c false if the previous anything else did not work.
-    */
-    bool load ( const std::string & file_name              ,
-		const         int * p_nb_bb_outputs = NULL ,
-		bool                display         = true   );
-
-    /// Save a cache file.
-    /**
-       \param overwrite A boolean.
-			If \c false, points are written
-			  at the end of the locked file and only points
-			  from \c _cache2 are considered.
-			  These points are then transfered to \c _cache3.
-			If \c true, all the points are considered.
-		        -- \b IN -- \b optional (default = \c false).
-       \param display   A boolean equal to \c true if displays
-                        are authorized
-		        -- \b IN -- \b optional (default = \c true).
-       \return A boolean equal to \c true if the save could complete.
-    */
-    bool save ( bool overwrite = false ,
-		bool display   = true    );
-    
-    /// Erase all points in cache and unlock the file.
-    void clear ( void );
-
-    /// Display the list of extern points.
-    /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    void display_extern_pts ( const NOMAD::Display & out ) const;
-
-    /// Display the list of extern points.
-    /**
-       Uses the \c this->_out member as NOMAD::Display object.
-    */
-    void display_extern_pts ( void ) const { display_extern_pts ( _out ); }
-
-    /// Display.
-    /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    void display ( const NOMAD::Display & out ) const;
-
-    /// Display.
-    /**
-       Uses the \c this->_out member as NOMAD::Display object.
-    */
-    void display ( void ) const { display ( _out ); }
-
-  };
-  
-  /// Display a NOMAD::Cache object.
-  /**
      \param out The NOMAD::Display object -- \b IN.
      \param c   The NOMAD::Cache object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
-					      const NOMAD::Cache   & c     )
-  {
-    c.display ( out );
-    return out;
-  }
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
+                                               const NOMAD::Cache   & c     )
+    {
+        c.display ( out );
+        return out;
+    }
 }
 
 #endif
diff --git a/src/Cache_File_Point.cpp b/src/Cache_File_Point.cpp
index 97aca5d..d5255df 100644
--- a/src/Cache_File_Point.cpp
+++ b/src/Cache_File_Point.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Cache_File_Point.cpp
-  \brief  Class for points in binary files (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-06
-  \see    Cache_File_Point.hpp
-*/
+ \file   Cache_File_Point.cpp
+ \brief  Class for points in binary files (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-06
+ \see    Cache_File_Point.hpp
+ */
 #include "Cache_File_Point.hpp"
 #include "Eval_Point.hpp"
 
@@ -55,19 +62,19 @@ int NOMAD::Cache_File_Point::_max_cardinality = 0;
 /*                             constructor 1                           */
 /*---------------------------------------------------------------------*/
 NOMAD::Cache_File_Point::Cache_File_Point ( void )
-  : _n           ( 0    ) ,
-    _m           ( 0    ) ,
-    _m_def       ( 0    ) ,
-    _eval_status ( 3    ) ,
-    _coords      ( NULL ) ,
-    _bbo_def     ( NULL ) ,
-    _bbo_index   ( NULL )
+: _n           ( 0    ) ,
+_m           ( 0    ) ,
+_m_def       ( 0    ) ,
+_eval_status ( 3    ) ,
+_coords      ( NULL ) ,
+_bbo_def     ( NULL ) ,
+_bbo_index   ( NULL )
 {
 #ifdef MEMORY_DEBUG
-  ++NOMAD::Cache_File_Point::_cardinality;
-  if ( NOMAD::Cache_File_Point::_cardinality >
-       NOMAD::Cache_File_Point::_max_cardinality )
-    ++NOMAD::Cache_File_Point::_max_cardinality;
+    ++NOMAD::Cache_File_Point::_cardinality;
+    if ( NOMAD::Cache_File_Point::_cardinality >
+        NOMAD::Cache_File_Point::_max_cardinality )
+        ++NOMAD::Cache_File_Point::_max_cardinality;
 #endif
 }
 
@@ -75,88 +82,94 @@ NOMAD::Cache_File_Point::Cache_File_Point ( void )
 /*                             constructor 2                           */
 /*---------------------------------------------------------------------*/
 NOMAD::Cache_File_Point::Cache_File_Point ( const NOMAD::Eval_Point & x )
-  : _n         ( x.size() ) ,
-    _m         ( 0        ) ,
-    _m_def     ( 0        ) ,
-    _coords    ( NULL     ) ,
-    _bbo_def   ( NULL     ) ,
-    _bbo_index ( NULL     )
+: _n         ( x.size() ) ,
+_m         ( 0        ) ,
+_m_def     ( 0        ) ,
+_coords    ( NULL     ) ,
+_bbo_def   ( NULL     ) ,
+_bbo_index ( NULL     )
 {
-	int i;
-	
-	// eval_status:
-	switch ( x.get_eval_status() ) {
-		case NOMAD::EVAL_FAIL:
-			_eval_status = 0;
-			break;
-		case NOMAD::EVAL_OK:
-			_eval_status = 1;
-			break;
-		case NOMAD::EVAL_IN_PROGRESS:
-			_eval_status = 2;
-			break;
-		case NOMAD::UNDEFINED_STATUS:
-			_eval_status = 3;
-			break;
-		case NOMAD::EVAL_USER_REJECT:
-			_eval_status = 3;
-			break;
-	}
-	
-	// inputs:
-	if ( _n > 0 ) {
-		_coords = new double [_n];
-		for ( i = 0 ; i < _n ; ++i )
-			_coords[i] = x[i].value();
-	}
-	else
-		_n = 0;
-	
-	// outputs:
-	const NOMAD::Point & bbo = x.get_bb_outputs();
-	_m = bbo.size();
-	if ( _m > 0 ) {
-		
-		std::vector<double> vd;
-		std::vector<int>    vi;
-		
-		for ( i = 0 ; i < _m ; ++i )
-			if ( bbo[i].is_defined() ) {
-				vd.push_back ( bbo[i].value() );
-				vi.push_back ( i              );
-			}
-		
-		_m_def = static_cast<int> ( vd.size() );
-		if ( _m_def > 0 ) {
-			_bbo_def   = new double [_m_def];
-			_bbo_index = new int    [_m_def];
-			for ( i = 0 ; i < _m_def ; ++i ) {
-				_bbo_def  [i] = vd[i];
-				_bbo_index[i] = vi[i];
-			}
-		}
-	}
-	else
-		_m = 0;
-	
+    int i;
+    
+    // eval_status:
+    switch ( x.get_eval_status() )
+    {
+        case NOMAD::EVAL_FAIL:
+            _eval_status = 0;
+            break;
+        case NOMAD::EVAL_OK:
+            _eval_status = 1;
+            break;
+        case NOMAD::EVAL_IN_PROGRESS:
+            _eval_status = 2;
+            break;
+        case NOMAD::UNDEFINED_STATUS:
+            _eval_status = 3;
+            break;
+        case NOMAD::EVAL_USER_REJECT:
+            _eval_status = 3;
+            break;
+    }
+    
+    // inputs:
+    if ( _n > 0 )
+    {
+        _coords = new double [_n];
+        for ( i = 0 ; i < _n ; ++i )
+            _coords[i] = x[i].value();
+    }
+    else
+        _n = 0;
+    
+    // outputs:
+    const NOMAD::Point & bbo = x.get_bb_outputs();
+    _m = bbo.size();
+    if ( _m > 0 )
+    {
+        
+        std::vector<double> vd;
+        std::vector<int>    vi;
+        
+        for ( i = 0 ; i < _m ; ++i )
+            if ( bbo[i].is_defined() )
+            {
+                vd.push_back ( bbo[i].value() );
+                vi.push_back ( i              );
+            }
+        
+        _m_def = static_cast<int> ( vd.size() );
+        if ( _m_def > 0 )
+        {
+            _bbo_def   = new double [_m_def];
+            _bbo_index = new int    [_m_def];
+            for ( i = 0 ; i < _m_def ; ++i )
+            {
+                _bbo_def  [i] = vd[i];
+                _bbo_index[i] = vi[i];
+            }
+        }
+    }
+    else
+        _m = 0;
+    
 #ifdef MEMORY_DEBUG
-	++NOMAD::Cache_File_Point::_cardinality;
-	if ( NOMAD::Cache_File_Point::_cardinality >
-		NOMAD::Cache_File_Point::_max_cardinality )
-		++NOMAD::Cache_File_Point::_max_cardinality;
+    ++NOMAD::Cache_File_Point::_cardinality;
+    if ( NOMAD::Cache_File_Point::_cardinality >
+        NOMAD::Cache_File_Point::_max_cardinality )
+        ++NOMAD::Cache_File_Point::_max_cardinality;
 #endif
 }
 
 /*---------------------------------------------------------------------*/
 /*                              destructor                             */
 /*---------------------------------------------------------------------*/
-NOMAD::Cache_File_Point::~Cache_File_Point ( void ) 
+NOMAD::Cache_File_Point::~Cache_File_Point ( void )
 {
-  delete [] _coords;
-  delete [] _bbo_def;
-  delete [] _bbo_index;
+    delete [] _coords;
+    delete [] _bbo_def;
+    delete [] _bbo_index;
 #ifdef MEMORY_DEBUG
-  --NOMAD::Cache_File_Point::_cardinality;
+    --NOMAD::Cache_File_Point::_cardinality;
 #endif
 }
 
@@ -165,10 +178,10 @@ NOMAD::Cache_File_Point::~Cache_File_Point ( void )
 /*---------------------------------------------------------------------*/
 double NOMAD::Cache_File_Point::get_coord ( int i ) const
 {
-  if ( !_coords || i < 0 || i >= _n )
-    throw NOMAD::Exception ( "Cache_File_Point.cpp" , __LINE__ ,
-			     "bad access in Cache_File_Point::get_coord()" );
-  return _coords[i];
+    if ( !_coords || i < 0 || i >= _n )
+        throw NOMAD::Exception ( "Cache_File_Point.cpp" , __LINE__ ,
+                                "bad access in Cache_File_Point::get_coord()" );
+    return _coords[i];
 }
 
 /*---------------------------------------------------------------------*/
@@ -176,10 +189,10 @@ double NOMAD::Cache_File_Point::get_coord ( int i ) const
 /*---------------------------------------------------------------------*/
 const NOMAD::Point NOMAD::Cache_File_Point::get_bb_outputs ( void  ) const
 {
-  NOMAD::Point bbo ( _m );
-  for ( int i = 0 ; i < _m_def ; ++i )
-    bbo [ _bbo_index[i] ] = _bbo_def[i];
-  return bbo;
+    NOMAD::Point bbo ( _m );
+    for ( int i = 0 ; i < _m_def ; ++i )
+        bbo [ _bbo_index[i] ] = _bbo_def[i];
+    return bbo;
 }
 
 /*---------------------------------------------------------*/
@@ -187,16 +200,16 @@ const NOMAD::Point NOMAD::Cache_File_Point::get_bb_outputs ( void  ) const
 /*---------------------------------------------------------*/
 void NOMAD::Cache_File_Point::reset ( void )
 {
-  _n = _m = _m_def = 0;
-  _eval_status = 3;
-
-  delete [] _coords;
-  delete [] _bbo_def;
-  delete [] _bbo_index;
-
-  _coords    = NULL;
-  _bbo_def   = NULL;
-  _bbo_index = NULL;
+    _n = _m = _m_def = 0;
+    _eval_status = 3;
+    
+    delete [] _coords;
+    delete [] _bbo_def;
+    delete [] _bbo_index;
+    
+    _coords    = NULL;
+    _bbo_def   = NULL;
+    _bbo_index = NULL;
 }
 
 /*---------------------------------------------------------*/
@@ -204,35 +217,36 @@ void NOMAD::Cache_File_Point::reset ( void )
 /*---------------------------------------------------------*/
 bool NOMAD::Cache_File_Point::write ( std::ofstream & fout ) const
 {
-  // do nothing if no point:
-  if ( _n <= 0 )
-    return true;
-
-  // 1. _eval_status:
-  fout.write ( (char *) &_eval_status , sizeof(_eval_status)  );
-
-  // 2. _n:
-  fout.write ( (char *) &_n           , sizeof(_n)            );
-
-  // 3. _m:
-  fout.write ( (char *) &_m           , sizeof(_m)            );
-
-  // 4. _m_def:
-  fout.write ( (char *) &_m_def       , sizeof(_m_def)        );
-
-  // 5. _coords:
-  fout.write ( (char *)  _coords      , _n*sizeof(double)     );
-
-  if ( _m_def > 0 ) {
-
-    // 6. _bbo_def:
-    fout.write ( (char *)  _bbo_def   , _m_def*sizeof(double) );
-
-    // 7. _bbo_index:
-    fout.write ( (char *)  _bbo_index , _m_def*sizeof(int)    );
-  }
-
-  return !fout.fail();
+    // do nothing if no point:
+    if ( _n <= 0 )
+        return true;
+    
+    // 1. _eval_status:
+    fout.write ( (char *) &_eval_status , sizeof(_eval_status)  );
+    
+    // 2. _n:
+    fout.write ( (char *) &_n           , sizeof(_n)            );
+    
+    // 3. _m:
+    fout.write ( (char *) &_m           , sizeof(_m)            );
+    
+    // 4. _m_def:
+    fout.write ( (char *) &_m_def       , sizeof(_m_def)        );
+    
+    // 5. _coords:
+    fout.write ( (char *)  _coords      , _n*sizeof(double)     );
+    
+    if ( _m_def > 0 )
+    {
+        
+        // 6. _bbo_def:
+        fout.write ( (char *)  _bbo_def   , _m_def*sizeof(double) );
+        
+        // 7. _bbo_index:
+        fout.write ( (char *)  _bbo_index , _m_def*sizeof(int)    );
+    }
+    
+    return !fout.fail();
 }
 
 /*---------------------------------------------------------*/
@@ -240,62 +254,69 @@ bool NOMAD::Cache_File_Point::write ( std::ofstream & fout ) const
 /*---------------------------------------------------------*/
 bool NOMAD::Cache_File_Point::read ( std::ifstream & fin )
 {
-  reset();
-
-  // 1. _eval_status:
-  fin.read ( (char *) &_eval_status , sizeof(_eval_status) );
-  if ( fin.fail() || _eval_status > 3 )
-    return false;
-
-  // 2. _n:
-  fin.read ( (char *) &_n , sizeof(_n) );
-  if ( fin.fail() || _n <= 0 ) {
-    _n = 0;
-    return false;
-  }
-
-  // 3. _m:
-  fin.read ( (char *) &_m , sizeof(_m) );
-  if ( fin.fail() || _m < 0 ) {
-    _n = _m = 0;
-    return false;
-  }
-
-  // 4. _m_def:
-  fin.read ( (char *) &_m_def , sizeof(_m_def) );
-  if ( fin.fail() || _m_def < 0 ) {
-    _m_def = _n = _m = 0;
-    return false;
-  }
-
-  // 5. _coords:
-  _coords = new double [_n];
-  fin.read ( (char *) _coords , _n*sizeof(double) );
-  if ( fin.fail() ) {
     reset();
-    return false;
-  }
-
-  if ( _m_def > 0 ) {
-
-    // 6. _bb_def:
-    _bbo_def = new double [_m_def];
-    fin.read ( (char *) _bbo_def , _m_def*sizeof(double) );
-    if ( fin.fail() ) {
-      reset();
-      return false;
+    
+    // 1. _eval_status:
+    fin.read ( (char *) &_eval_status , sizeof(_eval_status) );
+    if ( fin.fail() || _eval_status > 3 )
+        return false;
+    
+    // 2. _n:
+    fin.read ( (char *) &_n , sizeof(_n) );
+    if ( fin.fail() || _n <= 0 )
+    {
+        _n = 0;
+        return false;
     }
-  
-    // 7. _bbo_index:
-    _bbo_index = new int [_m_def];
-    fin.read ( (char *) _bbo_index , _m_def*sizeof(int) );
-    if ( fin.fail() ) {
-      reset();
-      return false;
+    
+    // 3. _m:
+    fin.read ( (char *) &_m , sizeof(_m) );
+    if ( fin.fail() || _m < 0 )
+    {
+        _n = _m = 0;
+        return false;
     }
-  }
-
-  return true;
+    
+    // 4. _m_def:
+    fin.read ( (char *) &_m_def , sizeof(_m_def) );
+    if ( fin.fail() || _m_def < 0 )
+    {
+        _m_def = _n = _m = 0;
+        return false;
+    }
+    
+    // 5. _coords:
+    _coords = new double [_n];
+    fin.read ( (char *) _coords , _n*sizeof(double) );
+    if ( fin.fail() )
+    {
+        reset();
+        return false;
+    }
+    
+    if ( _m_def > 0 )
+    {
+        
+        // 6. _bb_def:
+        _bbo_def = new double [_m_def];
+        fin.read ( (char *) _bbo_def , _m_def*sizeof(double) );
+        if ( fin.fail() )
+        {
+            reset();
+            return false;
+        }
+        
+        // 7. _bbo_index:
+        _bbo_index = new int [_m_def];
+        fin.read ( (char *) _bbo_index , _m_def*sizeof(int) );
+        if ( fin.fail() )
+        {
+            reset();
+            return false;
+        }
+    }
+    
+    return true;
 }
 
 /*---------------------------------------------------------*/
@@ -303,25 +324,27 @@ bool NOMAD::Cache_File_Point::read ( std::ifstream & fin )
 /*---------------------------------------------------------*/
 void NOMAD::Cache_File_Point::display ( const NOMAD::Display & out ) const
 {
-  out << "n      : " << _n     << std::endl
-      << "m      : " << _m     << std::endl
-      << "m_def  : " << _m_def << std::endl;
-
-  int i;
-  if ( _n > 0 ) {
-    out << "coords    : ( ";
-    for ( i = 0 ; i < _n ; ++i )
-      out << _coords[i] << " ";
-    out << ")" << std::endl;
-  }
-  if ( _m_def > 0 ) {
-    out << "bbo_def   : [ ";
-    for ( i = 0 ; i < _m_def ; ++i )
-      out << _bbo_def[i] << " ";
-    out << "]" << std::endl
-	<< "bbo_index : [ ";
-    for ( i = 0 ; i < _m_def ; ++i )
-      out << _bbo_index[i] << " ";
-    out << "]" << std::endl;
-  }
+    out << "n      : " << _n     << std::endl
+    << "m      : " << _m     << std::endl
+    << "m_def  : " << _m_def << std::endl;
+    
+    int i;
+    if ( _n > 0 ) 
+    {
+        out << "coords    : ( ";
+        for ( i = 0 ; i < _n ; ++i )
+            out << _coords[i] << " ";
+        out << ")" << std::endl;
+    }
+    if ( _m_def > 0 ) 
+    {
+        out << "bbo_def   : [ ";
+        for ( i = 0 ; i < _m_def ; ++i )
+            out << _bbo_def[i] << " ";
+        out << "]" << std::endl
+        << "bbo_index : [ ";
+        for ( i = 0 ; i < _m_def ; ++i )
+            out << _bbo_index[i] << " ";
+        out << "]" << std::endl;
+    }
 }
diff --git a/src/Cache_File_Point.hpp b/src/Cache_File_Point.hpp
index 3fcf4f0..7688a9e 100644
--- a/src/Cache_File_Point.hpp
+++ b/src/Cache_File_Point.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Cache_File_Point.hpp
-  \brief  Class for points in binary files (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-06
-  \see    Cache_File_Point.cpp
-*/
+ \file   Cache_File_Point.hpp
+ \brief  Class for points in binary files (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-06
+ \see    Cache_File_Point.cpp
+ */
 
 #ifndef __CACHE_FILE_POINT__
 #define __CACHE_FILE_POINT__
@@ -48,155 +55,155 @@
 #include "Uncopyable.hpp"
 
 namespace NOMAD {
-  
-  // forward declarations:
-  class Point;
-  class Eval_Point;
-
-  /// Class to represent NOMAD::Eval_Point objects in binary files.
-  /**
-   - All point coordinates are saved.
-   - Only defined blackbox outputs are saved.
-   - To get all bb_outputs:
-   \code
-   NOMAD::Point bbo ( _m );
-   for ( int i = 0 ; i < _m_def ; ++i )
-     bbo [ _bbo_index[i] ] = _bbo_def[i];
-   \endcode
-  */
-  class Cache_File_Point : private NOMAD::Uncopyable {
-
-  private:
     
+    // forward declarations:
+    class Point;
+    class Eval_Point;
+    
+    /// Class to represent NOMAD::Eval_Point objects in binary files.
+    /**
+     - All point coordinates are saved.
+     - Only defined blackbox outputs are saved.
+     - To get all bb_outputs:
+     \code
+     NOMAD::Point bbo ( _m );
+     for ( int i = 0 ; i < _m_def ; ++i )
+     bbo [ _bbo_index[i] ] = _bbo_def[i];
+     \endcode
+     */
+    class Cache_File_Point : private NOMAD::Uncopyable {
+        
+    private:
+        
 #ifdef MEMORY_DEBUG
-    /// Number of NOMAD::Cache_File_Point objects in memory.
-    static int _cardinality;
-
-    /// Max number of NOMAD::Cache_File_Point objects in memory.
-    static int _max_cardinality;
+        /// Number of NOMAD::Cache_File_Point objects in memory.
+        static int _cardinality;
+        
+        /// Max number of NOMAD::Cache_File_Point objects in memory.
+        static int _max_cardinality;
 #endif
-
-    int           _n;      ///< Dimension of the point.
-    int           _m;      ///< Number of blackbox outputs (both defined and undefined).
-    int           _m_def;  ///< Number of defined blackbox outputs.
-
-    /// Evaluation status.
-    /**
-	- 0: fail.
-	- 1: ok.
-	- 2: in progress.
-	- 3: undefined.
-    */
-    unsigned char _eval_status;
-
-    double      * _coords;     ///< The \c _n coordinates.
-    double      * _bbo_def;    ///< The \c _m_def defined blackbox output values.
-    int         * _bbo_index;  ///< The index for the blackbox output values.
-
-    /// Reset.
-    void reset ( void );
-
-  public:
-
+        
+        int           _n;      ///< Dimension of the point.
+        int           _m;      ///< Number of blackbox outputs (both defined and undefined).
+        int           _m_def;  ///< Number of defined blackbox outputs.
+        
+        /// Evaluation status.
+        /**
+         - 0: fail.
+         - 1: ok.
+         - 2: in progress.
+         - 3: undefined.
+         */
+        unsigned char _eval_status;
+        
+        double      * _coords;     ///< The \c _n coordinates.
+        double      * _bbo_def;    ///< The \c _m_def defined blackbox output values.
+        int         * _bbo_index;  ///< The index for the blackbox output values.
+        
+        /// Reset.
+        void reset ( void );
+        
+    public:
+        
 #ifdef MEMORY_DEBUG
-    /// Access to the number of NOMAD::Cache_File_Point objects in memory.
-    /**
-       \return The number of NOMAD::Cache_File_Point objects in memory.
-    */
-    static int get_cardinality ( void ) { return Cache_File_Point::_cardinality; }
-
-    /// Access to the max number of NOMAD::Cache_File_Point objects in memory.
-    /**
-       \return The max number of NOMAD::Cache_File_Point objects in memory.
-    */
-    static int get_max_cardinality ( void )
-    {
-      return Cache_File_Point::_max_cardinality;
-    }
+        /// Access to the number of NOMAD::Cache_File_Point objects in memory.
+        /**
+         \return The number of NOMAD::Cache_File_Point objects in memory.
+         */
+        static int get_cardinality ( void ) { return Cache_File_Point::_cardinality; }
+        
+        /// Access to the max number of NOMAD::Cache_File_Point objects in memory.
+        /**
+         \return The max number of NOMAD::Cache_File_Point objects in memory.
+         */
+        static int get_max_cardinality ( void )
+        {
+            return Cache_File_Point::_max_cardinality;
+        }
 #endif
-
-    /// Constructor #1.
-    explicit Cache_File_Point ( void );
-    
-    /// Constructor #2.
-    /**
-       From a NOMAD::Eval_Point object.
-       \param x The evaluation point.
-    */
-    explicit Cache_File_Point ( const NOMAD::Eval_Point & x );
+        
+        /// Constructor #1.
+        explicit Cache_File_Point ( void );
+        
+        /// Constructor #2.
+        /**
+         From a NOMAD::Eval_Point object.
+         \param x The evaluation point.
+         */
+        explicit Cache_File_Point ( const NOMAD::Eval_Point & x );
+        
+        /// Destructor.
+        virtual ~Cache_File_Point ( void );
+        
+        /// Access to the dimension of the point.
+        /**
+         \return The dimension of the point.
+         */
+        int get_n ( void  ) const { return _n; }
+        
+        /// Access to the number of blackbox outputs.
+        /**
+         \return The number of blackbox outputs.
+         */
+        int get_m ( void  ) const { return _m; }
+        
+        /// Access to the evaluation status.
+        /**
+         Evaluation status as a character:
+         - 0: fail.
+         - 1: ok.
+         - 2: in progress.
+         - 3: undefined.
+         \return A character as the evaluation status.
+         */
+        unsigned char get_eval_status ( void ) const { return _eval_status; }
+        
+        /// Access to the coordinates.
+        /**
+         \param i The index (0 for the first element) -- \b IN.
+         \return The \c (i+1)th coordinate.
+         */
+        double get_coord ( int i ) const;
+        
+        /// Access to the blackbox outputs.
+        /**
+         \return A NOMAD::Point as the \c _m outputs.
+         */
+        const NOMAD::Point get_bb_outputs ( void ) const;
+        
+        /// Write in a binary file.
+        /**
+         \param fout The output file -- \b IN/OUT.
+         \return A boolean equal to \c true if the file could be written.
+         */
+        bool write ( std::ofstream & fout ) const;
+        
+        /// Read in a binary file.
+        /**
+         \param fin The input file -- \b IN/OUT.
+         \return A boolean equal to \c true if the file could be read.
+         */
+        bool read ( std::ifstream & fin );
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+    };
     
-    /// Destructor.
-    virtual ~Cache_File_Point ( void );
-
-    /// Access to the dimension of the point.
-    /**
-       \return The dimension of the point.
-    */    
-    int get_n ( void  ) const { return _n; }
-
-    /// Access to the number of blackbox outputs.
+    /// Display a NOMAD::Cache_File_Point object.
     /**
-       \return The number of blackbox outputs.
-    */  
-    int get_m ( void  ) const { return _m; }
-
-    /// Access to the evaluation status.
-    /**
-       Evaluation status as a character:
-       - 0: fail.
-       - 1: ok.
-       - 2: in progress.
-       - 3: undefined.
-       \return A character as the evaluation status.
-    */  
-    unsigned char get_eval_status ( void ) const { return _eval_status; }
-
-    /// Access to the coordinates.
-    /**
-       \param i The index (0 for the first element) -- \b IN.
-       \return The \c (i+1)th coordinate.
-    */
-    double get_coord ( int i ) const;
-
-    /// Access to the blackbox outputs.
-    /**
-       \return A NOMAD::Point as the \c _m outputs.
-    */
-    const NOMAD::Point get_bb_outputs ( void ) const;
-    
-    /// Write in a binary file.
-    /**
-       \param fout The output file -- \b IN/OUT.
-       \return A boolean equal to \c true if the file could be written.
-    */
-    bool write ( std::ofstream & fout ) const;
-    
-    /// Read in a binary file.
-    /**
-       \param fin The input file -- \b IN/OUT.
-       \return A boolean equal to \c true if the file could be read.
-    */
-    bool read ( std::ifstream & fin );
-    
-    /// Display.
-    /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    void display ( const NOMAD::Display & out ) const;
-  };
-
-  /// Display a NOMAD::Cache_File_Point object.
-  /**
      \param out The NOMAD::Display object -- \b IN.
      \param x   The NOMAD::Cache_File_Point object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display          & out ,
-					      const NOMAD::Cache_File_Point & x     )
-  {
-    x.display ( out );
-    return out;
-  }
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display          & out ,
+                                               const NOMAD::Cache_File_Point & x     )
+    {
+        x.display ( out );
+        return out;
+    }
 }
 
 #endif
diff --git a/src/Cache_Point.cpp b/src/Cache_Point.cpp
index 9b17725..ef43345 100644
--- a/src/Cache_Point.cpp
+++ b/src/Cache_Point.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Cache_Point.cpp
-  \brief  Point stored in the cache (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-08
-  \see    Cache_Point.hpp
-*/
+ \file   Cache_Point.cpp
+ \brief  Point stored in the cache (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-08
+ \see    Cache_Point.hpp
+ */
 #include "Cache_Point.hpp"
 
 /*-----------------------------------------------------------*/
@@ -47,7 +54,7 @@
 /*-----------------------------------------------------------*/
 bool NOMAD::Cache_Point::operator < ( const Set_Element<NOMAD::Eval_Point> & cp ) const
 {
-  if ( get_element()->get_tag() == cp.get_element()->get_tag() )
-    return false;
-  return get_element()->Point::operator < ( *(cp.get_element()) );
+    if ( get_element()->get_tag() == cp.get_element()->get_tag() )
+        return false;
+    return get_element()->Point::operator < ( *(cp.get_element()) );
 }
diff --git a/src/Cache_Point.hpp b/src/Cache_Point.hpp
index eb76b6a..4a7bd2c 100644
--- a/src/Cache_Point.hpp
+++ b/src/Cache_Point.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,64 +41,64 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Cache_Point.hpp
-  \brief  Point stored in the cache (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-08
-  \see    Cache_Point.cpp
-*/
+ \file   Cache_Point.hpp
+ \brief  Point stored in the cache (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-08
+ \see    Cache_Point.cpp
+ */
 #ifndef __CACHE_POINT__
 #define __CACHE_POINT__
 
 #include "Eval_Point.hpp"
 
 namespace NOMAD {
-
-  /// Class for the representation of NOMAD::Eval_Point objects stored in the cache.
-  class Cache_Point : public NOMAD::Set_Element<NOMAD::Eval_Point> {
-
-  private:
-
-    /// Affectation operator.
-    /**
-       \param cp The right-hand side object -- \b IN.
-       \return \c *this as the result of the affectation.
-    */
-    Cache_Point & operator = ( const Cache_Point & cp );
-
-  public:
-
-    /// Constructor.
-    /**
-       \param x A pointer to the NOMAD::Eval_Point object
-                that is stored in the cache -- \b IN.
-    */
-    explicit Cache_Point ( const NOMAD::Eval_Point * x )
-      : NOMAD::Set_Element<NOMAD::Eval_Point> ( x ) {}
-
-    /// Copy constructor.
-    /**
-       \param cp The copied object -- \b IN.
-    */
-    Cache_Point ( const Cache_Point & cp )
-      : NOMAD::Set_Element<NOMAD::Eval_Point> ( cp.get_element() ) {}
-
-    /// Destructor.
-    virtual ~Cache_Point ( void ) {}
-
-    /// Comparison operator.
-    /**
-       \param  cp The right-hand side object.
-       \return A boolean equal to \c true if \c *this \c < \c cp.
-    */
-    virtual bool operator < ( const NOMAD::Set_Element<NOMAD::Eval_Point> & cp ) const;
-
-    /// Access to the point.
-    /**
-       \return A pointer to the NOMAD::Eval_Point stored in the cache.
-    */
-    const NOMAD::Eval_Point * get_point ( void ) const { return get_element(); }
-  };
+    
+    /// Class for the representation of NOMAD::Eval_Point objects stored in the cache.
+    class Cache_Point : public NOMAD::Set_Element<NOMAD::Eval_Point> {
+        
+    private:
+        
+        /// Affectation operator.
+        /**
+         \param cp The right-hand side object -- \b IN.
+         \return \c *this as the result of the affectation.
+         */
+        Cache_Point & operator = ( const Cache_Point & cp );
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param x A pointer to the NOMAD::Eval_Point object
+         that is stored in the cache -- \b IN.
+         */
+        explicit Cache_Point ( const NOMAD::Eval_Point * x )
+        : NOMAD::Set_Element<NOMAD::Eval_Point> ( x ) {}
+        
+        /// Copy constructor.
+        /**
+         \param cp The copied object -- \b IN.
+         */
+        Cache_Point ( const Cache_Point & cp )
+        : NOMAD::Set_Element<NOMAD::Eval_Point> ( cp.get_element() ) {}
+        
+        /// Destructor.
+        virtual ~Cache_Point ( void ) {}
+        
+        /// Comparison operator.
+        /**
+         \param  cp The right-hand side object.
+         \return A boolean equal to \c true if \c *this \c < \c cp.
+         */
+        virtual bool operator < ( const NOMAD::Set_Element<NOMAD::Eval_Point> & cp ) const;
+        
+        /// Access to the point.
+        /**
+         \return A pointer to the NOMAD::Eval_Point stored in the cache.
+         */
+        const NOMAD::Eval_Point * get_point ( void ) const { return get_element(); }
+    };
 }
 
 #endif
diff --git a/src/Cache_Search.cpp b/src/Cache_Search.cpp
index 58cbd70..2d22fc9 100644
--- a/src/Cache_Search.cpp
+++ b/src/Cache_Search.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,122 +41,127 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Cache_Search.cpp
-  \brief  NOMAD::Search subclass for the cache search (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-08
-  \see    Cache_Search.hpp
-*/
+ \file   Cache_Search.cpp
+ \brief  NOMAD::Search subclass for the cache search (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-08
+ \see    Cache_Search.hpp
+ */
 #include "Cache_Search.hpp"
 
 /*---------------------------------------------------------*/
 /*                       the search                        */
 /*---------------------------------------------------------*/
 void NOMAD::Cache_Search::search ( NOMAD::Mads              & mads           ,
-				   int                      & nb_search_pts  ,
-				   bool                     & stop           ,
-				   NOMAD::stop_type         & stop_reason    ,
-				   NOMAD::success_type      & success        ,
-				   bool                     & count_search   ,
-				   const NOMAD::Eval_Point *& new_feas_inc   ,
-				   const NOMAD::Eval_Point *& new_infeas_inc   )
-{ 
-  new_feas_inc  = new_infeas_inc = NULL;
-  nb_search_pts = 0;
-  success       = NOMAD::UNSUCCESSFUL;
-  count_search  = false;
-
-  NOMAD::Evaluator_Control & ev_control    = mads.get_evaluator_control();
-  const Cache              & cache         = mads.get_cache();
-  int                        nb_extern_pts = cache.get_nb_extern_points();
-
-  // do not perform the search if the number of extern points did not change:
-  if ( stop || nb_extern_pts == 0 || nb_extern_pts == _last_search_nb_extern_pts )
-    return;
-
-  count_search = true;
-
-  // initial display:
-  const NOMAD::Display    & out = _p.out();
-  NOMAD::dd_type display_degree = out.get_search_dd();
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    std::ostringstream oss;
-    oss << NOMAD::CACHE_SEARCH;
-    out << std::endl << NOMAD::open_block ( oss.str() ) << std::endl;
-  }
-
-  std::list<const NOMAD::Eval_Point*> list_of_extern_pts;
-  const NOMAD::Eval_Point * extern_pt = cache.get_and_remove_extern_point();
-  NOMAD::Eval_Point       * pt        = NULL;
-  int                       n         = _p.get_dimension();
-
-  // add the extern points to the list of points to be evaluated:
-  while ( extern_pt ) {
-
-    list_of_extern_pts.push_front ( extern_pt );
-
-    pt = &NOMAD::Cache::get_modifiable_point ( *extern_pt );
+                                  int                      & nb_search_pts  ,
+                                  bool                     & stop           ,
+                                  NOMAD::stop_type         & stop_reason    ,
+                                  NOMAD::success_type      & success        ,
+                                  bool                     & count_search   ,
+                                  const NOMAD::Eval_Point *& new_feas_inc   ,
+                                  const NOMAD::Eval_Point *& new_infeas_inc   )
+{
+    new_feas_inc  = new_infeas_inc = NULL;
+    nb_search_pts = 0;
+    success       = NOMAD::UNSUCCESSFUL;
+    count_search  = false;
+    
+    NOMAD::Evaluator_Control & ev_control    = mads.get_evaluator_control();
+    const Cache              & cache         = mads.get_cache();
+    int                        nb_extern_pts = cache.get_nb_extern_points();
     
-    if ( extern_pt->get_signature() )
-      pt->set_signature ( extern_pt->get_signature() );
-    else if ( extern_pt->size() == n )
-      pt->set_signature ( _p.get_signature() );
+    // do not perform the search if the number of extern points did not change:
+    if ( stop || nb_extern_pts == 0 || nb_extern_pts == _last_search_nb_extern_pts )
+        return;
     
-    if ( pt->get_signature() )
-      ev_control.add_eval_point ( pt              ,
-				  display_degree  ,
-				  false           ,
-				  NOMAD::Double() ,
-				  NOMAD::Double() ,
-				  NOMAD::Double() ,
-				  NOMAD::Double()   );
-    else {
-      if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY )
-	out << std::endl << "Warning (Cache_Search.cpp, " << __LINE__
-	    << "): could not use the point " << *pt
-	    << "(no signature)" << std::endl;
+    count_search = true;
+    
+    // initial display:
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_search_dd();
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
+        std::ostringstream oss;
+        oss << NOMAD::CACHE_SEARCH;
+        out << std::endl << NOMAD::open_block ( oss.str() ) << std::endl;
+    }
+    
+    std::list<const NOMAD::Eval_Point*> list_of_extern_pts;
+    const NOMAD::Eval_Point * extern_pt = cache.get_and_remove_extern_point();
+    NOMAD::Eval_Point       * pt        = NULL;
+    int                       n         = _p.get_dimension();
+    
+    // add the extern points to the list of points to be evaluated:
+    while ( extern_pt )
+    {
+        
+        list_of_extern_pts.push_front ( extern_pt );
+        
+        pt = &NOMAD::Cache::get_modifiable_point ( *extern_pt );
+        
+        if ( extern_pt->get_signature() )
+            pt->set_signature ( extern_pt->get_signature() );
+        else if ( extern_pt->size() == n )
+            pt->set_signature ( _p.get_signature() );
+        
+        if ( pt->get_signature() )
+            ev_control.add_eval_point ( pt              ,
+                                       display_degree  ,
+                                       false           ,
+                                       NOMAD::Double() ,
+                                       NOMAD::Double() ,
+                                       NOMAD::Double() ,
+                                       NOMAD::Double()   );
+        else
+        {
+            
+            if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY )
+                out << std::endl << "Warning (Cache_Search.cpp, " << __LINE__
+                << "): could not use the point " << *pt
+                << "(no signature)" << std::endl;
+        }
+        
+        extern_pt = cache.get_and_remove_extern_point();
+    }
+    
+    nb_search_pts = ev_control.get_nb_eval_points();
+    
+    // display all the search points:
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        ev_control.display_eval_lop ( NOMAD::CACHE_SEARCH );
+    
+    // eval_list_of_points:
+    new_feas_inc = new_infeas_inc = NULL;
+    ev_control.eval_list_of_points ( NOMAD::CACHE_SEARCH     ,
+                                    mads.get_true_barrier() ,
+                                    mads.get_sgte_barrier() ,
+                                    mads.get_pareto_front() ,
+                                    stop                    ,
+                                    stop_reason             ,
+                                    new_feas_inc            ,
+                                    new_infeas_inc          ,
+                                    success                   );
+    
+    // the method cache.get_and_remove_extern_point() removes the first extern
+    // point from the cache. If the search is opportunistic and if there are
+    // extern points that have not been treated, then they must be put back
+    // in the cache list of extern points:
+    {
+        std::list<const NOMAD::Eval_Point*>::const_iterator
+        it , end = list_of_extern_pts.end();
+        for ( it = list_of_extern_pts.begin() ; it != end ; ++it )
+            if ( !(*it)->get_current_run() )
+                cache.insert_extern_point ( **it );
+    }
+    
+    // update _last_search_nb_extern_pts:
+    _last_search_nb_extern_pts = cache.get_nb_extern_points();
+    
+    // final display:
+    if ( display_degree == NOMAD::FULL_DISPLAY ) 
+    {
+        std::ostringstream oss;
+        oss << "end of cache search (" << success << ")";
+        out << std::endl << NOMAD::close_block ( oss.str() ) << std::endl;
     }
-
-    extern_pt = cache.get_and_remove_extern_point();
-  }
-
-  nb_search_pts = ev_control.get_nb_eval_points();
-
-  // display all the search points:
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    ev_control.display_eval_lop ( NOMAD::CACHE_SEARCH );
-
-  // eval_list_of_points:
-  new_feas_inc = new_infeas_inc = NULL;
-  ev_control.eval_list_of_points ( NOMAD::CACHE_SEARCH     ,
-				   mads.get_true_barrier() ,
-				   mads.get_sgte_barrier() ,
-				   mads.get_pareto_front() ,
-				   stop                    ,
-				   stop_reason             ,
-				   new_feas_inc            ,
-				   new_infeas_inc          ,
-				   success                   );
-
-  // the method cache.get_and_remove_extern_point() removes the first extern
-  // point from the cache. If the search is opportunistic and if there are
-  // extern points that have not been treated, then they must be put back
-  // in the cache list of extern points:
-  {
-    std::list<const NOMAD::Eval_Point*>::const_iterator
-      it , end = list_of_extern_pts.end();
-    for ( it = list_of_extern_pts.begin() ; it != end ; ++it )
-      if ( !(*it)->get_current_run() )
-	cache.insert_extern_point ( **it );
-  }
-
-  // update _last_search_nb_extern_pts:
-  _last_search_nb_extern_pts = cache.get_nb_extern_points();
-
-  // final display:
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    std::ostringstream oss;
-    oss << "end of cache search (" << success << ")";
-    out << std::endl << NOMAD::close_block ( oss.str() ) << std::endl;
-  }
 }
diff --git a/src/Cache_Search.hpp b/src/Cache_Search.hpp
index 25e2e51..9402965 100644
--- a/src/Cache_Search.hpp
+++ b/src/Cache_Search.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Cache_Search.hpp
-  \brief  NOMAD::Search subclass for the cache search (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-08
-  \see    Cache_Search.cpp
-*/
+ \file   Cache_Search.hpp
+ \brief  NOMAD::Search subclass for the cache search (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-08
+ \see    Cache_Search.cpp
+ */
 #ifndef __CACHE_SEARCH__
 #define __CACHE_SEARCH__
 
@@ -47,50 +54,50 @@
 #include "Search.hpp"
 
 namespace NOMAD {
-
-  /// Cache search.
-  class Cache_Search : public NOMAD::Search , private NOMAD::Uncopyable {
-
-  private:
-
-    /// Number of extern points at the end of the last cache search.
-    int _last_search_nb_extern_pts;
-
-  public:
-
-    /// Constructor.
-    /**
-       \param p Parameters -- \b IN.
-    */
-    Cache_Search ( NOMAD::Parameters & p )
-      : NOMAD::Search              ( p , NOMAD::CACHE_SEARCH ) ,
-	_last_search_nb_extern_pts ( 0                       )  {}
     
-    /// Destructor.
-    virtual ~Cache_Search ( void ) {}
-
-    /// Reset.
-    virtual void reset ( void ) { _last_search_nb_extern_pts = 0; }
-
-    /// The cache search.
-    /**
-      \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
-      \param nb_search_pts  Number of generated search points       -- \b OUT.
-      \param stop           Stop flag                               -- \b IN/OUT.
-      \param stop_reason    Stop reason                             -- \b OUT.
-      \param success        Type of success                         -- \b OUT.
-      \param count_search   Count or not the search                 -- \b OUT.
-      \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
-      \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
-    */
-    virtual void search ( NOMAD::Mads              & mads           ,
-			  int                      & nb_search_pts  ,
-			  bool                     & stop           ,
-			  NOMAD::stop_type         & stop_reason    ,
-			  NOMAD::success_type      & success        ,
-			  bool                     & count_search   ,
-			  const NOMAD::Eval_Point *& new_feas_inc   ,
-			  const NOMAD::Eval_Point *& new_infeas_inc   );
-  };
+    /// Cache search.
+    class Cache_Search : public NOMAD::Search , private NOMAD::Uncopyable {
+        
+    private:
+        
+        /// Number of extern points at the end of the last cache search.
+        int _last_search_nb_extern_pts;
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p Parameters -- \b IN.
+         */
+        Cache_Search ( NOMAD::Parameters & p )
+        : NOMAD::Search              ( p , NOMAD::CACHE_SEARCH ) ,
+        _last_search_nb_extern_pts ( 0                       )  {}
+        
+        /// Destructor.
+        virtual ~Cache_Search ( void ) {}
+        
+        /// Reset.
+        virtual void reset ( void ) { _last_search_nb_extern_pts = 0; }
+        
+        /// The cache search.
+        /**
+         \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
+         \param nb_search_pts  Number of generated search points       -- \b OUT.
+         \param stop           Stop flag                               -- \b IN/OUT.
+         \param stop_reason    Stop reason                             -- \b OUT.
+         \param success        Type of success                         -- \b OUT.
+         \param count_search   Count or not the search                 -- \b OUT.
+         \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
+         \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
+         */
+        virtual void search ( NOMAD::Mads              & mads           ,
+                             int                      & nb_search_pts  ,
+                             bool                     & stop           ,
+                             NOMAD::stop_type         & stop_reason    ,
+                             NOMAD::success_type      & success        ,
+                             bool                     & count_search   ,
+                             const NOMAD::Eval_Point *& new_feas_inc   ,
+                             const NOMAD::Eval_Point *& new_infeas_inc   );
+    };
 }
 #endif
diff --git a/src/Clock.cpp b/src/Clock.cpp
index 6f95c22..5e69bf0 100644
--- a/src/Clock.cpp
+++ b/src/Clock.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Clock.cpp
-  \brief  Clock class (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-02
-  \see    Clock.hpp
-*/
+ \file   Clock.cpp
+ \brief  Clock class (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-02
+ \see    Clock.hpp
+ */
 #include "Clock.hpp"
 
 /*-----------------------------------*/
diff --git a/src/Clock.hpp b/src/Clock.hpp
index adc303d..2b9466c 100644
--- a/src/Clock.hpp
+++ b/src/Clock.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,88 +41,88 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Clock.hpp
-  \brief  Clock class (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-02
-  \see    Clock.cpp
-*/
+ \file   Clock.hpp
+ \brief  Clock class (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-02
+ \see    Clock.cpp
+ */
 #ifndef __CLOCK__
 #define __CLOCK__
 
 #include <ctime>
 
 namespace NOMAD {
-
-  /// Clock class.
-  /**
+    
+    /// Clock class.
+    /**
      Time measurement.\n\n
      \b Example:
      \code
      Clock c;
-
+     
      // some instructions here
-
+     
      std::cout << "elapsed real time = " << c.get_real_time() << std::endl;
      std::cout << "elapsed CPU time  = " << c.get_CPU_time()  << std::endl;
      \endcode
-  */
-  class Clock {
-
-  private:
-
-    time_t              _real_t0;          ///< Wall clock time measurement.
-    clock_t             _CPU_t0;           ///< CPU time measurement.
-    static const double _D_CLOCKS_PER_SEC; ///< System constant for CPU time measurement.
-
-  public:
-
-    /// Constructor.
-    Clock ( void ) : _CPU_t0 ( clock() ) { time (&_real_t0); }
-
-    /// Copy constructor.
-    /**
-       \param c The copied object -- \b IN.
-    */
-    Clock ( const Clock & c ) : _real_t0 ( c._real_t0 ) , _CPU_t0 ( c._CPU_t0 ) {}
-
-    /// Affectation operator.
-    /**
-       \param  c The right-hand side object -- \b IN.
-       \return \c *this as the result of the affectation.
-    */
-    Clock & operator = ( const Clock & c )
-    {
-      _real_t0 = c._real_t0;
-      _CPU_t0  = c._CPU_t0;
-      return *this;
-    }
-
-    /// Destructor.
-    virtual ~Clock ( void ) {}
-
-    /// Reset the clock.
-    void reset ( void )
-    {
-      time ( &_real_t0 );
-      _CPU_t0 = clock();
-    }
-
-    /// Get wall clock time.
-    /**
-       \return The wall clock time.
-    */
-    int get_real_time ( void ) const;
-
-    /// Get the CPU time.
-    /**
-       \return The CPU time.
-    */
-    double get_CPU_time ( void ) const
-    {
-      return ( clock() - _CPU_t0 ) / _D_CLOCKS_PER_SEC;
-    }
-  };
+     */
+    class Clock {
+        
+    private:
+        
+        time_t              _real_t0;          ///< Wall clock time measurement.
+        clock_t             _CPU_t0;           ///< CPU time measurement.
+        static const double _D_CLOCKS_PER_SEC; ///< System constant for CPU time measurement.
+        
+    public:
+        
+        /// Constructor.
+        Clock ( void ) : _CPU_t0 ( clock() ) { time (&_real_t0); }
+        
+        /// Copy constructor.
+        /**
+         \param c The copied object -- \b IN.
+         */
+        Clock ( const Clock & c ) : _real_t0 ( c._real_t0 ) , _CPU_t0 ( c._CPU_t0 ) {}
+        
+        /// Affectation operator.
+        /**
+         \param  c The right-hand side object -- \b IN.
+         \return \c *this as the result of the affectation.
+         */
+        Clock & operator = ( const Clock & c )
+        {
+            _real_t0 = c._real_t0;
+            _CPU_t0  = c._CPU_t0;
+            return *this;
+        }
+        
+        /// Destructor.
+        virtual ~Clock ( void ) {}
+        
+        /// Reset the clock.
+        void reset ( void )
+        {
+            time ( &_real_t0 );
+            _CPU_t0 = clock();
+        }
+        
+        /// Get wall clock time.
+        /**
+         \return The wall clock time.
+         */
+        int get_real_time ( void ) const;
+        
+        /// Get the CPU time.
+        /**
+         \return The CPU time.
+         */
+        double get_CPU_time ( void ) const
+        {
+            return ( clock() - _CPU_t0 ) / _D_CLOCKS_PER_SEC;
+        }
+    };
 }
 
 #endif
diff --git a/src/Direction.cpp b/src/Direction.cpp
index 7eda227..1f6c941 100644
--- a/src/Direction.cpp
+++ b/src/Direction.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Direction.cpp
-  \brief  Polling direction (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-05
-  \see    Direction.hpp
-*/
+ \file   Direction.cpp
+ \brief  Polling direction (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-05
+ \see    Direction.hpp
+ */
 #include "Direction.hpp"
 
 /*-----------------------------------*/
@@ -54,15 +61,15 @@ int NOMAD::Direction::_max_cardinality = 0;
 /*                       constructor 1                     */
 /*---------------------------------------------------------*/
 NOMAD::Direction::Direction ( void )
-  : NOMAD::Point  (                            ) ,
-    _type         ( NOMAD::UNDEFINED_DIRECTION ) ,
+: NOMAD::Point  (                            ) ,
+_type         ( NOMAD::UNDEFINED_DIRECTION ) ,
 _index        ( -1                         ),
 _dir_group_index (-1)
 {
 #ifdef MEMORY_DEBUG
-  ++NOMAD::Direction::_cardinality;
-  if ( NOMAD::Direction::_cardinality > NOMAD::Direction::_max_cardinality )
-    ++NOMAD::Direction::_max_cardinality;
+    ++NOMAD::Direction::_cardinality;
+    if ( NOMAD::Direction::_cardinality > NOMAD::Direction::_max_cardinality )
+        ++NOMAD::Direction::_max_cardinality;
 #endif
 }
 
@@ -70,18 +77,18 @@ _dir_group_index (-1)
 /*                       constructor 2                     */
 /*---------------------------------------------------------*/
 NOMAD::Direction::Direction ( int                     n    ,
-			      const NOMAD::Double   & v    ,
-			      NOMAD::direction_type   type ,		 
-					int dir_group_index		 )
-  : NOMAD::Point  ( n , v ) ,
-    _type         ( type  ) ,
-    _index        ( -1   ) ,
-    _dir_group_index (dir_group_index)
+                             const NOMAD::Double   & v    ,
+                             NOMAD::direction_type   type ,
+                             int dir_group_index         )
+: NOMAD::Point  ( n , v ) ,
+_type         ( type  ) ,
+_index        ( -1   ) ,
+_dir_group_index (dir_group_index)
 {
 #ifdef MEMORY_DEBUG
-  ++NOMAD::Direction::_cardinality;
-  if ( NOMAD::Direction::_cardinality > NOMAD::Direction::_max_cardinality )
-    ++NOMAD::Direction::_max_cardinality;
+    ++NOMAD::Direction::_cardinality;
+    if ( NOMAD::Direction::_cardinality > NOMAD::Direction::_max_cardinality )
+        ++NOMAD::Direction::_max_cardinality;
 #endif
 }
 
@@ -89,34 +96,34 @@ NOMAD::Direction::Direction ( int                     n    ,
 /*                       constructor 2b                    */
 /*---------------------------------------------------------*/
 NOMAD::Direction::Direction ( int                     n    ,
-							 const NOMAD::Double   & v    ,
-							 NOMAD::direction_type   type   )
+                             const NOMAD::Double   & v    ,
+                             NOMAD::direction_type   type   )
 : NOMAD::Point  ( n , v ) ,
 _type         ( type  ) ,
 _index        ( -1    ),
 _dir_group_index (-1)
 {
 #ifdef MEMORY_DEBUG
-  ++NOMAD::Direction::_cardinality;
-  if ( NOMAD::Direction::_cardinality > NOMAD::Direction::_max_cardinality )
-    ++NOMAD::Direction::_max_cardinality;
+    ++NOMAD::Direction::_cardinality;
+    if ( NOMAD::Direction::_cardinality > NOMAD::Direction::_max_cardinality )
+        ++NOMAD::Direction::_max_cardinality;
 #endif
 }
 
 /*---------------------------------------------------------*/
 /*                       constructor 3                     */
 /*---------------------------------------------------------*/
-NOMAD::Direction::Direction ( const NOMAD::Point    & x    , 
-			      NOMAD::direction_type   type   )
-  : NOMAD::Point  ( x    ) ,
-    _type         ( type ) ,
+NOMAD::Direction::Direction ( const NOMAD::Point    & x    ,
+                             NOMAD::direction_type   type   )
+: NOMAD::Point  ( x    ) ,
+_type         ( type ) ,
 _index        ( -1   ),
 _dir_group_index (-1)
 {
 #ifdef MEMORY_DEBUG
-  ++NOMAD::Direction::_cardinality;
-  if ( NOMAD::Direction::_cardinality > NOMAD::Direction::_max_cardinality )
-    ++NOMAD::Direction::_max_cardinality;
+    ++NOMAD::Direction::_cardinality;
+    if ( NOMAD::Direction::_cardinality > NOMAD::Direction::_max_cardinality )
+        ++NOMAD::Direction::_max_cardinality;
 #endif
 }
 
@@ -124,15 +131,15 @@ _dir_group_index (-1)
 /*                      copy constructor                   */
 /*---------------------------------------------------------*/
 NOMAD::Direction::Direction ( const Direction & d )
-  : NOMAD::Point  ( d        ) ,
-    _type         ( d._type  ) ,
-    _index        ( d._index ),
+: NOMAD::Point  ( d        ) ,
+_type         ( d._type  ) ,
+_index        ( d._index ),
 _dir_group_index (d._dir_group_index)
 {
 #ifdef MEMORY_DEBUG
-  ++NOMAD::Direction::_cardinality;
-  if ( NOMAD::Direction::_cardinality > NOMAD::Direction::_max_cardinality )
-    ++NOMAD::Direction::_max_cardinality;
+    ++NOMAD::Direction::_cardinality;
+    if ( NOMAD::Direction::_cardinality > NOMAD::Direction::_max_cardinality )
+        ++NOMAD::Direction::_max_cardinality;
 #endif
 }
 
@@ -142,7 +149,7 @@ _dir_group_index (d._dir_group_index)
 NOMAD::Direction::~Direction ( void )
 {
 #ifdef MEMORY_DEBUG
-  --NOMAD::Direction::_cardinality;
+    --NOMAD::Direction::_cardinality;
 #endif
 }
 
@@ -151,15 +158,15 @@ NOMAD::Direction::~Direction ( void )
 /*---------------------------------------------------------*/
 NOMAD::Direction & NOMAD::Direction::operator = ( const NOMAD::Direction & d )
 {
-  if ( this == &d )
+    if ( this == &d )
+        return *this;
+    
+    NOMAD::Point::operator = ( d );
+    
+    _type  = d._type;
+    _index = d._index;
+    
     return *this;
-
-  NOMAD::Point::operator = ( d );
-  
-  _type  = d._type;
-  _index = d._index;
-
-  return *this;
 }
 
 /*---------------------------------------------------------*/
@@ -167,9 +174,9 @@ NOMAD::Direction & NOMAD::Direction::operator = ( const NOMAD::Direction & d )
 /*---------------------------------------------------------*/
 void NOMAD::Direction::clear ( void )
 {
-  NOMAD::Point::clear();
-  _type  = NOMAD::UNDEFINED_DIRECTION;
-  _index = -1;
+    NOMAD::Point::clear();
+    _type  = NOMAD::UNDEFINED_DIRECTION;
+    _index = -1;
 }
 
 /*-----------------------------------------------------------*/
@@ -177,22 +184,24 @@ void NOMAD::Direction::clear ( void )
 /*-----------------------------------------------------------*/
 const NOMAD::Direction NOMAD::Direction::operator - ( void ) const
 {
-  return NOMAD::Direction ( this->NOMAD::Point::operator-() , _type );
+    return NOMAD::Direction ( this->NOMAD::Point::operator-() , _type );
 }
 
+
 /*---------------------------------------------------------*/
 /*                          display                        */
 /*---------------------------------------------------------*/
 void NOMAD::Direction::display ( const NOMAD::Display & out ,
-				 const std::string    & sep ,
-				 int                    w   ,
-				 int                    lim   ) const
+                                const std::string    & sep ,
+                                int                    w   ,
+                                int                    lim   ) const
 {
-  if ( is_defined() ) {
-    out << "( ";
-    NOMAD::Point::display ( out , sep , w , lim );
-    out << " ) " << _type;
-  }
-  else
-    out << "undefined";
+    if ( is_defined() )
+    {
+        out << "( ";
+        NOMAD::Point::display ( out , sep , w , lim );
+        out << " ) " << _type;
+    }
+    else
+        out << "undefined";
 }
diff --git a/src/Direction.hpp b/src/Direction.hpp
index b6c192e..2a2813e 100644
--- a/src/Direction.hpp
+++ b/src/Direction.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,198 +41,204 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Direction.hpp
-  \brief  Polling direction (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-05
-  \see    Direction.cpp
-*/
+ \file   Direction.hpp
+ \brief  Polling direction (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-05
+ \see    Direction.cpp
+ */
 #ifndef __DIRECTION__
 #define __DIRECTION__
 
 #include "Point.hpp"
 
 namespace NOMAD {
-
-
-	
-  /// Class describing a polling direction.
-  class Direction : public NOMAD::Point {
-
-  private:
-
+    
+    
+    
+    /// Class describing a polling direction.
+    class Direction : public NOMAD::Point {
+        
+    private:
+        
 #ifdef MEMORY_DEBUG
-    static int _cardinality;       ///< Number of NOMAD::Direction objects in memory.
-    static int _max_cardinality;   ///< Max number of NOMAD::Direction objects in memory.
+        static int _cardinality;       ///< Number of NOMAD::Direction objects in memory.
+        static int _max_cardinality;   ///< Max number of NOMAD::Direction objects in memory.
 #endif
-
-    NOMAD::direction_type _type;   ///< Type of direction.
-    mutable int           _index;  ///< Direction index (used only for display).
-	int					  _dir_group_index ; ///< Index a the group of direction	
-
-  public:
-
+        
+        NOMAD::direction_type _type;   ///< Type of direction.
+        mutable int           _index;  ///< Direction index (used only for display).
+        int                   _dir_group_index ; ///< Index a the group of direction
+        
+    public:
+        
 #ifdef MEMORY_DEBUG
-    /// Access to the number of NOMAD::Direction objects in memory.
-    /**
-       \return The number of NOMAD::Direction objects in memory.
-    */
-    static int get_cardinality ( void ) { return Direction::_cardinality; }
-
-    /// Access to the max number of NOMAD::Direction objects in memory.
-    /**
-       \return The max number of NOMAD::Direction objects in memory.
-    */
-    static int get_max_cardinality ( void ) { return Direction::_max_cardinality; }
+        /// Access to the number of NOMAD::Direction objects in memory.
+        /**
+         \return The number of NOMAD::Direction objects in memory.
+         */
+        static int get_cardinality ( void ) { return Direction::_cardinality; }
+        
+        /// Access to the max number of NOMAD::Direction objects in memory.
+        /**
+         \return The max number of NOMAD::Direction objects in memory.
+         */
+        static int get_max_cardinality ( void ) { return Direction::_max_cardinality; }
 #endif
-
-    /// Constructor #1.
-    Direction ( void );
-
-    /// Constructor #2.
-    /**
-       \param n Dimension                         -- \b IN.
-       \param v Initial value for all coordinates -- \b IN.
-       \param type Type of direction              -- \b IN.
-	   \param dir_group_index Index of the variable group the direction belongs   --\b IN.
-    */
-    Direction ( int n , const NOMAD::Double & v , NOMAD::direction_type type, int dir_group_index );  
-
-	  /// Constructor #2b.
-	  /**
-       \param n Dimension                         -- \b IN.
-       \param v Initial value for all coordinates -- \b IN.
-       \param type Type of direction              -- \b IN.
-	   */
-	  Direction ( int n , const NOMAD::Double & v , NOMAD::direction_type type);
-	  
-	  
-    /// Constructor #3.
-    /**
-       \param x    Coordinates       -- \b IN.
-       \param type Type of direction -- \b IN.
-    */
-    Direction ( const NOMAD::Point & x , NOMAD::direction_type type );
-
-    /// Copy constructor.
-    /**
-       \param d The copied object.
-    */
-    Direction ( const Direction & d );
-
-    /// Destructor.
-    virtual ~Direction ( void );
-
-    /// Affectation operator.
-    /**
-       \param d The right-hand side object -- \b IN.
-       \return \c *this as the result of the affectation.
-    */
-    Direction & operator = ( const Direction & d );
-
-    /// Check if the direction is defined.
-    /**
-       \return A boolean equal to \c true if the direction has no defined type.
-    */
-    virtual bool is_defined ( void ) const
-    { return _type != NOMAD::UNDEFINED_DIRECTION; }
-
-    /// Clear the direction.
-    virtual void clear ( void );
-
-   /// Size of the direction in memory.
-    /**
-       \return An integer for the size of the direction in bytes.
-    */    virtual int size_of ( void ) const
-    {
-      return NOMAD::Point::size_of() + sizeof(_type) + sizeof(_index);
-    }
-
-    /// Negation.
-    /**
-       The current object \c *this is not modified.
-       \return A new direction equal to \c -*this.
-    */
-    const Direction operator - ( void ) const;
- 
-    /*---------------*/
-    /*  GET methods  */
-    /*---------------*/
-
-    /// Access to the type of direction.
-    /**
-       \return The type of the direction.
-    */
-    NOMAD::direction_type get_type  ( void ) const { return _type; }
+        
+        /// Constructor #1.
+        Direction ( void );
+        
+        /// Constructor #2.
+        /**
+         \param n Dimension                         -- \b IN.
+         \param v Initial value for all coordinates -- \b IN.
+         \param type Type of direction              -- \b IN.
+         \param dir_group_index Index of the variable group the direction belongs   --\b IN.
+         */
+        Direction ( int n ,
+                   const NOMAD::Double & v ,
+                   NOMAD::direction_type type,
+                   int dir_group_index );
+        
+        /// Constructor #2b.
+        /**
+         \param n Dimension                         -- \b IN.
+         \param v Initial value for all coordinates -- \b IN.
+         \param type Type of direction              -- \b IN.
+         */
+        Direction ( int n ,
+                   const NOMAD::Double & v ,
+                   NOMAD::direction_type type);
+        
+        
+        /// Constructor #3.
+        /**
+         \param x    Coordinates       -- \b IN.
+         \param type Type of direction -- \b IN.
+         */
+        Direction ( const NOMAD::Point & x , NOMAD::direction_type type );
+        
+        /// Copy constructor.
+        /**
+         \param d The copied object.
+         */
+        Direction ( const Direction & d );
+        
+        /// Destructor.
+        virtual ~Direction ( void );
+        
+        /// Affectation operator.
+        /**
+         \param d The right-hand side object -- \b IN.
+         \return \c *this as the result of the affectation.
+         */
+        Direction & operator = ( const Direction & d );
+        
+        
+        /// Check if the direction is defined.
+        /**
+         \return A boolean equal to \c true if the direction has no defined type.
+         */
+        virtual bool is_defined ( void ) const
+        { return _type != NOMAD::UNDEFINED_DIRECTION; }
+        
+        /// Clear the direction.
+        virtual void clear ( void );
+        
+        /// Size of the direction in memory.
+        /**
+         \return An integer for the size of the direction in bytes.
+         */    virtual int size_of ( void ) const
+        {
+            return NOMAD::Point::size_of() + sizeof(_type) + sizeof(_index);
+        }
+        
+        /// Negation.
+        /**
+         The current object \c *this is not modified.
+         \return A new direction equal to \c -*this.
+         */
+        const Direction operator - ( void ) const;
+        
+        /*---------------*/
+        /*  GET methods  */
+        /*---------------*/
+        
+        /// Access to the type of direction.
+        /**
+         \return The type of the direction.
+         */
+        NOMAD::direction_type get_type  ( void ) const { return _type; }
+        
+        /// Access to the direction index.
+        /**
+         \return The direction index.
+         */
+        int get_index ( void ) const { return _index; }
+        
+        /// Access to the direction group index.
+        /**
+         \return The direction group index.
+         */
+        int get_dir_group_index ( void ) const { return _dir_group_index; }
+        
+        
+        /// Check if the direction is a MADS direction.
+        /**
+         \return A boolean equal to \c true if the direction is a MADS direction.
+         */
+        bool is_mads ( void ) const { return NOMAD::dir_is_mads ( _type ); }
+        
+        /// Check if the direction is a GPS direction.
+        /**
+         \return A boolean equal to \c true if the direction is a GPS direction.
+         */
+        bool is_gps ( void ) const { return NOMAD::dir_is_gps  ( _type ); }
+        
+        /*---------------*/
+        /*  SET methods  */
+        /*---------------*/
+        
+        /// Set the direction index.
+        /**
+         \param i The direction index -- \b IN.
+         */
+        void set_index ( int i ) const { _index = i; }
+        
+        /// Set the direction type.
+        /**
+         \param t The direction type -- \b IN.
+         */
+        void set_type ( NOMAD::direction_type t ) { _type  = t; }
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         \param sep A string that is used as a separator between the coordinates
+         -- \b IN.
+         \param w   An integer indicating a width for the display of
+         each coordinate -- \b IN.
+         \param lim Max number of coordinates to display -- \b IN.
+         */
+        virtual void display ( const NOMAD::Display & out ,
+                              const std::string    & sep ,
+                              int                    w   ,
+                              int                    lim   ) const;
+    };
     
-    /// Access to the direction index.
+    /// Display a NOMAD::Direction object.
     /**
-       \return The direction index.
-    */
-    int get_index ( void ) const { return _index; }
-
-	  /// Access to the direction group index.
-	  /**
-       \return The direction group index.
-	   */
-	  int get_dir_group_index ( void ) const { return _dir_group_index; }
-	  
-	  
-    /// Check if the direction is a MADS direction.
-    /**
-       \return A boolean equal to \c true if the direction is a MADS direction.
-    */
-    bool is_mads ( void ) const { return NOMAD::dir_is_mads ( _type ); }
-
-   /// Check if the direction is a GPS direction.
-    /**
-       \return A boolean equal to \c true if the direction is a GPS direction.
-    */
-    bool is_gps ( void ) const { return NOMAD::dir_is_gps  ( _type ); }
-
-    /*---------------*/
-    /*  SET methods  */
-    /*---------------*/
-
-    /// Set the direction index.
-    /**
-       \param i The direction index -- \b IN.
-    */
-    void set_index ( int i ) const { _index = i; }
-
-    /// Set the direction type.
-    /**
-       \param t The direction type -- \b IN.
-    */
-    void set_type ( NOMAD::direction_type t ) { _type  = t; }
-    
-    /// Display.
-    /**
-       \param out The NOMAD::Display object -- \b IN.
-       \param sep A string that is used as a separator between the coordinates
-                  -- \b IN.
-       \param w   An integer indicating a width for the display of
-                  each coordinate -- \b IN.
-       \param lim Max number of coordinates to display -- \b IN.
-    */
-    virtual void display ( const NOMAD::Display & out ,
-			   const std::string    & sep ,
-			   int                    w   ,
-			   int                    lim   ) const;
-  };
-  
-  /// Display a NOMAD::Direction object.
-  /**
      \param out The NOMAD::Display object -- \b IN.
      \param d   The NOMAD::Direction object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display   & out ,
-					      const NOMAD::Direction & d     )
-  {
-    d.display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-    return out;
-  }
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display   & out ,
+                                               const NOMAD::Direction & d     )
+    {
+        d.display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
+        return out;
+    }
 }
 
 #endif
diff --git a/src/Directions.cpp b/src/Directions.cpp
index e52f61f..8c34295 100644
--- a/src/Directions.cpp
+++ b/src/Directions.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -46,14 +53,14 @@
 #include "SMesh.hpp"
 
 
+
 /*---------------------------------------------------------*/
 /*                       constructor                       */
 /*---------------------------------------------------------*/
-NOMAD::Directions::Directions
-( int                                     nc                 ,
- const std::set<NOMAD::direction_type> & direction_types    ,
- const std::set<NOMAD::direction_type> & sec_poll_dir_types ,
- const NOMAD::Display                  & out                  )
+NOMAD::Directions::Directions ( int                                     nc                 ,
+                               const std::set<NOMAD::direction_type> & direction_types    ,
+                               const std::set<NOMAD::direction_type> & sec_poll_dir_types ,
+                               const NOMAD::Display                  & out                  )
 : _nc                 ( nc                 ) ,
 _direction_types    ( direction_types    ) ,
 _sec_poll_dir_types ( sec_poll_dir_types ) ,
@@ -88,7 +95,6 @@ NOMAD::Directions::~Directions ( void )
         for ( int i = 0 ; i <= n ; ++i )
             delete _bl[i];
     }
-    
 }
 
 /*---------------------------------------------------------*/
@@ -105,6 +111,7 @@ void NOMAD::Directions::lt_mads_init ( void )
     _lt_initialized = true;
 }
 
+
 /*---------------------------------------------------------*/
 /*                         set_binary                      */
 /*---------------------------------------------------------*/
@@ -115,7 +122,8 @@ void NOMAD::Directions::set_binary ( void )
     _is_orthomads   = false;
     _direction_types.clear();
     _direction_types.insert ( NOMAD::GPS_BINARY );
-    if ( !_sec_poll_dir_types.empty() ) {
+    if ( !_sec_poll_dir_types.empty() )
+    {
         _sec_poll_dir_types.clear();
         _sec_poll_dir_types.insert ( NOMAD::GPS_BINARY );
     }
@@ -137,12 +145,12 @@ void NOMAD::Directions::set_categorical ( void )
 /*  compute binary directions when all groups of variables are binary   */
 /*  (private)                                                           */
 /*----------------------------------------------------------------------*/
-void NOMAD::Directions::compute_binary_directions
-( std::list<NOMAD::Direction> & d ) const
+void NOMAD::Directions::compute_binary_directions ( std::list<NOMAD::Direction> & d ) const
 {
     // _GPS_BINARY_ n directions:
     NOMAD::Direction * pd;
-    for ( int i = 0 ; i < _nc ; ++i ) {
+    for ( int i = 0 ; i < _nc ; ++i )
+    {
         d.push_back ( NOMAD::Direction ( _nc , 0.0 , NOMAD::GPS_BINARY ) );
         pd = &(*(--d.end()));
         (*pd)[i] = 1.0;
@@ -153,9 +161,9 @@ void NOMAD::Directions::compute_binary_directions
 /*----------------------------------------------------------------------------*/
 /*            get the directions on a unit n-sphere for a given mesh          */
 /*----------------------------------------------------------------------------*/
-void NOMAD::Directions::compute ( std::list<NOMAD::Direction> & dirs		,
-                                 NOMAD::poll_type              poll			,
-                                 const NOMAD::OrthogonalMesh  & mesh		)
+void NOMAD::Directions::compute ( std::list<NOMAD::Direction> & dirs        ,
+                                 NOMAD::poll_type              poll         ,
+                                 const NOMAD::OrthogonalMesh  & mesh        )
 {
     
     dirs.clear();
@@ -208,6 +216,7 @@ void NOMAD::Directions::compute ( std::list<NOMAD::Direction> & dirs		,
             NOMAD::Direction dir ( _nc , 0.0 , *it );
             NOMAD::Double    alpha_t_l;
             
+            
             success_dir=compute_dir_on_unit_sphere ( dir );
             
             if ( success_dir )
@@ -243,7 +252,7 @@ void NOMAD::Directions::compute ( std::list<NOMAD::Direction> & dirs		,
 #endif
                 // Ortho-MADS 2n and n+1:
                 // ----------------------
-                if ( *it == NOMAD::ORTHO_2N || *it == NOMAD::ORTHO_NP1_QUAD || *it == NOMAD::ORTHO_NP1_NEG )
+                if ( *it == NOMAD::ORTHO_2N || *it == NOMAD::ORTHO_NP1_QUAD || *it == NOMAD::ORTHO_NP1_NEG || *it==NOMAD::ORTHO_NP1_UNI )
                 {
                     
                     // creation of the 2n directions:
@@ -262,6 +271,38 @@ void NOMAD::Directions::compute ( std::list<NOMAD::Direction> & dirs		,
                     // Householder transformations on the 2n directions on a unit n-sphere:
                     householder ( dir , true , H );
                     
+                    if ( *it == NOMAD::ORTHO_NP1_UNI )
+                    {
+                        std::list<NOMAD::Direction> refac_dirs;
+                        
+                        // dir 0
+                        NOMAD::Point dir0=-(*H[0]);
+                        for ( i = 1 ; i < _nc ; ++i )
+                        {
+                            dir0=dir0-(*H[i]);
+                        }
+                        dir0*=1.0/sqrt(double(_nc));
+                        refac_dirs.push_back ( NOMAD::Direction ( dir0, NOMAD::ORTHO_NP1_UNI ) );
+                        
+                        NOMAD::Double beta=(sqrt(_nc+1.0)-1.0)/sqrt(double(_nc));
+                        dir0*=beta;
+                        for ( i = 0 ; i < _nc ; i++ )
+                        {
+                            NOMAD::Point diri(*H[i]);
+                            diri*=sqrt(double(_nc+1));
+                            diri=diri+dir0;
+                            diri*=1.0/sqrt(double(_nc));
+                            refac_dirs.push_back ( NOMAD::Direction ( diri, NOMAD::ORTHO_NP1_UNI ) );
+                            
+                        }
+                        
+                        dirs.clear();
+                        dirs.assign( refac_dirs.begin(), refac_dirs.end() );
+                        
+                        
+                    }
+                    
+                    
                     
                     delete [] H;
                     
@@ -302,7 +343,9 @@ void NOMAD::Directions::compute ( std::list<NOMAD::Direction> & dirs		,
             
             // LT-MADS 2n or LT-MADS n+1:
             // --------------------------
-            else {
+            else
+            {
+                
                 
                 // row permutation vector:
                 int * row_permutation_vector  = new int [_nc];
@@ -623,10 +666,10 @@ void NOMAD::Directions::compute ( std::list<NOMAD::Direction> & dirs		,
 
 
 /*-----------------------------------------------------------------------------*/
-/*       compute a random direction	on a unit N-Sphere          			   */
+/*       compute a random direction on a unit N-Sphere                         */
 /*  see http://en.wikipedia.org/wiki/N-sphere                                  */
 /*-----------------------------------------------------------------------------*/
-bool NOMAD::Directions::compute_dir_on_unit_sphere ( NOMAD::Direction	& random_dir ) const
+bool NOMAD::Directions::compute_dir_on_unit_sphere ( NOMAD::Direction    & random_dir ) const
 {
     
     int           i;
@@ -635,6 +678,8 @@ bool NOMAD::Directions::compute_dir_on_unit_sphere ( NOMAD::Direction	& random_d
     for ( i = 0 ; i < _nc ; ++i )
         random_dir[i]=NOMAD::RNG::normal_rand(0,1);
     
+    //     }
+    
     norm=random_dir.norm();
     
     if ( norm==0 )
@@ -660,7 +705,8 @@ NOMAD::Double NOMAD::Directions::eval_ortho_norm ( const NOMAD::Double & x
 {
     NOMAD::Double fx = 0.0;
     
-    for ( int i = 0 ; i < _nc ; ++i ) {
+    for ( int i = 0 ; i < _nc ; ++i )
+    {
         new_b[i] = ( x * b[i] / norm ).round();
         fx += new_b[i]*new_b[i];
     }
@@ -680,7 +726,8 @@ NOMAD::Double NOMAD::Directions::get_phi ( int t , int p )
     int          ll = t;
     NOMAD::Double d = 0.0;
     
-    for ( int i = 0 ; i < size ; ++i ) {
+    for ( int i = 0 ; i < size ; ++i )
+    {
         div = NOMAD::Double ( pow ( p , size-i-1.0 ) ).round();
         d  += ( ll / div ) * pow ( static_cast<double>(p) , i-size );
         ll  = ll % div;
@@ -702,11 +749,13 @@ void NOMAD::Directions::householder ( const NOMAD::Direction  & dir     ,
     
     NOMAD::Double norm2 = dir.squared_norm() , v , h2i;
     
-    for ( i = 0 ; i < _nc ; ++i ) {
+    for ( i = 0 ; i < _nc ; ++i )
+    {
         
         h2i = 2 * dir[i];
         
-        for ( j = 0 ; j < _nc ; ++j ) {
+        for ( j = 0 ; j < _nc ; ++j )
+        {
             
             // H[i]:
             (*H[i])[j] = v = (i==j) ? norm2 - h2i * dir[j] : - h2i * dir[j];
@@ -727,6 +776,7 @@ const NOMAD::Direction * NOMAD::Directions::get_bl ( const NOMAD::OrthogonalMesh
 {
     
     NOMAD::Point  mesh_indices = mesh.get_mesh_indices();
+    
     int mesh_index =static_cast<int>(mesh_indices[0].value());
     NOMAD::Direction * bl = _bl    [ mesh_index + NOMAD::L_LIMITS ];
     hat_i                 = _hat_i [ mesh_index + NOMAD::L_LIMITS ];
@@ -858,7 +908,8 @@ bool NOMAD::Directions::operator < ( const NOMAD::Directions & d ) const
     it2 = d._direction_types.begin() ,
     end = _direction_types.end();
     
-    while ( it1 != end ) {
+    while ( it1 != end )
+    {
         if ( *it1 < *it2 )
             return true;
         if ( *it2 < *it1 )
@@ -871,7 +922,8 @@ bool NOMAD::Directions::operator < ( const NOMAD::Directions & d ) const
     it2 = d._sec_poll_dir_types.begin();
     end = _sec_poll_dir_types.end();
     
-    while ( it1 != end ) {
+    while ( it1 != end )
+    {
         if ( *it1 < *it2 )
             return true;
         if ( *it2 < *it1 )
diff --git a/src/Directions.hpp b/src/Directions.hpp
index a9d87c8..2651974 100644
--- a/src/Directions.hpp
+++ b/src/Directions.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -84,6 +91,7 @@ namespace NOMAD {
          */
         Directions & operator = ( const Directions & d );
         
+        
         /// LT-MADS initializations.
         void lt_mads_init ( void );
         
@@ -198,20 +206,20 @@ namespace NOMAD {
         
         /// Compute the directions for a given mesh.
         /**
-         \param mesh               The given mesh                                             -- \b IN.
-         \param dirs               Set of directions                                          -- \b OUT.
-         \param poll               Type of poll (primary or secondary)                        -- \b IN.
+         \param mesh    The given mesh                        -- \b IN.
+         \param dirs    Set of directions                     -- \b OUT.
+         \param poll    Type of poll (primary or secondary)   -- \b IN.
          */
         void compute ( std::list<NOMAD::Direction> & dirs           ,
                       NOMAD::poll_type               poll           ,
-                      const NOMAD::OrthogonalMesh  & mesh			);
+                      const NOMAD::OrthogonalMesh  & mesh            );
         
         /// Compute a random direction on a N-Sphere.
         /**
-         \param random_dir								-- \b OUT.
+         \param random_dir                                    -- \b OUT.
          \return A boolean equal to \c true if the computation went well.
          */
-        bool compute_dir_on_unit_sphere (	NOMAD::Direction	& random_dir ) const;
+        bool compute_dir_on_unit_sphere ( NOMAD::Direction    & random_dir ) const;
         
         
         /// Check if Ortho-MADS directions are used.
@@ -287,7 +295,7 @@ namespace NOMAD {
     
     /// Display a NOMAD::Directions object.
     /**
-     \param out The NOMAD::Display object -- \b IN.
+     \param out The NOMAD::Display object                    -- \b IN.
      \param d   The NOMAD::Directions object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
      */
diff --git a/src/Display.cpp b/src/Display.cpp
index e8b340f..4cb4631 100644
--- a/src/Display.cpp
+++ b/src/Display.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -406,7 +413,8 @@ std::ostream & NOMAD::operator << ( std::ostream                            & ou
 /*-----------------------------------------------------------------*/
 std::ostream & NOMAD::operator << ( std::ostream & out , NOMAD::bb_input_type bi )
 {
-    switch ( bi ) {
+    switch ( bi )
+    {
         case NOMAD::CONTINUOUS:
             out << "cont(R)";
             break;
@@ -484,34 +492,12 @@ std::ostream & NOMAD::operator << ( std::ostream & out , NOMAD::model_type mt )
         case NOMAD::QUADRATIC_MODEL:
             out << "quadratic";
             break;
-        case NOMAD::TGP_MODEL:
-            out << "TGP";
-            break;
         case NOMAD::NO_MODEL:
             out << "no models";
     }
     return out;
 }
 
-/*-----------------------------------------------------------------*/
-/*                      to display a TGP mode                      */
-/*-----------------------------------------------------------------*/
-std::ostream & NOMAD::operator << ( std::ostream & out , NOMAD::TGP_mode_type m )
-{
-    switch ( m )
-    {
-        case NOMAD::TGP_FAST:
-            out << "fast";
-            break;
-        case NOMAD::TGP_PRECISE:
-            out << "precise";
-            break;
-        case NOMAD::TGP_USER:
-            out << "user";
-            break;
-    }
-    return out;
-}
 
 /*-----------------------------------------------------------------*/
 /*                  to display an evaluation type                  */
@@ -581,6 +567,9 @@ std::ostream & NOMAD::operator << ( std::ostream & out , NOMAD::stop_type st )
         case NOMAD::XL_LIMITS_REACHED:
             out << "mesh index limits";
             break;
+        case NOMAD::GL_LIMITS_REACHED:
+            out << "mesh index limits";
+            break;
         case NOMAD::MAX_TIME_REACHED:
             out << "max time";
             break;
@@ -786,6 +775,9 @@ std::ostream & NOMAD::operator << ( std::ostream          & out ,
         case NOMAD::ORTHO_NP1_NEG:
             out << "Ortho-MADS n+1 NEG";
             break;
+        case NOMAD::ORTHO_NP1_UNI:
+            out << "Ortho-MADS n+1 UNI";
+            break;
         case NOMAD::DYN_ADDED:
             out << "Dynamic n+1th direction";
             break;
diff --git a/src/Display.hpp b/src/Display.hpp
index e88323b..59ce2c2 100644
--- a/src/Display.hpp
+++ b/src/Display.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,48 +41,48 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Display.hpp
-  \brief  Custom class for display (headers)
-  \author Sebastien Le Digabel
-  \date   2010-03-30
-  \see    Display.cpp
-*/
+ \file   Display.hpp
+ \brief  Custom class for display (headers)
+ \author Sebastien Le Digabel
+ \date   2010-03-30
+ \see    Display.cpp
+ */
 #ifndef __DISPLAY__
 #define __DISPLAY__
 
 #include "utils.hpp"
 
 namespace NOMAD {
-
-  /// Custom display class.
-  /**
+    
+    /// Custom display class.
+    /**
      - This class is used instead of \c std::ostream ojects.
      - Use \c std::endl as new line character; \c '\\n' will ignore indentation.
      - Do not use \c << \c flush; : it would create a new indentation.
-       Use method \c Display::flush() instead.
+     Use method \c Display::flush() instead.
      
      \b Two \b examples \b for \b creating \b indented \b blocks:
-
+     
      \code
      using namespace NOMAD;
      Display out ( std::cout );
      \endcode
      
      \b Example \b 1:
-
+     
      \code
      out << "line #1" << std::endl
-         << open_block()
-         << "line #2" << std::endl << "line #3" << std::endl
-         << open_block ( "begin of block 2" )
-         << "line #4" << std::endl << "line #5" << std::endl
-         << close_block ( "end of block 2" )
-         << close_block()
-         << std::endl;
+     << open_block()
+     << "line #2" << std::endl << "line #3" << std::endl
+     << open_block ( "begin of block 2" )
+     << "line #4" << std::endl << "line #5" << std::endl
+     << close_block ( "end of block 2" )
+     << close_block()
+     << std::endl;
      \endcode
-
+     
      \b Example \b 2:
-
+     
      \code
      out << "line #1" << std::endl;
      out.open_block();
@@ -86,456 +93,456 @@ namespace NOMAD {
      out.close_block();
      out << std::endl;
      \endcode
-
+     
      \b This \b displays \b twice:
-
+     
      \verbatim
      line #1
      {
-         line #2
-	 line #3
-         begin of block 2 {
-	     line #4
-	     line #5
-	 } end of block 2
+     line #2
+     line #3
+     begin of block 2 {
+     line #4
+     line #5
+     } end of block 2
      }
      \endverbatim
-  */
-  class Display {
-
-  private:
-
-    std::ostream      & _out;           ///< Display.
-
-    mutable std::string _indent_str;    ///< Indentation string (tabulations).
-    mutable bool        _newline;       ///< Indent or not.
+     */
+    class Display {
+        
+    private:
+        
+        std::ostream      & _out;           ///< Display.
+        
+        mutable std::string _indent_str;    ///< Indentation string (tabulations).
+        mutable bool        _newline;       ///< Indent or not.
+        
+        std::string         _open_brace;    ///< Braces of the indentation blocks.
+        std::string         _closed_brace;  ///< Defaults: "{" and "}".
+        
+        NOMAD::dd_type      _gen_dd;        ///< General display degree.
+        NOMAD::dd_type      _search_dd;     ///< Search display degree.
+        NOMAD::dd_type      _poll_dd;       ///< Poll display degree.
+        NOMAD::dd_type      _iter_dd;       ///< Iterative display degree.
+        
+        /// Private affectation operator.
+        /**
+         \param out The right-hand side object -- \b IN.
+         */
+        const Display & operator = ( const Display & out );
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param out A \c std::ostream that will be used for all displays
+         (can be a \c std::ofstream)
+         -- \b IN -- \b optional (default = \c std::cout).
+         */
+        Display ( std::ostream & out = std::cout )
+        : _out          ( out                   ) , // can be a std::ofstream
+        _newline      ( true                  ) ,
+        _open_brace   ( "{"                   ) ,
+        _closed_brace ( "}"                   ) ,
+        _gen_dd       ( NOMAD::NORMAL_DISPLAY ) ,
+        _search_dd    ( NOMAD::NORMAL_DISPLAY ) ,
+        _poll_dd      ( NOMAD::NORMAL_DISPLAY ) ,
+        _iter_dd      ( NOMAD::NORMAL_DISPLAY )   {}
+        
+        /// Copy constructor.
+        /**
+         \param out The copied object -- \b IN.
+         */
+        Display ( const Display & out )
+        : _out          ( out._out          ) ,
+        _indent_str   ( out._indent_str   ) ,
+        _newline      ( out._newline      ) ,
+        _open_brace   ( out._open_brace   ) ,
+        _closed_brace ( out._closed_brace ) ,
+        _gen_dd       ( out._gen_dd       ) ,
+        _search_dd    ( out._search_dd    ) ,
+        _poll_dd      ( out._poll_dd      ) ,
+        _iter_dd      ( out._iter_dd      )   {}
+        
+        /// Destructor.
+        virtual ~Display ( void ) {}
+        
+        /// Flush.
+        /**
+         Must be used instead of \c out \c << \c std::flush.
+         */
+        void flush ( void ) const { _out << std::flush; }
+        
+        /*---------------*/
+        /*  GET methods  */
+        /*---------------*/
+        
+        /// Access to the indentation string.
+        /**
+         \return The indentation string.
+         */
+        const std::string get_indent_str ( void ) const { return _indent_str; }
+        
+        /// Access to the general display degree.
+        /**
+         \return _gen_dd.
+         */
+        NOMAD::dd_type get_gen_dd ( void ) const { return _gen_dd; }
+        
+        /// Access to the search display degree.
+        /**
+         \return _search_dd.
+         */
+        NOMAD::dd_type get_search_dd ( void ) const { return _search_dd; }
+        
+        /// Access to the poll display degree.
+        /**
+         \return _poll_dd.
+         */
+        NOMAD::dd_type get_poll_dd ( void ) const { return _poll_dd; }
+        
+        /// Access to the iterative display degree.
+        /**
+         \return _iter_dd.
+         */
+        NOMAD::dd_type get_iter_dd ( void ) const { return _iter_dd; }
+        
+        /// Get the display degree for a specific search type.
+        /**
+         \param search The search type.
+         \return       The display degree.
+         */
+        NOMAD::dd_type get_display_degree ( NOMAD::search_type search ) const;
+        
+        /// Get the display degrees as a string of size 4.
+        /**
+         \param dd The string containing the display degrees -- \b OUT.
+         */
+        void get_display_degree ( std::string & dd ) const;
+        
+        /*---------------*/
+        /*  SET methods  */
+        /*---------------*/
+        
+        /// Set the indentation string.
+        /**
+         \param is The indentation string -- \b IN.
+         */
+        void set_indent_str ( const std::string & is ) { _indent_str = is; }
+        
+        /// Set the _open_brace string.
+        /**
+         \param ob The string -- \b IN.
+         */
+        void set_open_brace   ( const std::string & ob ) { _open_brace = ob; }
+        
+        /// Set the _closed_brace string.
+        /**
+         \param cb The string -- \b IN.
+         */
+        void set_closed_brace ( const std::string & cb ) { _closed_brace = cb; }
+        
+        /// Set the display degrees.
+        /**
+         \param gen_dd    General display degree   -- \b IN.
+         \param search_dd Search display degree    -- \b IN.
+         \param poll_dd   Poll display degree      -- \b IN.
+         \param iter_dd   Iterative display degree -- \b IN.
+         */
+        void set_degrees ( NOMAD::dd_type gen_dd    ,
+                          NOMAD::dd_type search_dd ,
+                          NOMAD::dd_type poll_dd   ,
+                          NOMAD::dd_type iter_dd     );
+        
+        /// Set all the display degrees to one given display degree.
+        /**
+         \param dd The 4 display degrees -- \b IN.
+         */
+        void set_degrees ( NOMAD::dd_type dd ) { set_degrees ( dd , dd , dd , dd ); }
+        
+        /// Open an indentation block.
+        /**
+         \param msg Message displayed as the block title
+         -- \b IN -- \b optional (default = empty string).
+         */
+        void open_block  ( const std::string & msg = "" ) const;
+        
+        /// Close an indentation block.
+        /**
+         \param msg Message displayed at the end of the block
+         -- \b IN -- \b optional (default = empty string).
+         */
+        void close_block ( const std::string & msg = "" ) const;
+        
+        /// Operator <<.
+        template <class T>
+        const Display & operator << ( const T & ) const;
+        
+        /// Defines the \c cout type.
+        typedef std::basic_ostream<char, std::char_traits<char> > CoutType;
+        
+        /// Allows the use of \c out \c << \c endl (\c std::endl is used).
+        /**
+         \warning This considers also \c std::flush.
+         */
+        typedef CoutType& (*StandardEndLine)(CoutType&);
+        
+        /// Operator << for \c std::endl.
+        const Display & operator << ( StandardEndLine ) const;
+        
+        /// Set the display precision.
+        /**
+         \param p The display precision -- \b IN.
+         */
+        void precision ( int p ) const { _out.precision(p); }
+        
+        /// Get the current display precision.
+        /**
+         \return An integer for the current precision.
+         */
+        int precision ( void ) const { return static_cast<int>(_out.precision()); }
+        
+        /// Set the format flags (1/2).
+        /**
+         \param f The flags -- \b IN.
+         */
+        void flags ( std::ios_base::fmtflags f ) const { _out.flags(f); }
+        
+        /// Set the format flags (2/2).
+        /**
+         \param f The flags -- \b IN.
+         */
+        void setf ( std::ios_base::fmtflags f ) const { _out.setf(f); }
+        
+        /// Unset the format flags.
+        /**
+         \param f The flags -- \b IN.
+         */
+        void unsetf ( std::ios_base::fmtflags f ) const { _out.unsetf(f); }
+        
+        
+        /// Get the current format flags.
+        /**
+         \return The format flags.
+         */
+        std::ios_base::fmtflags flags ( void ) const { return _out.flags(); }
+        
+        /*--------------------*/
+        /*  type conversions  */
+        /*--------------------*/
+        
+        /// Convert a NOMAD::dd_type to a character.
+        /**
+         \param dd The NOMAD::dd_type -- \b IN.
+         \return   The character.
+         */
+        static char dd_to_char ( NOMAD::dd_type dd );
+        
+        /// Convert a NOMAD::dd_type to an integer.
+        /**
+         \param dd The NOMAD::dd_type -- \b IN.
+         \return   The integer.
+         */
+        static int dd_to_int ( NOMAD::dd_type dd );
+        
+        /// Convert an integer to a NOMAD::dd_type.
+        /**
+         \param dd The integer -- \b IN.
+         \return   The NOMAD::dd_type.
+         */
+        static NOMAD::dd_type int_to_dd ( int dd );
+        
+        /// Display a duration with a smart format.
+        /**
+         \param t Duration as an integer in seconds -- \b IN.
+         */
+        void display_time ( int t ) const;
+        
+        /// Display a boolean with format \c yes/no.
+        /**
+         \param b The boolean -- \b IN.
+         */
+        void display_yes_or_no ( bool b ) const { (*this) << ( (b) ? "yes" : "no" ); }
+        
+        /// Display a memory size.
+        /**
+         \param size The memory size.
+         */
+        void display_size_of ( float size ) const;
+        
+        /// Display an integer with a specific width.
+        /**
+         \param i     The integer to display -- \b IN.
+         \param max_i Maximal value of \c i used to determine the display width
+         -- \b IN -- \b optional (default = \c -1).
+         */
+        void display_int_w ( int i , int max_i = -1 ) const;
+        
+        /// Get the keyword associated with a NOMAD::display_stats_type.
+        /**
+         \param dst The NOMAD::display_stats_type -- \b IN.
+         \return    A string containing the keyword.
+         */
+        static std::string get_display_stats_keyword ( NOMAD::display_stats_type dst );
+        
+        /// Extract display format from a string.
+        /**
+         \param s      The string -- \b IN/OUT.
+         \param format The format -- \b OUT.
+         */
+        static void extract_display_format ( std::string & s , std::string & format );
+        
+        /// Get the NOMAD::display_stats_type from a string.
+        /**
+         \param s The string -- \b IN.
+         \return  The NOMAD::display_stats_type.
+         */
+        static NOMAD::display_stats_type get_display_stats_type ( const std::string & s );
+        
+    };
     
-    std::string         _open_brace;    ///< Braces of the indentation blocks.
-    std::string         _closed_brace;  ///< Defaults: "{" and "}".
-
-    NOMAD::dd_type      _gen_dd;        ///< General display degree.
-    NOMAD::dd_type      _search_dd;     ///< Search display degree.
-    NOMAD::dd_type      _poll_dd;       ///< Poll display degree.
-    NOMAD::dd_type      _iter_dd;       ///< Iterative display degree.
-
-    /// Private affectation operator.
-    /**
-       \param out The right-hand side object -- \b IN.
-    */
-    const Display & operator = ( const Display & out );
-
-  public:
+    /*-------------------------------------------------------------------------*/
     
-    /// Constructor.
+    /// Open an indented block.
     /**
-       \param out A \c std::ostream that will be used for all displays
-                  (can be a \c std::ofstream)
-		  -- \b IN -- \b optional (default = \c std::cout).
+     Allows the use of \c out \c << \c open_block(msg).
      */
-    Display ( std::ostream & out = std::cout )
-      : _out          ( out                   ) , // can be a std::ofstream
-	_newline      ( true                  ) ,
-	_open_brace   ( "{"                   ) ,
-	_closed_brace ( "}"                   ) ,
-	_gen_dd       ( NOMAD::NORMAL_DISPLAY ) ,
-	_search_dd    ( NOMAD::NORMAL_DISPLAY ) ,
-	_poll_dd      ( NOMAD::NORMAL_DISPLAY ) ,
-	_iter_dd      ( NOMAD::NORMAL_DISPLAY )   {}
-
-    /// Copy constructor.
-    /**
-       \param out The copied object -- \b IN.
-    */
-    Display ( const Display & out )
-      : _out          ( out._out          ) ,
-	_indent_str   ( out._indent_str   ) ,
-	_newline      ( out._newline      ) ,
-	_open_brace   ( out._open_brace   ) ,
-	_closed_brace ( out._closed_brace ) ,
-	_gen_dd       ( out._gen_dd       ) ,
-	_search_dd    ( out._search_dd    ) ,
-	_poll_dd      ( out._poll_dd      ) ,
-	_iter_dd      ( out._iter_dd      )   {}
-
-    /// Destructor.
-    virtual ~Display ( void ) {}
-
-    /// Flush.
-    /**
-       Must be used instead of \c out \c << \c std::flush.
-    */
-    void flush ( void ) const { _out << std::flush; }
-
-    /*---------------*/
-    /*  GET methods  */
-    /*---------------*/
-
-    /// Access to the indentation string.
-    /**
-      \return The indentation string.
-    */
-    const std::string get_indent_str ( void ) const { return _indent_str; }
-
-    /// Access to the general display degree.
-    /**
-       \return _gen_dd.
-    */
-    NOMAD::dd_type get_gen_dd ( void ) const { return _gen_dd; }
-
-    /// Access to the search display degree.
-    /**
-       \return _search_dd.
-    */
-    NOMAD::dd_type get_search_dd ( void ) const { return _search_dd; }
-
-    /// Access to the poll display degree.
-    /**
-       \return _poll_dd.
-    */
-    NOMAD::dd_type get_poll_dd ( void ) const { return _poll_dd; }
-
-    /// Access to the iterative display degree.
-    /**
-       \return _iter_dd.
-    */
-    NOMAD::dd_type get_iter_dd ( void ) const { return _iter_dd; }
-
-    /// Get the display degree for a specific search type.
-    /**
-       \param search The search type.
-       \return       The display degree.
-    */
-    NOMAD::dd_type get_display_degree ( NOMAD::search_type search ) const;
-
-    /// Get the display degrees as a string of size 4.
-    /**
-       \param dd The string containing the display degrees -- \b OUT.
-    */
-    void get_display_degree ( std::string & dd ) const;
-
-    /*---------------*/
-    /*  SET methods  */
-    /*---------------*/
-
-    /// Set the indentation string.
-    /**
-      \param is The indentation string -- \b IN.
-    */
-    void set_indent_str ( const std::string & is ) { _indent_str = is; }
-
-    /// Set the _open_brace string.
-    /**
-       \param ob The string -- \b IN.
-    */
-    void set_open_brace   ( const std::string & ob ) { _open_brace = ob; }
-
-    /// Set the _closed_brace string.
-    /**
-       \param cb The string -- \b IN.
-    */
-    void set_closed_brace ( const std::string & cb ) { _closed_brace = cb; }
-
-    /// Set the display degrees.
-    /**
-       \param gen_dd    General display degree   -- \b IN.
-       \param search_dd Search display degree    -- \b IN.
-       \param poll_dd   Poll display degree      -- \b IN.
-       \param iter_dd   Iterative display degree -- \b IN.
-    */
-    void set_degrees ( NOMAD::dd_type gen_dd    ,
-		       NOMAD::dd_type search_dd ,
-		       NOMAD::dd_type poll_dd   ,
-		       NOMAD::dd_type iter_dd     );
-
-    /// Set all the display degrees to one given display degree.
-    /**
-       \param dd The 4 display degrees -- \b IN.
-    */
-    void set_degrees ( NOMAD::dd_type dd ) { set_degrees ( dd , dd , dd , dd ); }
-
-    /// Open an indentation block.
-    /**
-       \param msg Message displayed as the block title
-                  -- \b IN -- \b optional (default = empty string).
-    */
-    void open_block  ( const std::string & msg = "" ) const;
+    class open_block {
+    private:
+        std::string _msg; ///< Message displayed as a block title.
+    public:
+        
+        /// Constructor.
+        /**
+         Open an indented block.
+         \param msg The block title
+         -- \b IN -- \b optional (default = empty string).
+         */
+        open_block ( const std::string & msg = "" ) : _msg ( msg ) {}
+        
+        /// Operator ().
+        const Display & operator() ( const Display & out ) const
+        {
+            out.open_block ( _msg );
+            return out;
+        }
+    };
     
-    /// Close an indentation block.
+    /*-------------------------------------------------------------------------*/
+    
+    /// Close an indented block.
     /**
-       \param msg Message displayed at the end of the block
-                  -- \b IN -- \b optional (default = empty string).
-    */
-    void close_block ( const std::string & msg = "" ) const;
-
+     Allows the use of \c out \c << \c close_block(msg).
+     */
+    class close_block {
+    private:
+        std::string _msg; ///< Message displayed at the end of a block.
+    public:
+        
+        /// Constructor.
+        /**
+         Close an indented block.
+         \param msg Message displayed at the end of a block
+         -- \b IN -- \b optional (default = empty string).
+         */
+        close_block ( const std::string & msg = "" ) : _msg ( msg ) {}
+        
+        /// Operator ().
+        const Display & operator() ( const Display & out ) const
+        {
+            out.close_block ( _msg );
+            return out;
+        }
+    };
+    
+    /*-------------------------------------------------------------*/
+    /*  display functions for enum types defined in 'defines.hpp'  */
+    /*-------------------------------------------------------------*/
+    
+    /// Operator << for NOMAD::stop_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::stop_type );
+    
+    /// Operator << for NOMAD::dd_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::dd_type );
+    
+    /// Operator << for NOMAD::success_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::success_type );
+    
+    /// Operator << for NOMAD::bb_input_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::bb_input_type );
+    
+    /// Operator << for NOMAD::bb_output_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::bb_output_type );
+    
+    /// Operator << for NOMAD::interpolation_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::interpolation_type );
+    
+    /// Operator << for NOMAD::hnorm_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::hnorm_type );
+    
+    /// Operator << for NOMAD::search_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::search_type );
+    
+    /// Operator << for NOMAD::model_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::model_type );
+     
+    /// Operator << for NOMAD::direction_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::direction_type );
+    
+    /// Operator << for NOMAD::check_failed_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::check_failed_type );
+    
+    /// Operator << for NOMAD::display_stats_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::display_stats_type );
+    
+    /// Operator << for NOMAD::eval_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::eval_type );
+    
+    /// Operator << for NOMAD::eval_status_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::eval_status_type );
+    
+    /// Operator << for NOMAD::multi_formulation_type.
+    std::ostream & operator << ( std::ostream & , NOMAD::multi_formulation_type );
+    
+    /// Operator << for a vector of NOMAD::bb_intput_type.
+    std::ostream & operator << ( std::ostream                            & ,
+                                const std::vector<NOMAD::bb_input_type> &   );
+    
     /// Operator <<.
     template <class T>
-    const Display & operator << ( const T & ) const;
-    
-    /// Defines the \c cout type.
-    typedef std::basic_ostream<char, std::char_traits<char> > CoutType;
-
-    /// Allows the use of \c out \c << \c endl (\c std::endl is used).
-    /**
-       \warning This considers also \c std::flush.
-    */
-    typedef CoutType& (*StandardEndLine)(CoutType&);
-
-    /// Operator << for \c std::endl.
-    const Display & operator << ( StandardEndLine ) const;  
-
-    /// Set the display precision.
-    /**
-       \param p The display precision -- \b IN.
-    */
-    void precision ( int p ) const { _out.precision(p); }
-
-    /// Get the current display precision.
-    /**
-       \return An integer for the current precision.
-    */
-    int precision ( void ) const { return static_cast<int>(_out.precision()); }
-
-    /// Set the format flags (1/2).
-    /**
-       \param f The flags -- \b IN.
-    */
-    void flags ( std::ios_base::fmtflags f ) const { _out.flags(f); }
-
-    /// Set the format flags (2/2).
-    /**
-       \param f The flags -- \b IN.
-    */
-    void setf ( std::ios_base::fmtflags f ) const { _out.setf(f); }
-
-    /// Unset the format flags.
-    /**
-       \param f The flags -- \b IN.
-    */
-    void unsetf ( std::ios_base::fmtflags f ) const { _out.unsetf(f); }
-
-
-    /// Get the current format flags.
-    /**
-       \return The format flags.
-    */
-    std::ios_base::fmtflags flags ( void ) const { return _out.flags(); }
+    inline const NOMAD::Display & NOMAD::Display::operator << ( const T & t ) const
+    {
+        if ( _newline )
+        {
+            _out << _indent_str;
+            _newline = false;
+        }
+        _out << t;
+        return *this;
+    }
     
-    /*--------------------*/
-    /*  type conversions  */
-    /*--------------------*/
-
-    /// Convert a NOMAD::dd_type to a character.
-    /**
-       \param dd The NOMAD::dd_type -- \b IN.
-       \return   The character.
-     */
-    static char dd_to_char ( NOMAD::dd_type dd );
-
-    /// Convert a NOMAD::dd_type to an integer.
-    /**
-       \param dd The NOMAD::dd_type -- \b IN.
-       \return   The integer.
-    */
-    static int dd_to_int ( NOMAD::dd_type dd );
-
-    /// Convert an integer to a NOMAD::dd_type.
-    /**
-       \param dd The integer -- \b IN.
-       \return   The NOMAD::dd_type.
-    */
-    static NOMAD::dd_type int_to_dd ( int dd );
-
-    /// Display a duration with a smart format.
-    /**
-       \param t Duration as an integer in seconds -- \b IN.
-    */
-    void display_time ( int t ) const;
-
-    /// Display a boolean with format \c yes/no.
-    /**
-       \param b The boolean -- \b IN.
-    */
-    void display_yes_or_no ( bool b ) const { (*this) << ( (b) ? "yes" : "no" ); }
-
-    /// Display a memory size.
-    /**
-       \param size The memory size.
-    */
-    void display_size_of ( float size ) const;
-
-    /// Display an integer with a specific width.
-    /**
-       \param i     The integer to display -- \b IN.
-       \param max_i Maximal value of \c i used to determine the display width
-                    -- \b IN -- \b optional (default = \c -1).
-    */
-    void display_int_w ( int i , int max_i = -1 ) const;
-
-    /// Get the keyword associated with a NOMAD::display_stats_type.
-    /**
-       \param dst The NOMAD::display_stats_type -- \b IN.
-       \return    A string containing the keyword.
-    */
-    static std::string get_display_stats_keyword ( NOMAD::display_stats_type dst );
-
-    /// Extract display format from a string.
-    /**
-       \param s      The string -- \b IN/OUT.
-       \param format The format -- \b OUT.
-    */
-    static void extract_display_format ( std::string & s , std::string & format );
-
-    /// Get the NOMAD::display_stats_type from a string.
-    /**
-       \param s The string -- \b IN.
-       \return  The NOMAD::display_stats_type.
-    */
-    static NOMAD::display_stats_type get_display_stats_type ( const std::string & s );
-
-  };
-
-  /*-------------------------------------------------------------------------*/
-
-  /// Open an indented block.
-  /**
-     Allows the use of \c out \c << \c open_block(msg).
-  */
-  class open_block {
-  private:
-    std::string _msg; ///< Message displayed as a block title.
-  public:
-
-    /// Constructor.
-    /**
-       Open an indented block.
-       \param msg The block title
-                  -- \b IN -- \b optional (default = empty string).
-    */
-    open_block ( const std::string & msg = "" ) : _msg ( msg ) {}
-
-    /// Operator ().
-    const Display & operator() ( const Display & out ) const {
-      out.open_block ( _msg );
-      return out;
+    /// Allows the use of \c out \c << \c endl.
+    inline const NOMAD::Display & NOMAD::Display::operator << ( StandardEndLine m ) const
+    {
+        m ( _out ); // this could be a std::flush, so don't use it: instead use method flush()
+        _newline = true;
+        return *this;
     }
-  };
-
-  /*-------------------------------------------------------------------------*/
-
-  /// Close an indented block.
-  /**
-     Allows the use of \c out \c << \c close_block(msg).
-  */
-  class close_block {
-  private:
-    std::string _msg; ///< Message displayed at the end of a block.
-  public:
-
-    /// Constructor.
-    /**
-       Close an indented block.
-       \param msg Message displayed at the end of a block
-                  -- \b IN -- \b optional (default = empty string).
-    */
-    close_block ( const std::string & msg = "" ) : _msg ( msg ) {}
-
-    /// Operator ().
-    const Display & operator() ( const Display & out ) const {
-      out.close_block ( _msg );
-      return out;
+    
+    /// Allows the use of \c out \c << \c open_block(msg).
+    inline const NOMAD::Display & operator << ( const NOMAD::Display    & out ,
+                                               const NOMAD::open_block & ob    )
+    {
+        return ob ( out );
     }
-  };
-
-  /*-------------------------------------------------------------*/
-  /*  display functions for enum types defined in 'defines.hpp'  */
-  /*-------------------------------------------------------------*/
-
-  /// Operator << for NOMAD::stop_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::stop_type );
-
-  /// Operator << for NOMAD::dd_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::dd_type );
-  
-  /// Operator << for NOMAD::success_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::success_type );
-  
-  /// Operator << for NOMAD::bb_input_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::bb_input_type );
-
-  /// Operator << for NOMAD::bb_output_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::bb_output_type );
-
-  /// Operator << for NOMAD::interpolation_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::interpolation_type );
-
-  /// Operator << for NOMAD::hnorm_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::hnorm_type );
-
-  /// Operator << for NOMAD::search_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::search_type );
-
-  /// Operator << for NOMAD::model_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::model_type );
-
-  /// Operator << for NOMAD::TGP_mode_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::TGP_mode_type );
-
-  /// Operator << for NOMAD::direction_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::direction_type );
-
-  /// Operator << for NOMAD::check_failed_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::check_failed_type );
-
-  /// Operator << for NOMAD::display_stats_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::display_stats_type );
-
-  /// Operator << for NOMAD::eval_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::eval_type );
-
-  /// Operator << for NOMAD::eval_status_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::eval_status_type );
-
-  /// Operator << for NOMAD::multi_formulation_type.
-  std::ostream & operator << ( std::ostream & , NOMAD::multi_formulation_type );
-
-  /// Operator << for a vector of NOMAD::bb_intput_type.  
-  std::ostream & operator << ( std::ostream                            & ,
-			       const std::vector<NOMAD::bb_input_type> &   );
-
-  /// Operator <<.
-  template <class T>
-  inline const NOMAD::Display & NOMAD::Display::operator << ( const T & t ) const
-  {
-    if ( _newline ) {
-      _out << _indent_str;
-      _newline = false;
+    
+    /// Allows the use of \c out \c << \c close_block(msg).
+    inline const NOMAD::Display & operator << ( const NOMAD::Display     & out ,
+                                               const NOMAD::close_block & cb    )
+    {
+        return cb ( out );
     }
-    _out << t;
-    return *this;
-  }
-
-  /// Allows the use of \c out \c << \c endl.
-  inline const NOMAD::Display & NOMAD::Display::operator << ( StandardEndLine m ) const
-  {
-    m ( _out ); // this could be a std::flush, so don't use it: instead use method flush()
-    _newline = true;
-    return *this;
-  }
-
-  /// Allows the use of \c out \c << \c open_block(msg).
-  inline const NOMAD::Display & operator << ( const NOMAD::Display    & out ,
-					      const NOMAD::open_block & ob    )
-  {
-    return ob ( out );
-  }
-
-  /// Allows the use of \c out \c << \c close_block(msg).
-  inline const NOMAD::Display & operator << ( const NOMAD::Display     & out ,
-					      const NOMAD::close_block & cb    )
-  {
-    return cb ( out );
-  }
-
+    
 }
 
 #endif
diff --git a/src/Double.cpp b/src/Double.cpp
index 8a7c067..28b1f3c 100644
--- a/src/Double.cpp
+++ b/src/Double.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -150,7 +157,8 @@ bool NOMAD::Double::atof ( const std::string & ss )
     std::string s = ss;
     NOMAD::toupper(s);
     
-    if ( s == "-" || ss == NOMAD::Double::_undef_str ) {
+    if ( s == "-" || ss == NOMAD::Double::_undef_str )
+    {
         _value   = 0.0;
         _defined = false;
         return true;
@@ -158,13 +166,15 @@ bool NOMAD::Double::atof ( const std::string & ss )
     
     if ( s == "INF" ||  s == "+INF" ||
         ss == NOMAD::Double::_inf_str ||
-        ss == ("+" + NOMAD::Double::_inf_str) ) {
+        ss == ("+" + NOMAD::Double::_inf_str) )
+    {
         _value   = NOMAD::INF;
         _defined = true;
         return true;
     }
     
-    if ( s == "-INF" || ss == ("-" + NOMAD::Double::_inf_str) ) {
+    if ( s == "-INF" || ss == ("-" + NOMAD::Double::_inf_str) )
+    {
         _value   = -NOMAD::INF;
         _defined = true;
         return true;
@@ -178,8 +188,10 @@ bool NOMAD::Double::atof ( const std::string & ss )
     
     size_t n = s.size();
     for ( size_t k = 1 ; k < n ; ++k )
-        if ( !isdigit(s[k]) && s[k] != '.' ) {
-            if ( s[k] == 'E' ) {
+        if ( !isdigit(s[k]) && s[k] != '.' )
+        {
+            if ( s[k] == 'E' )
+            {
                 if ( s.size() == k+1 )
                     return false;
                 ++k;
@@ -200,7 +212,8 @@ bool NOMAD::Double::atof ( const std::string & ss )
 /*-------------------------------------------------*/
 bool NOMAD::Double::relative_atof ( const std::string & s , bool & relative )
 {
-    if ( std::toupper(s[0]) == 'R' ) {
+    if ( std::toupper(s[0]) == 'R' )
+    {
         relative  = true;
         std::string ss = s;
         ss.erase(ss.begin());
@@ -368,7 +381,8 @@ NOMAD::Double & NOMAD::Double::operator = ( double r )
 /*------------------------------------------*/
 void NOMAD::Double::display ( const NOMAD::Display & out ) const
 {
-    if ( _defined ) {
+    if ( _defined )
+    {
         if ( _value == NOMAD::INF )
             out << NOMAD::Double::_inf_str;
         else if ( _value == -NOMAD::INF )
@@ -484,18 +498,22 @@ void NOMAD::Double::display ( const NOMAD::Display & out    ,
                 out.precision ( prec );
             
             if ( c == 'f' )
+            {
                 out.setf ( std::ios::fixed );
-            
+                out << _value;
+            }
             else if ( c == 'e' )
             {
                 out.unsetf ( std::ios::fixed );
                 out.setf   ( std::ios::scientific );
+                out << _value;
             }
             
             else if ( c == 'E' )
             {
                 out.unsetf ( std::ios::fixed );
                 out.setf   ( std::ios::scientific | std::ios::uppercase );
+                out << _value;
             }
             
             else if ( c == 'g' )
@@ -509,10 +527,11 @@ void NOMAD::Double::display ( const NOMAD::Display & out    ,
                 streamS.setf( std::ios::scientific);
                 streamS << _value;
                 streamF << _value;
-                if (streamS.str().length() < streamF.str().length())
-                    out.setf(std::ios::scientific);
+                
+                if ( streamS.str().length() < streamF.str().length() )
+                    out << streamS.str();
                 else
-                    out.setf(std::ios::fixed);
+                    out << streamF.str();
                 
             }
             
@@ -522,19 +541,17 @@ void NOMAD::Double::display ( const NOMAD::Display & out    ,
                 streamS.precision ( prec );
                 streamF.precision ( prec );
                 streamF.unsetf(std::ios::scientific);
-                streamF.setf( std::ios::fixed );
+                streamF.setf( std::ios::fixed | std::ios::uppercase );
                 streamS.unsetf(std::ios::fixed);
-                streamS.setf( std::ios::scientific);
+                streamS.setf( std::ios::scientific | std::ios::uppercase );
                 streamS << _value ;
                 streamF << _value ;
                 if (streamS.str().length() < streamF.str().length())
-                    out.setf(std::ios::scientific | std::ios::uppercase );
+                    out << streamS.str();
                 else
-                    out.setf(std::ios::fixed | std::ios::uppercase );
+                    out << streamF.str();
             }
             
-            out << _value;
-            
             out.precision ( old_prec  );
             out.flags     ( old_flags );
         }
@@ -543,6 +560,7 @@ void NOMAD::Double::display ( const NOMAD::Display & out    ,
         out << NOMAD::Double::_undef_str;
 }
 
+
 /*------------------------------------------*/
 /*                  round                   */
 /*------------------------------------------*/
@@ -551,10 +569,33 @@ int NOMAD::Double::round ( void ) const
     if ( !_defined )
         throw Not_Defined ( "Double.cpp" , __LINE__ ,
                            "NOMAD::Double::round(): value not defined" );
-    return static_cast<int>(_value < 0.0 ? -std::floor(.5-_value) : std::floor(.5+_value));
+    
+    double d = (_value < 0.0 ? -std::floor(.5-_value) : std::floor(.5+_value));
+  
+    if ( d > NOMAD::P_INF_INT || d < NOMAD::M_INF_INT )
+        throw Invalid_Value ( "Double.cpp" , __LINE__ ,
+                           "NOMAD::Double::round(): value cannot be rounded to integer because it is outside of range" );
+
+    return static_cast<int> (d);
+}
+
+/*------------------------------------------*/
+/*              round to double             */
+/*------------------------------------------*/
+const NOMAD::Double NOMAD::Double::roundd ( void ) const
+{
+    if ( !_defined )
+        throw Not_Defined ( "Double.cpp" , __LINE__ ,
+                           "NOMAD::Double::round(): value not defined" );
+    
+    NOMAD::Double d = (_value < 0.0 ? -std::floor(.5-_value) : std::floor(.5+_value));
+    
+    return (_value < 0.0 ? -std::floor(.5-_value) : std::floor(.5+_value));
+    
 }
 
 
+
 /*------------------------------------------*/
 /*                  Ceil                  */
 /*------------------------------------------*/
@@ -563,7 +604,7 @@ const NOMAD::Double NOMAD::Double::ceil ( void ) const
     if ( !_defined )
         throw Not_Defined ( "Double.cpp" , __LINE__ ,
                            "NOMAD::Double::ceil(): value not defined" );
-    return NOMAD::Double(std::ceil(_value));
+    return NOMAD::Double( std::ceil(_value) );
 }
 
 /*------------------------------------------*/
@@ -574,7 +615,7 @@ const NOMAD::Double NOMAD::Double::floor ( void ) const
     if ( !_defined )
         throw Not_Defined ( "Double.cpp" , __LINE__ ,
                            "NOMAD::Double::floor(): value not defined" );
-    return NOMAD::Double(std::floor(_value));
+    return NOMAD::Double( std::floor(_value) );
 }
 
 /*------------------------------------------*/
@@ -640,7 +681,8 @@ const NOMAD::Double NOMAD::Double::rel_err ( const Double & x ) const
     double diff = fabs ( _value - x._value );
     
     // 2. test if one of the values is zero:
-    if ( _value == 0.0 || x._value == 0.0 ) {
+    if ( _value == 0.0 || x._value == 0.0 )
+    {
         
         // we return min{2,|x-y|} (instead of 1):
         if ( diff > 2.0 )
@@ -654,7 +696,8 @@ const NOMAD::Double NOMAD::Double::rel_err ( const Double & x ) const
     double err = diff / ( (a<b) ? b : a );
     
     // 4. test if we have opposite signs:
-    if ( _value * x._value < 0.0 ) {
+    if ( _value * x._value < 0.0 )
+    {
         
         // the original error gives err in ]1;2] : we check if |x-y| < 1
         // and if so we return |x-y| :
@@ -701,12 +744,13 @@ void NOMAD::Double::project_to_mesh ( const NOMAD::Double & ref   ,
 {
     if ( !_defined )
         return;
-
+    
     NOMAD::Double v0 = ( ref._defined ) ? ref : 0.0;
     
-    if ( delta._defined && delta != 0.0 ) {
+    if ( delta._defined && delta != 0.0 )
+    {
         
-        *this = v0 + ( (*this-v0) / delta).round() * delta;
+        *this = v0 + ( (*this-v0) / delta).roundd() * delta;
         
         if ( ub._defined && *this > ub )
             *this = ub;
diff --git a/src/Double.hpp b/src/Double.hpp
index 5a9cf7f..405f786 100644
--- a/src/Double.hpp
+++ b/src/Double.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Double.hpp
-  \brief  Custom class for double-precision reals (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-02
-  \see    Double.cpp
-*/
+ \file   Double.hpp
+ \brief  Custom class for double-precision reals (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-02
+ \see    Double.cpp
+ */
 #ifndef __NOMAD_DOUBLE__
 #define __NOMAD_DOUBLE__
 
@@ -47,357 +54,363 @@
 #include "Display.hpp"
 
 namespace NOMAD {
-
-  /// Custom class for double-precision reals.
-  /**
+    
+    /// Custom class for double-precision reals.
+    /**
      - Allows comparisons on reals with custom precision.
      - Deals with undefined values.
      - Use \c value() to access the true \c double value.
-  */
-  class Double {
-    
-  private:
-    
+     */
+    class Double {
+        
+    private:
+        
 #ifdef MEMORY_DEBUG
-    static int    _cardinality;      ///< Number of NOMAD::Double objects in memory.
-    static int    _max_cardinality;  ///< Max number of NOMAD::Double objects in memory.
+        static int    _cardinality;      ///< Number of NOMAD::Double objects in memory.
+        static int    _max_cardinality;  ///< Max number of NOMAD::Double objects in memory.
 #endif
-
-    double        _value;   ///< The value of the number.
-    bool          _defined; ///< \c true if the number has a defined value.
-
-    static double      _epsilon;    ///< Desired precision on comparisons.
-    static std::string _inf_str;    ///< Infinity string.
-    static std::string _undef_str;  ///< Undefined value string.
-
-  public:
-  
-    /*-------------------------------------------------------------------*/
-
-    /// Exception class for undefined NOMAD::Double objects.
-    class Not_Defined : public NOMAD::Exception {
+        
+        double        _value;   ///< The value of the number.
+        bool          _defined; ///< \c true if the number has a defined value.
+        
+        static double      _epsilon;    ///< Desired precision on comparisons.
+        static std::string _inf_str;    ///< Infinity string.
+        static std::string _undef_str;  ///< Undefined value string.
+        
     public:
-      /// Constructor.
-      Not_Defined ( const std::string & file ,
-		    int                 line ,
-		    const std::string & msg    )
-	: NOMAD::Exception ( file , line , msg ) {}
-    };
-
-    /// Exception class for divisons by zero with NOMAD::Double objects.
-    class Invalid_Value : public NOMAD::Exception {
-    public:
-      /// Constructor.
-      Invalid_Value ( const std::string & file ,
-		      int                 line ,
-		      const std::string & msg    )
-	: NOMAD::Exception ( file , line , msg ) {}
-    };
-
-    /*-------------------------------------------------------------------*/
+        
+        /*-------------------------------------------------------------------*/
+        
+        /// Exception class for undefined NOMAD::Double objects.
+        class Not_Defined : public NOMAD::Exception {
+        public:
+            /// Constructor.
+            Not_Defined ( const std::string & file ,
+                         int                 line ,
+                         const std::string & msg    )
+            : NOMAD::Exception ( file , line , msg ) {}
+        };
+        
+        /// Exception class for divisons by zero with NOMAD::Double objects.
+        class Invalid_Value : public NOMAD::Exception {
+        public:
+            /// Constructor.
+            Invalid_Value ( const std::string & file ,
+                           int                 line ,
+                           const std::string & msg    )
+            : NOMAD::Exception ( file , line , msg ) {}
+        };
+        
+        /*-------------------------------------------------------------------*/
 #ifdef MEMORY_DEBUG
-    /// Access to the number of NOMAD::Double objects in memory.
-    /**
-       \return The number of NOMAD::Double objects in memory.
-    */
-    static int get_cardinality ( void ) { return NOMAD::Double::_cardinality; }
-
-    /// Access to the max number of NOMAD::Double objects in memory.
-    /**
-       \return The max number of NOMAD::Double objects in memory.
-    */
-    static int get_max_cardinality ( void ) { return NOMAD::Double::_max_cardinality; }
+        /// Access to the number of NOMAD::Double objects in memory.
+        /**
+         \return The number of NOMAD::Double objects in memory.
+         */
+        static int get_cardinality ( void ) { return NOMAD::Double::_cardinality; }
+        
+        /// Access to the max number of NOMAD::Double objects in memory.
+        /**
+         \return The max number of NOMAD::Double objects in memory.
+         */
+        static int get_max_cardinality ( void ) { return NOMAD::Double::_max_cardinality; }
 #endif
-
-    /// Constructor #1.
-    explicit Double ( void );
-
-    /// Constructor #2.
-    /**
-       From a \c double.
-       \param v The \c double -- \b IN.
-    */
-    Double ( double v );
-
-    /// Copy constructor.
-    /**
-       \param d The copied object -- \b IN.
-    */
-    Double ( const Double & d );
-
-    /// Destructor.
-    virtual ~Double ( void );
-
-    /// Function \c atof (conversion from a string to a real).
-    /**
-       The value is determined by a string.
-       \param s The string -- \b IN.
-       \return  A boolean equal to \c true if the string was valid.
-    */
-    bool atof ( const std::string & s );
-
-    /// Function \c atof (conversion from a string to a real) with a relative value.
-    /**
-       The value is determined by a string that may begin with \c 'r' to
-       indicate a proportion (relative value).
-       \param s The string -- \b IN.
-       \param relative A boolean indicating if the conversion was relative -- \b OUT.
-       \return A boolean equal to \c true if the string was valid.
-    */
-    bool relative_atof ( const std::string & s , bool & relative );
-
-    /// Reset the Double.
-    void clear ( void ) { _value = 0.0; _defined = false; }
+        
+        /// Constructor #1.
+        explicit Double ( void );
+        
+        /// Constructor #2.
+        /**
+         From a \c double.
+         \param v The \c double -- \b IN.
+         */
+        Double ( double v );
+        
+        /// Copy constructor.
+        /**
+         \param d The copied object -- \b IN.
+         */
+        Double ( const Double & d );
+        
+        /// Destructor.
+        virtual ~Double ( void );
+        
+        /// Function \c atof (conversion from a string to a real).
+        /**
+         The value is determined by a string.
+         \param s The string -- \b IN.
+         \return  A boolean equal to \c true if the string was valid.
+         */
+        bool atof ( const std::string & s );
+        
+        /// Function \c atof (conversion from a string to a real) with a relative value.
+        /**
+         The value is determined by a string that may begin with \c 'r' to
+         indicate a proportion (relative value).
+         \param s The string -- \b IN.
+         \param relative A boolean indicating if the conversion was relative -- \b OUT.
+         \return A boolean equal to \c true if the string was valid.
+         */
+        bool relative_atof ( const std::string & s , bool & relative );
+        
+        /// Reset the Double.
+        void clear ( void ) { _value = 0.0; _defined = false; }
+        
+        /// Reset the Double.
+        void reset ( void ) { clear(); }
+        
+        /// Affectation operator #1.
+        /**
+         \param d The right-hand side object -- \b IN.
+         \return \c *this as the result of the affectation.
+         */
+        Double & operator = ( const Double & d );
+        
+        /// Affectation operator #2.
+        /**
+         \param r The right-hand side \c double -- \b IN.
+         \return \c *this as the result of the affectation.
+         */
+        Double & operator = ( double r );
+        
+        /// Access to the \c double value.
+        /**
+         \return The \c double value.
+         */
+        double value ( void ) const;
+        
+        /// Is the value defined ?
+        /**
+         \return A boolean equal to \c true if the NOMAD::Double is defined.
+         */
+        bool is_defined  ( void ) const { return _defined; }
+        
+        /// Is the value an integer ?
+        /**
+         \return A boolean equal to \c true if the NOMAD::Double is an integer.
+         */
+        bool is_integer ( void ) const;
+        
+        /// Is the value binary ?
+        /**
+         \return A boolean equal to \c true if the NOMAD::Double is in {0,1}.
+         */
+        bool is_binary ( void ) const;
+        
+        /// Sizeof.
+        /**
+         The size of an object in memory.
+         \return An integer value for the size in bytes.
+         */
+        int size_of ( void ) const { return sizeof(_defined) + sizeof(_value); }
+        
+        /// Access to the NOMAD::Double precision.
+        /**
+         \return A \c double for the precision.
+         */
+        static double get_epsilon ( void )  { return Double::_epsilon; }
+        
+        /// Set the NOMAD::Double precision.
+        /**
+         \param eps The precision -- \b IN.
+         */
+        static void set_epsilon ( double eps );
+        
+        /// Access to the undefined value string.
+        /**
+         \return A \c std::string for the undefined value string.
+         */
+        static std::string get_undef_str ( void ) { return Double::_undef_str; }
+        
+        /// Set the NOMAD::Double undefined value string.
+        /**
+         \param undef_str The undefined value string -- \b IN.
+         */
+        static void set_undef_str ( const std::string & undef_str )
+        {
+            NOMAD::Double::_undef_str = undef_str;
+        }
+        
+        /// Access to the infinity string.
+        /**
+         \return A \c std::string for the infinity string.
+         */
+        static std::string get_inf_str ( void ) { return Double::_inf_str; }
+        
+        /// Set the NOMAD::Double infinity string.
+        /**
+         \param inf_str The infinity string -- \b IN.
+         */
+        static void set_inf_str ( const std::string & inf_str )
+        {
+            NOMAD::Double::_inf_str = inf_str;
+        }
+        
+        /// Rounding to int
+        /**
+         \return An integer with the rounding result.
+         */
+        int round ( void ) const;
+        
+        /// Rounding to a Double
+        /**
+         \return A NOMAD::Double with the rounding result.
+         */
+        const Double roundd ( void ) const;
+
+        
+        /// Ceil.
+        /**
+         \return A NOMAD::double with the rounding result.
+         */
+        const Double ceil ( void ) const;
+        
+        /// Floor.
+        /**
+         \return A NOMAD::double with the rounding result.
+         */
+        const Double floor ( void ) const;
+        
+        
+        /// Absolute value.
+        /**
+         \return Another NOMAD::Double equal to max{\c -*this,\c *this}.
+         */
+        const Double abs ( void ) const;
+        
+        /// Square.
+        /**
+         \return Another NOMAD::Double equal to \c *this \c * \c *this.
+         */
+        const Double pow2 ( void ) const;
+        
+        /// Square root.
+        /**
+         \return Another NOMAD::Double equal to \c (*this)^0.5.
+         */
+        const Double sqrt ( void ) const;
+        
+        /// Relative error with another NOMAD::Double.
+        /**
+         \param  x The other real -- \b IN.
+         \return A new object with the relative error value in \c [0;1].
+         */
+        const Double rel_err ( const Double & x ) const;
+        
+        /// Operator \c ++ (prefix position).
+        /**
+         Allows \c ++d;
+         \return The NOMAD::Double plus 1.
+         */
+        Double & operator++ ( void );
+        
+        /// Operator \c ++ (suffix position).
+        /**
+         Allows \c d++;
+         \return A copy of the NOMAD::Double before incrementation.
+         */
+        Double operator++ ( int n );
+        
+        /// Operator \c -- (prefix position).
+        /**
+         Allows \c --d;
+         \return The NOMAD::Double minus 1.
+         */    Double & operator-- ( void );
+        
+        /// Operator \c -- (suffix position).
+        /**
+         Allows \c d--;
+         \return A copy of the NOMAD::Double before decrementation.
+         */    Double operator-- ( int n );
+        
+        /// Operator \c +=.
+        /**
+         Allows \c d \c += \c d1.
+         \param d1 The increment -- \b IN.
+         \return The NOMAD::Double plus \c d1.
+         */
+        const Double & operator += ( const Double & d1 );
+        
+        /// Operator \c -=.
+        /**
+         Allows \c d \c -= \c d1.
+         \param d1 The decrement -- \b IN.
+         \return The NOMAD::Double minus \c d1.
+         */
+        const Double & operator -= ( const Double & d1 );
+        
+        /// Operator \c *=.
+        /**
+         Allows \c d \c *= \c d1.
+         \param d1 The factor -- \b IN.
+         \return The NOMAD::Double times \c d1.
+         */
+        const Double & operator *= ( const Double & d1 );
+        
+        /// Operator \c /=.
+        /**
+         Allows \c d \c /= \c d1. Throws a NOMAD::Exception::Invalid_Value if \c d1==0.
+         \param d1 The denominator -- \b IN.
+         \return The NOMAD::Double divided by \c d1.
+         */
+        const Double & operator /= ( const Double & d1 );
+        
+        /// Comparison <.
+        /**
+         The same as operator \c < but with consideration of undefined values.
+         When comparing \c d1 and \c d2, \c (d1<d2) is equal to \c true for example
+         if \c d1 is defined and if \c d2 is not.
+         \param d The right-hand side of the comparison -- \b IN.
+         \return A boolean equal to \c true if \c *this \c < \c d.
+         */
+        bool comp_with_undef ( const Double & d ) const;
+        
+        /// Projection to the mesh.
+        /**
+         Projection to the mesh of size delta
+         ( \c *this \c = \c ref \c + \c k \c * \c delta ).
+         \param ref    Reference for projection -- \b IN.
+         \param delta  Mesh size parameter -- \b IN.
+         \param lb     Lower bound -- \b IN -- \b optional (default=undefined real.)
+         \param ub     Upper bound -- \b IN -- \b optional (default=undefined real.)
+         */
+        void project_to_mesh ( const Double & ref           ,
+                              const Double & delta         ,
+                              const Double & lb = Double() ,
+                              const Double & ub = Double()   );
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+        
+        /// Display with format.
+        /**
+         \param out    The NOMAD::Display object -- \b IN.
+         \param format The format as in C        -- \b IN.
+         */
+        void display ( const NOMAD::Display & out    ,
+                      const std::string    & format   ) const;
+    };
     
-    /// Reset the Double.
-    void reset ( void ) { clear(); }
-
-    /// Affectation operator #1.
-    /**
-       \param d The right-hand side object -- \b IN.
-       \return \c *this as the result of the affectation.
-    */
-    Double & operator = ( const Double & d );
-
-    /// Affectation operator #2.
-    /**
-       \param r The right-hand side \c double -- \b IN.
-       \return \c *this as the result of the affectation.
-    */
-    Double & operator = ( double r );
-
-    /// Access to the \c double value.
-    /**
-       \return The \c double value.
-    */
-    double value ( void ) const;
-
-    /// Is the value defined ?
-    /**
-       \return A boolean equal to \c true if the NOMAD::Double is defined.
-    */
-    bool is_defined  ( void ) const { return _defined; }
-
-    /// Is the value an integer ?
-    /**
-       \return A boolean equal to \c true if the NOMAD::Double is an integer.
-    */
-    bool is_integer ( void ) const;
-
-    /// Is the value binary ?
-    /**
-       \return A boolean equal to \c true if the NOMAD::Double is in {0,1}.
-    */
-    bool is_binary ( void ) const;
+    /*---------------------------------------------------------------------------*/
     
-    /// Sizeof.
-    /**
-       The size of an object in memory.
-       \return An integer value for the size in bytes.
-    */
-    int size_of ( void ) const { return sizeof(_defined) + sizeof(_value); }
-
-    /// Access to the NOMAD::Double precision.
-    /**
-       \return A \c double for the precision.
-    */
-    static double get_epsilon ( void )  { return Double::_epsilon; }
-
-    /// Set the NOMAD::Double precision.
+    /// Display a NOMAD::Double object.
     /**
-       \param eps The precision -- \b IN.
-    */
-    static void set_epsilon ( double eps );
-
-    /// Access to the undefined value string.
-    /**
-       \return A \c std::string for the undefined value string.
-    */
-    static std::string get_undef_str ( void ) { return Double::_undef_str; }
-
-    /// Set the NOMAD::Double undefined value string.
-    /**
-       \param undef_str The undefined value string -- \b IN.
-    */
-    static void set_undef_str ( const std::string & undef_str )
-    {
-      NOMAD::Double::_undef_str = undef_str;
-    }
-
-    /// Access to the infinity string.
-    /**
-       \return A \c std::string for the infinity string.
-    */
-    static std::string get_inf_str ( void ) { return Double::_inf_str; }
-
-    /// Set the NOMAD::Double infinity string.
-    /**
-       \param inf_str The infinity string -- \b IN.
-    */
-    static void set_inf_str ( const std::string & inf_str )
+     \param out The NOMAD::Display object -- \b IN.
+     \param d   The NOMAD::Double object to be displayed -- \b IN.
+     \return    The NOMAD::Display object.
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
+                                               const Double         & d     )
     {
-      NOMAD::Double::_inf_str = inf_str;
+        d.display ( out );
+        return out;
     }
-
-    /// Rounding.
-    /**
-       \return An integer with the rounding result.
-    */
-    int round ( void ) const;
-	  
-
-	/// Ceil.
-    /**
-       \return A NOMAD::double with the rounding result.
-    */
-    const Double ceil ( void ) const;
-
-	/// Floor.
-    /**
-       \return A NOMAD::double with the rounding result.
-    */
-    const Double floor ( void ) const;
-
-
-    /// Absolute value.
-    /**
-       \return Another NOMAD::Double equal to max{\c -*this,\c *this}.
-    */
-    const Double abs ( void ) const;
-
-    /// Square.
-    /**
-       \return Another NOMAD::Double equal to \c *this \c * \c *this.
-    */
-    const Double pow2 ( void ) const;
-
-    /// Square root.
-    /**
-       \return Another NOMAD::Double equal to \c (*this)^0.5.
-    */
-    const Double sqrt ( void ) const;
     
-    /// Relative error with another NOMAD::Double.
-    /**
-       \param  x The other real -- \b IN.
-       \return A new object with the relative error value in \c [0;1].
-    */
-    const Double rel_err ( const Double & x ) const;
-
-    /// Operator \c ++ (prefix position).
-    /**
-       Allows \c ++d;
-       \return The NOMAD::Double plus 1.
-    */
-    Double & operator++ ( void );
-
-    /// Operator \c ++ (suffix position).
-    /**
-       Allows \c d++;
-       \return A copy of the NOMAD::Double before incrementation.
-    */
-    Double operator++ ( int n );
-
-    /// Operator \c -- (prefix position).
-    /**
-       Allows \c --d;
-       \return The NOMAD::Double minus 1.
-    */    Double & operator-- ( void );
-
-    /// Operator \c -- (suffix position).
-    /**
-       Allows \c d--;
-       \return A copy of the NOMAD::Double before decrementation.
-    */    Double operator-- ( int n );
-
-    /// Operator \c +=.
+    /// Input.
     /**
-       Allows \c d \c += \c d1.
-       \param d1 The increment -- \b IN.
-       \return The NOMAD::Double plus \c d1.
-    */
-    const Double & operator += ( const Double & d1 );
-
-    /// Operator \c -=.
-    /**
-       Allows \c d \c -= \c d1.
-       \param d1 The decrement -- \b IN.
-       \return The NOMAD::Double minus \c d1.
-    */
-    const Double & operator -= ( const Double & d1 );
-
-    /// Operator \c *=.
-    /**
-       Allows \c d \c *= \c d1.
-       \param d1 The factor -- \b IN.
-       \return The NOMAD::Double times \c d1.
-    */
-    const Double & operator *= ( const Double & d1 );
-
-    /// Operator \c /=.
-    /**
-       Allows \c d \c /= \c d1. Throws a NOMAD::Exception::Invalid_Value if \c d1==0.
-       \param d1 The denominator -- \b IN.
-       \return The NOMAD::Double divided by \c d1.
-    */
-    const Double & operator /= ( const Double & d1 );
-
-    /// Comparison <.
-    /**
-       The same as operator \c < but with consideration of undefined values.
-       When comparing \c d1 and \c d2, \c (d1<d2) is equal to \c true for example
-       if \c d1 is defined and if \c d2 is not.
-       \param d The right-hand side of the comparison -- \b IN.
-       \return A boolean equal to \c true if \c *this \c < \c d.
-    */
-    bool comp_with_undef ( const Double & d ) const;
-
-    /// Projection to the mesh.
-    /**
-       Projection to the mesh of size delta
-       ( \c *this \c = \c ref \c + \c k \c * \c delta ).
-       \param ref    Reference for projection -- \b IN.
-       \param delta  Mesh size parameter -- \b IN.
-       \param lb     Lower bound -- \b IN -- \b optional (default=undefined real.)
-       \param ub     Upper bound -- \b IN -- \b optional (default=undefined real.)
-    */
-    void project_to_mesh ( const Double & ref           ,
-			   const Double & delta         ,
-			   const Double & lb = Double() ,
-			   const Double & ub = Double()   );
-
-    /// Display.
-    /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    void display ( const NOMAD::Display & out ) const;
-
-    /// Display with format.
-    /**
-       \param out    The NOMAD::Display object -- \b IN.
-       \param format The format as in C        -- \b IN.
-    */
-    void display ( const NOMAD::Display & out    ,
-		   const std::string    & format   ) const;
-  };
-
-  /*---------------------------------------------------------------------------*/
-
-  /// Display a NOMAD::Double object.
-  /**
-     \param out The NOMAD::Display object -- \b IN.
-     \param d   The NOMAD::Double object to be displayed -- \b IN.
-     \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
-  					      const Double         & d     )
-  {
-    d.display ( out );
-    return out;
-  }
-  
-  /// Input.
-  /**
      - Allows the input of NOMAD::Double objects with operator \c >>.
      - Can read undefined values (parameter \c UNDEF_STR with default \c "-".)
      - Example:
@@ -410,128 +423,155 @@ namespace NOMAD {
      \param in A \c std::istream object (can be a file) -- \b IN/OUT.
      \param d  The NOMAD::Double object to be read -- \b OUT.
      \return The modified \c std::istream object.
-  */
-  std::istream & operator >> ( std::istream & in , Double & d );
-
-  /// Inverse operator.
-  /**
+     */
+    std::istream & operator >> ( std::istream & in , Double & d );
+    
+    /// Inverse operator.
+    /**
      Allows operations such as \c d \c = \c -d.
      \param d The NOMAD::Double to be inversed -- \b IN.
      \return A new NOMAD::Double as the result of the operation.
-  */
-  inline const Double operator - ( const Double & d )
-  {
-    return NOMAD::Double (-d.value());
-  }
-
-  /// Operator \c + for two NOMAD::Double objects.
-  /**
+     */
+    inline const Double operator - ( const Double & d )
+    {
+        return NOMAD::Double (-d.value());
+    }
+    
+    /// Operator \c + for two NOMAD::Double objects.
+    /**
      Allows operations such as \c d \c = \c d1 \c + \c d2.
      \param d1 The first NOMAD::Double -- \b IN.
      \param d2 The second NOMAD::Double -- \b IN.
      \return   A third NOMAD::Double as the result of the operation.
-  */
-  inline const Double operator + ( const Double & d1 , const Double & d2 )
-  {
-    return NOMAD::Double ( d1.value() + d2.value() );
-  }
-
-  /// Operator \c - for two NOMAD::Double objects.
-  /**
+     */
+    inline const Double operator + ( const Double & d1 , const Double & d2 )
+    {
+        return NOMAD::Double ( d1.value() + d2.value() );
+    }
+    
+    /// Operator \c - for two NOMAD::Double objects.
+    /**
      Allows operations such as \c d \c = \c d1 \c - \c d2.
      \param d1 The first NOMAD::Double -- \b IN.
      \param d2 The second NOMAD::Double -- \b IN.
      \return   A third NOMAD::Double as the result of the operation.
-  */
-  inline const Double operator - ( const Double & d1 , const Double & d2 )
-  {
-    return NOMAD::Double (d1.value() - d2.value());
-  }
-
-  /// Operator \c * for two NOMAD::Double objects.
-  /**
+     */
+    inline const Double operator - ( const Double & d1 , const Double & d2 )
+    {
+        return NOMAD::Double (d1.value() - d2.value());
+    }
+    
+    /// Operator \c * for two NOMAD::Double objects.
+    /**
      Allows operations such as \c d \c = \c d1 \c * \c d2.
      \param d1 The first NOMAD::Double -- \b IN.
      \param d2 The second NOMAD::Double -- \b IN.
      \return   A third NOMAD::Double as the result of the operation.
-  */
-  inline const Double operator * ( const Double & d1 , const Double & d2 )
-  {
-    return NOMAD::Double ( d1.value() * d2.value() );
-  }
-
-  /// Operator \c / for two NOMAD::Double objects.
-  /**
+     */
+    inline const Double operator * ( const Double & d1 , const Double & d2 )
+    {
+        return NOMAD::Double ( d1.value() * d2.value() );
+    }
+    
+    /// Operator \c / for two NOMAD::Double objects.
+    /**
      Allows operations such as \c d \c = \c d1 \c / \c d2.
      \param d1 The first NOMAD::Double -- \b IN.
      \param d2 The second NOMAD::Double -- \b IN.
      \return   A third NOMAD::Double as the result of the operation.
-  */
-  const Double operator / ( const Double & d1 , const Double & d2 );
-
-  /// Comparison operator \c ==.
-  /**
+     */
+    const Double operator / ( const Double & d1 , const Double & d2 );
+    
+    /// Comparison operator \c ==.
+    /**
      Allows the comparison \c d1 \c == \c d2.
      \param d1 The first NOMAD::Double -- \b IN.
      \param d2 The second NOMAD::Double -- \b IN.
      \return A boolean equal to true if \c d1 \c == \c d2.
-  */
-  inline bool operator == ( const Double & d1 , const Double & d2 )
-  {
-    return fabs ( d1.value() - d2.value() ) < NOMAD::Double::get_epsilon();
-  }
-
-  /// Comparison operator \c !=.
-  /**
+     */
+    inline bool operator == ( const Double & d1 , const Double & d2 )
+    {
+        return fabs ( d1.value() - d2.value() ) < NOMAD::Double::get_epsilon();
+    }
+    
+    /// Comparison operator \c !=.
+    /**
      Allows the comparison \c d1 \c != \c d2.
      \param d1 The first NOMAD::Double -- \b IN.
      \param d2 The second NOMAD::Double -- \b IN.
      \return A boolean equal to true if \c d1 \c != \c d2.
-  */
-  inline bool operator != ( const Double & d1 , const Double & d2 ) { return !(d1==d2); }
-
-  /// Comparison operator \c <.
-  /**
+     */
+    inline bool operator != ( const Double & d1 , const Double & d2 )
+    {
+        return !(d1==d2);
+    }
+    
+    /// Comparison operator \c <.
+    /**
      Allows the comparison \c d1 \c < \c d2.
      \param d1 The first NOMAD::Double -- \b IN.
      \param d2 The second NOMAD::Double -- \b IN.
      \return A boolean equal to true if \c d1 \c < \c d2.
-  */
-  inline bool operator < ( const Double & d1 , const Double & d2 )
-  {
-    return d1.value() < d2.value() - NOMAD::Double::get_epsilon();
-  }
-
-  /// Comparison operator \c >.
-  /**
+     */
+    inline bool operator < ( const Double & d1 , const Double & d2 )
+    {
+        return d1.value() < d2.value() - NOMAD::Double::get_epsilon();
+    }
+    
+    /// Comparison operator \c >.
+    /**
      Allows the comparison \c d1 \c > \c d2.
      \param d1 The first NOMAD::Double -- \b IN.
      \param d2 The second NOMAD::Double -- \b IN.
      \return A boolean equal to true if \c d1 \c > \c d2.
-  */
-  inline bool operator > ( const Double & d1 , const Double & d2 )
-  {
-    return d1.value() > d2.value() + NOMAD::Double::get_epsilon();
-  }
-
-  /// Comparison operator \c <=.
-  /**
+     */
+    inline bool operator > ( const Double & d1 , const Double & d2 )
+    {
+        return d1.value() > d2.value() + NOMAD::Double::get_epsilon();
+    }
+    
+    /// Comparison operator \c <=.
+    /**
      Allows the comparison \c d1 \c <= \c d2.
      \param d1 The first NOMAD::Double -- \b IN.
      \param d2 The second NOMAD::Double -- \b IN.
      \return A boolean equal to true if \c d1 \c <= \c d2.
-  */
-  inline bool operator <= ( const Double & d1 , const Double & d2 ) { return !(d1>d2); }
-
-  /// Comparison operator \c >=.
-  /**
+     */
+    inline bool operator <= ( const Double & d1 , const Double & d2 ) { return !(d1>d2); }
+    
+    /// Comparison operator \c >=.
+    /**
      Allows the comparison \c d1 \c >= \c d2.
      \param d1 The first NOMAD::Double -- \b IN.
      \param d2 The second NOMAD::Double -- \b IN.
      \return A boolean equal to true if \c d1 \c >= \c d2.
-  */  inline bool operator >= ( const Double & d1 , const Double & d2 )
-  {
-    return !(d1<d2);
-  }
+     */
+    inline bool operator >= ( const Double & d1 , const Double & d2 )
+    {
+        return !(d1<d2);
+    }
+    
+    /// Largest of two values \c >=.
+    /**
+     Return the largest of two NOMAD::Double
+     \param d1 The first NOMAD::Double -- \b IN.
+     \param d2 The second NOMAD::Double -- \b IN.
+     \return A NOMAD::Double equal to the max(d1,d2)
+     */
+    inline Double max (const Double d1 , const Double d2 ) { return (d1>d2)?d1:d2; }
+    
+    /// Smallest of two values \c >=.
+    /**
+     Return the largest of two NOMAD::Double
+     \param d1 The first NOMAD::Double -- \b IN.
+     \param d2 The second NOMAD::Double -- \b IN.
+     \return A NOMAD::Double equal to the min(d1,d2)
+     */
+    inline Double min ( const Double d1 , const Double d2 ) { return (d1<d2)?d1:d2; }
+    
+
+    
+    
+    
 }
 #endif
diff --git a/src/Eval_Point.cpp b/src/Eval_Point.cpp
index fa193fe..f862e13 100644
--- a/src/Eval_Point.cpp
+++ b/src/Eval_Point.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -48,6 +55,7 @@
 /*   static members initialization   */
 /*-----------------------------------*/
 int NOMAD::Eval_Point::_current_tag = 0;
+
 int NOMAD::Eval_Point::_current_bbe = 0;
 int NOMAD::Eval_Point::_current_sgte_bbe = 0;
 /*---------------------------------------------------------------------*/
@@ -128,7 +136,8 @@ _bb_outputs       ( x.get_bb_outputs()                )
     for ( int i = 0 ; i < n ; ++i )
         (*this)[i] = x.get_coord(i);
     
-    switch ( x.get_eval_status() ) {
+    switch ( x.get_eval_status() )
+    {
         case 0:
             _eval_status = NOMAD::EVAL_FAIL;
             break;
@@ -249,7 +258,9 @@ void NOMAD::Eval_Point::set_direction ( const NOMAD::Direction * dir )
 
 void NOMAD::Eval_Point::set_poll_center ( const NOMAD::Eval_Point * pc )
 {
+    
     _poll_center=pc;
+    
 }
 
 /*-------------------------------------------------------*/
@@ -257,7 +268,8 @@ void NOMAD::Eval_Point::set_poll_center ( const NOMAD::Eval_Point * pc )
 /*-------------------------------------------------------*/
 void NOMAD::Eval_Point::set_signature ( NOMAD::Signature * s )
 {
-    if ( !s ) {
+    if ( !s )
+    {
         _signature = NULL;
         return;
     }
@@ -356,7 +368,8 @@ bool NOMAD::Eval_Point::treat_periodic_variables ( NOMAD::Direction *& new_dir )
 /*--------------------------------------------------*/
 bool NOMAD::Eval_Point::check ( int m , NOMAD::check_failed_type & cf ) const
 {
-    if ( size() <= 0 || !_signature || m != _bb_outputs.size() ) {
+    if ( size() <= 0 || !_signature || m != _bb_outputs.size() )
+    {
         std::string err = "Eval_Point::check() could not procede";
         if ( !_signature )
             err += " (no signature)";
@@ -404,19 +417,22 @@ bool NOMAD::Eval_Point::check ( int m , NOMAD::check_failed_type & cf ) const
         
         // check the integer/categorical/binary variables:
         iti = input_types[i];
-        if ( iti == NOMAD::BINARY && !xi.is_binary() ) {
+        if ( iti == NOMAD::BINARY && !xi.is_binary() )
+        {
             cf = NOMAD::BIN_FAIL;
             return false;
         }
         if ( ( iti == NOMAD::INTEGER || iti == NOMAD::CATEGORICAL )
-            && !xi.is_integer() ) {
+            && !xi.is_integer() )
+        {
             cf = ( iti == NOMAD::INTEGER ) ? NOMAD::INT_FAIL : NOMAD::CAT_FAIL;
             return false;
         }
         
         // check the fixed-variables:
         const NOMAD::Double & fvi = fv[i];
-        if ( fvi.is_defined() && fvi != xi ) {
+        if ( fvi.is_defined() && fvi != xi )
+        {
             cf = NOMAD::FIX_VAR_FAIL;
             return false;
         }
@@ -438,7 +454,8 @@ void NOMAD::Eval_Point::display_tag ( const NOMAD::Display & out ) const
 /*--------------------------------------------------*/
 void NOMAD::Eval_Point::display_eval( const NOMAD::Display & out , bool in_block ) const
 {
-    if ( in_block ) {
+    if ( in_block )
+    {
         
         std::ostringstream oss;
         oss << "#" << _tag;
@@ -455,7 +472,9 @@ void NOMAD::Eval_Point::display_eval( const NOMAD::Display & out , bool in_block
             out << "f    = " << _f << std::endl;
         out.close_block();
     }
-    else {
+    else
+    {
+        
         display_tag ( out );
         out << " x=( ";
         NOMAD::Point::display ( out , " " , 2  , NOMAD::Point::get_display_limit() );
@@ -498,8 +517,10 @@ bool NOMAD::Eval_Point::operator < ( const NOMAD::Eval_Point & x ) const
 bool NOMAD::Eval_Point::check_nan ( void ) const
 {
     int m = _bb_outputs.size();
-    for ( int i = 0 ; i < m ; ++i ) {
-        if ( _bb_outputs[i].is_defined() ) {
+    for ( int i = 0 ; i < m ; ++i ) 
+    {
+        if ( _bb_outputs[i].is_defined() ) 
+        {
 #ifdef WINDOWS
             if ( isnan ( _bb_outputs[i].value() ) )
                 return true;
diff --git a/src/Eval_Point.hpp b/src/Eval_Point.hpp
index 6418403..050efca 100644
--- a/src/Eval_Point.hpp
+++ b/src/Eval_Point.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -64,16 +71,16 @@ namespace NOMAD {
         
     private:
         
-        static int         _current_tag; ///< Current tag for all NOMAD::Eval_Point objects.
-        int                _tag;         ///< Unique tag.
+        static int         _current_tag;        ///< Current tag for all NOMAD::Eval_Point objects.
+        int                _tag;                ///< Unique tag.
         
-        static int			_current_bbe;		///< Current bbe for all NOMAD::Eval_Point objects
-        static int			_current_sgte_bbe;  ///< Current sgte_bbe for all NOMAD::Eval_Point objects  .
-        int					_bbe;				/// Recorded bbe for current NOMAD::Eval_Point object
-        int					_sgte_bbe;		    /// Recorded sgte_bbe for current NOMAD::Eval_Point object
-        int					_real_time;			/// Recorded time for current NOMAD::Eval_Point object
+        static int         _current_bbe;        ///< Current bbe for all NOMAD::Eval_Point objects
+        static int         _current_sgte_bbe;   ///< Current sgte_bbe for all NOMAD::Eval_Point objects  .
+        int                _bbe;                /// Recorded bbe for current NOMAD::Eval_Point object
+        int                _sgte_bbe;           /// Recorded sgte_bbe for current NOMAD::Eval_Point object
+        int                _real_time;           /// Recorded time for current NOMAD::Eval_Point object
         
-        NOMAD::Signature * _signature;   ///< Signature of the point.
+        NOMAD::Signature * _signature;          ///< Signature of the point.
         
         /**
          \c f is explicitely computed by a NOMAD::Evaluator object
@@ -301,7 +308,6 @@ namespace NOMAD {
          */
         const NOMAD::Eval_Point * get_poll_center ( void ) const { return _poll_center ; }
         
-        
         /// Check if the point has been generated during the current run.
         /**
          \return A boolean equal to \c true if the point has been
@@ -552,7 +558,7 @@ namespace NOMAD {
         
         /// Reset the tags and bbes
         /**
-         */		
+         */        
         static void reset_tags_and_bbes ( void ) {_current_tag = 0;_current_bbe = 0;_current_sgte_bbe = 0;}
         
 #ifdef MODEL_STATS
diff --git a/src/Evaluator.cpp b/src/Evaluator.cpp
index f0f8ca9..278b662 100644
--- a/src/Evaluator.cpp
+++ b/src/Evaluator.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -56,774 +63,785 @@ bool NOMAD::Evaluator::_force_quit = false;
 /*    . _bb_exe includes the blackbox path                         */
 /*-----------------------------------------------------------------*/
 NOMAD::Evaluator::Evaluator ( const NOMAD::Parameters & p )
-: _p					( p     ) ,
-_is_multi_obj		( false ) ,
-_is_model_evaluator	( false )
+: _p                    ( p     ) ,
+_is_multi_obj           ( false ) ,
+_is_model_evaluator     ( false )
 {
-	NOMAD::Evaluator::_force_quit = false;
-	
-	if ( _p.get_bb_exe().empty() )
-		return;
-	
-	// _bbe_exe and _bb_nbo construction:
-	std::list<std::string>::const_iterator it = _p.get_bb_exe().begin();
-	_bb_exe.push_back(*it);
-	_bb_nbo.push_back(1);
-	++it;
-	
-	std::list<std::string>::const_iterator end = _p.get_bb_exe().end();
-	while ( it != end )
+    NOMAD::Evaluator::_force_quit = false;
+    
+    if ( _p.get_bb_exe().empty() )
+        return;
+    
+    // _bbe_exe and _bb_nbo construction:
+    std::list<std::string>::const_iterator it = _p.get_bb_exe().begin();
+    _bb_exe.push_back(*it);
+    _bb_nbo.push_back(1);
+    ++it;
+    
+    std::list<std::string>::const_iterator end = _p.get_bb_exe().end();
+    while ( it != end )
     {
-		if ( *it != _bb_exe[_bb_exe.size()-1] )
+        if ( *it != _bb_exe[_bb_exe.size()-1] )
         {
-			_bb_exe.push_back(*it);
-			_bb_nbo.push_back(1);
-		}
-		else
-			++_bb_nbo[_bb_exe.size()-1];
-		++it;
-	}
-	
-	// we check that _bb_exe contains unique names and we add the problem path:
-	size_t k , l , n = _bb_exe.size() , nm1 = n-1;
-	for ( k = 0 ; k < nm1 ; ++k )
+            _bb_exe.push_back(*it);
+            _bb_nbo.push_back(1);
+        }
+        else
+            ++_bb_nbo[_bb_exe.size()-1];
+        ++it;
+    }
+    
+    // we check that _bb_exe contains unique names and we add the problem path:
+    size_t k , l , n = _bb_exe.size() , nm1 = n-1;
+    for ( k = 0 ; k < nm1 ; ++k )
     {
-		for ( l = k+1 ; l < n ; ++l )
-			if ( _bb_exe[k] == _bb_exe[l] )
-				throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
-										"problem with executable names" );
-	}
-	
-	// construction of _sgte_exe:
-	bool        has_sgte_exe = _p.has_sgte_exe();
-	std::string err;
-	if ( has_sgte_exe )
+        for ( l = k+1 ; l < n ; ++l )
+            if ( _bb_exe[k] == _bb_exe[l] )
+                throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
+                                        "problem with executable names" );
+    }
+    
+    // construction of _sgte_exe:
+    bool        has_sgte_exe = _p.has_sgte_exe();
+    std::string err;
+    if ( has_sgte_exe )
     {
-		for ( k = 0 ; k < n ; ++k )
+        for ( k = 0 ; k < n ; ++k )
         {
-			
-			_sgte_exe.push_back ( _p.get_sgte_exe(_bb_exe[k]) );
-			
-			if ( _sgte_exe[_sgte_exe.size()-1].empty() )
+            
+            _sgte_exe.push_back ( _p.get_sgte_exe(_bb_exe[k]) );
+            
+            if ( _sgte_exe[_sgte_exe.size()-1].empty() )
             {
-				err = "blackbox executable \'" + _bb_exe[k] + "\' has no surrogate";
-				throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err );
-			}
-		}
-	}
-	
-	// process blakc-box executables (check and add problem path):
-	for ( k = 0 ; k < n ; ++k )
+                err = "blackbox executable \'" + _bb_exe[k] + "\' has no surrogate";
+                throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err );
+            }
+        }
+    }
+    
+    // process blakc-box executables (check and add problem path):
+    for ( k = 0 ; k < n ; ++k )
     {
-		process_bb_exe_name ( _bb_exe[k] );
-		if ( has_sgte_exe )
-			process_bb_exe_name ( _sgte_exe[k] );
-	}
-	
-	// blackbox names and indexes display:
+        process_bb_exe_name ( _bb_exe[k] );
+        if ( has_sgte_exe )
+            process_bb_exe_name ( _sgte_exe[k] );
+    }
+    
+    // blackbox names and indexes display:
 #ifdef DEBUG
 #ifdef USE_MPI
-	int rank;
-	MPI_Comm_rank ( MPI_COMM_WORLD, &rank);
-	if ( rank == 0 )
-    {
+    int rank;
+    MPI_Comm_rank ( MPI_COMM_WORLD, &rank);
+    if ( rank == 0 )
 #else
-		{
+    {
 #endif
-			const NOMAD::Display & out = _p.out();
-			if ( !_bb_exe.empty() )
-            {
-				out << std::endl
-				<< NOMAD::open_block ( "blackbox executables" );
-				for ( k = 0 ; k < n ; ++k )
-                {
-					out << NOMAD::open_block ( "bb #" + NOMAD::itos(k) )
-					<< _bb_exe[k] << std::endl
-					<< "number of outputs=" << _bb_nbo[k] << std::endl
-					<< NOMAD::close_block();
-				}
-				out.close_block();
-			}
-			if ( !_sgte_exe.empty() )
+        const NOMAD::Display & out = _p.out();
+        if ( !_bb_exe.empty() )
+        {
+            out << std::endl
+            << NOMAD::open_block ( "blackbox executables" );
+            for ( k = 0 ; k < n ; ++k )
             {
-				out << std::endl
-				<< NOMAD::open_block ( "surrogate executables" );
-				for ( k = 0 ; k < n ; ++k )
-					out << "sgte #" << static_cast<int>(k) << ": "
-					<< _sgte_exe[k] << std::endl;
-				out.close_block();
-			}
-		}
+                out << NOMAD::open_block ( "bb #" + NOMAD::itos(k) )
+                << _bb_exe[k] << std::endl
+                << "number of outputs=" << _bb_nbo[k] << std::endl
+                << NOMAD::close_block();
+            }
+            out.close_block();
+        }
+        if ( !_sgte_exe.empty() )
+        {
+            out << std::endl
+            << NOMAD::open_block ( "surrogate executables" );
+            for ( k = 0 ; k < n ; ++k )
+                out << "sgte #" << static_cast<int>(k) << ": "
+                << _sgte_exe[k] << std::endl;
+            out.close_block();
+        }
+    }
 #endif
+}
+
+/*----------------------------------------------------------------*/
+/*            process a blackbox executable name (private)        */
+/*----------------------------------------------------------------*/
+void NOMAD::Evaluator::process_bb_exe_name ( std::string & bb_exe ) const
+{
+    std::string            err;
+    std::list<std::string> bb_exe_words;
+    
+    NOMAD::get_words ( bb_exe , bb_exe_words );
+    
+    if ( bb_exe_words.empty() )
+    {
+        err = "problem with executable \'" + bb_exe + "\'";
+        throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err );
     }
-	
-	/*----------------------------------------------------------------*/
-	/*            process a blackbox executable name (private)        */
-	/*----------------------------------------------------------------*/
-	void NOMAD::Evaluator::process_bb_exe_name ( std::string & bb_exe ) const
-	{
-		std::string            err;
-		std::list<std::string> bb_exe_words;
-		
-		NOMAD::get_words ( bb_exe , bb_exe_words );
-		
-		if ( bb_exe_words.empty() )
+    
+    std::string problem_dir = _p.get_problem_dir();
+    
+    // bb_exe is composed of several words (it is a command):
+    if ( bb_exe_words.size() > 1 )
+    {
+        
+        bb_exe.clear();
+        
+        std::list<std::string>::const_iterator it  = bb_exe_words.begin() ,
+        end = bb_exe_words.end();
+        while (true)
         {
-			err = "problem with executable \'" + bb_exe + "\'";
-			throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err );
-		}
-		
-		std::string problem_dir = _p.get_problem_dir();
-		
-		// bb_exe is composed of several words (it is a command):
-		if ( bb_exe_words.size() > 1 )
+            
+            if ( (*it)[0] != '$' )
+            {
+                bb_exe += "\"" + problem_dir;
+                bb_exe += *it + "\"";
+            }
+            else
+                bb_exe += it->substr ( 1 , it->size()-1 );
+            
+            ++it;
+            
+            if ( it == end )
+                break;
+            
+            bb_exe += " ";
+        }
+    }
+    
+    // bb_exe is just composed of one name (it is an executable):
+    else
+    {
+        
+        if ( bb_exe[0] != '$' )
+            bb_exe = problem_dir + bb_exe;
+        else
+            bb_exe = bb_exe.substr ( 1 , bb_exe.size()-1 );
+        if ( !NOMAD::check_exe_file ( bb_exe ) )
         {
-			
-			bb_exe.clear();
-			
-			std::list<std::string>::const_iterator it  = bb_exe_words.begin() ,
-			end = bb_exe_words.end();
-			while (true)
+            err = "\'" + bb_exe + "\' is not a valid executable file";
+            throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err );
+        }
+        if ( bb_exe[0] != '$' )
+            bb_exe = "\"" + bb_exe + "\"";
+    }
+}
+
+/*-----------------------------------------------------------------------*/
+/*  check the constraints to decide if an evaluation have to be stopped  */
+/*-----------------------------------------------------------------------*/
+/*   . checked when h > h_max or if a 'EB' constraint is violated        */
+/*   . private method                                                    */
+/*-----------------------------------------------------------------------*/
+bool NOMAD::Evaluator::interrupt_evaluations ( const NOMAD::Eval_Point & x     ,
+                                              const NOMAD::Double     & h_max   ) const
+{
+    int                                        nbo     = _p.get_bb_nb_outputs();
+    const NOMAD::Point                       & bbo     = x.get_bb_outputs();
+    const std::vector<NOMAD::bb_output_type> & bbot    = _p.get_bb_output_type();
+    NOMAD::Double                              h       = 0.0;
+    bool                                       check_h = h_max.is_defined();
+    
+    for ( int i = 0 ; i < nbo ; ++i )
+    {
+        
+        if ( bbo[i].is_defined()                                 &&
+            ( bbot[i] == NOMAD::EB || bbot[i] == NOMAD::PEB_E ) &&
+            bbo[i] > _p.get_h_min() )
+            return true;
+        
+        if ( check_h && bbo[i].is_defined() &&
+            (bbot[i] == NOMAD::FILTER ||
+             bbot[i] == NOMAD::PB     ||
+             bbot[i] == NOMAD::PEB_P     ) )
+        {
+            
+            if ( bbo[i] > _p.get_h_min() )
             {
-				
-				if ( (*it)[0] != '$' )
+                switch ( _p.get_h_norm() )
                 {
-					bb_exe += "\"" + problem_dir;
-					bb_exe += *it + "\"";
-				}
-				else
-					bb_exe += it->substr ( 1 , it->size()-1 );
-				
-				++it;
-				
-				if ( it == end )
-					break;
-				
-				bb_exe += " ";
-			}
-		}
-		
-		// bb_exe is just composed of one name (it is an executable):
-		else {
-			if ( bb_exe[0] != '$' )
-				bb_exe = problem_dir + bb_exe;
-			else
-				bb_exe = bb_exe.substr ( 1 , bb_exe.size()-1 );
-			if ( !NOMAD::check_exe_file ( bb_exe ) )
-            {
-				err = "\'" + bb_exe + "\' is not a valid executable file";
-				throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err );
-			}
-			if ( bb_exe[0] != '$' )
-				bb_exe = "\"" + bb_exe + "\"";
-		}
-	}
-	
-	/*-----------------------------------------------------------------------*/
-	/*  check the constraints to decide if an evaluation have to be stopped  */
-	/*-----------------------------------------------------------------------*/
-	/*   . checked when h > h_max or if a 'EB' constraint is violated        */
-	/*   . private method                                                    */
-	/*-----------------------------------------------------------------------*/
-	bool NOMAD::Evaluator::interrupt_evaluations ( const NOMAD::Eval_Point & x     ,
-												  const NOMAD::Double     & h_max   ) const
-	{
-		int                                        nbo     = _p.get_bb_nb_outputs();
-		const NOMAD::Point                       & bbo     = x.get_bb_outputs();
-		const std::vector<NOMAD::bb_output_type> & bbot    = _p.get_bb_output_type();
-		NOMAD::Double                              h       = 0.0;
-		bool                                       check_h = h_max.is_defined();
-		
-		for ( int i = 0 ; i < nbo ; ++i ) {
-			
-			if ( bbo[i].is_defined()                                 &&
-				( bbot[i] == NOMAD::EB || bbot[i] == NOMAD::PEB_E ) &&
-				bbo[i] > _p.get_h_min() )
-				return true;
-			
-			if ( check_h && bbo[i].is_defined() &&
-				(bbot[i] == NOMAD::FILTER ||
-				 bbot[i] == NOMAD::PB     ||
-				 bbot[i] == NOMAD::PEB_P     ) ) {
-					
-					if ( bbo[i] > _p.get_h_min() ) {
-						switch ( _p.get_h_norm() ) {
-							case NOMAD::L1:
-								h += bbo[i];
-								break;
-							case NOMAD::L2:
-								h += bbo[i].pow2();
-								break;
-							case NOMAD::LINF:
-								if ( bbo[i] > h )
-									h = bbo[i];
-								break;
-						}
-						
-						if ( _p.get_h_norm() == NOMAD::L2 ) {
-							if ( h > h_max.pow2() )
-								return true;
-						}
-						else if ( h > h_max )
-							return true;
-					}
-				}
-		}
-		return false;
-	}
-	
-	/*--------------------------------------------------------*/
-	/*    compute f(x) from the blackbox outputs of a point   */
-	/*      (define a Multi_Obj_Evaluator to treat more than  */
-	/*       one objective)                                   */
-	/*--------------------------------------------------------*/
-	void NOMAD::Evaluator::compute_f ( NOMAD::Eval_Point & x ) const
-	{
-		if ( x.get_bb_outputs().size() != _p.get_bb_nb_outputs() ) {
-			std::ostringstream err;
-			err << "Evaluator::compute_f(x): x has a wrong number of blackbox outputs ("
-			<< x.get_bb_outputs().size() << " != "
-			<< _p.get_bb_nb_outputs() << ")";
-			throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err.str() );
-		}
-		
-		x.set_f ( x.get_bb_outputs()[*(_p.get_index_obj().begin())] );
-	}
-	
-	/*--------------------------------------------------------*/
-	/*    compute h(x) from the blackbox outputs of a point   */
-	/*    set also the flag 'EB_ok' of the point              */
-	/*--------------------------------------------------------*/
-	void NOMAD::Evaluator::compute_h ( NOMAD::Eval_Point & x ) const
-	{
-		if ( x.get_bb_outputs().size() != _p.get_bb_nb_outputs() )
+                    case NOMAD::L1:
+                        h += bbo[i];
+                        break;
+                    case NOMAD::L2:
+                        h += bbo[i].pow2();
+                        break;
+                    case NOMAD::LINF:
+                        if ( bbo[i] > h )
+                            h = bbo[i];
+                        break;
+                }
+                
+                if ( _p.get_h_norm() == NOMAD::L2 )
+                {
+                    if ( h > h_max.pow2() )
+                        return true;
+                }
+                else if ( h > h_max )
+                    return true;
+            }
+        }
+    }
+    return false;
+}
+
+/*--------------------------------------------------------*/
+/*    compute f(x) from the blackbox outputs of a point   */
+/*      (define a Multi_Obj_Evaluator to treat more than  */
+/*       one objective)                                   */
+/*--------------------------------------------------------*/
+void NOMAD::Evaluator::compute_f ( NOMAD::Eval_Point & x ) const
+{
+    if ( x.get_bb_outputs().size() != _p.get_bb_nb_outputs() )
+    {
+        std::ostringstream err;
+        err << "Evaluator::compute_f(x): x has a wrong number of blackbox outputs ("
+        << x.get_bb_outputs().size() << " != "
+        << _p.get_bb_nb_outputs() << ")";
+        throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err.str() );
+    }
+    
+    x.set_f ( x.get_bb_outputs()[*(_p.get_index_obj().begin())] );
+}
+
+/*--------------------------------------------------------*/
+/*    compute h(x) from the blackbox outputs of a point   */
+/*    set also the flag 'EB_ok' of the point              */
+/*--------------------------------------------------------*/
+void NOMAD::Evaluator::compute_h ( NOMAD::Eval_Point & x ) const
+{
+    if ( x.get_bb_outputs().size() != _p.get_bb_nb_outputs() )
+    {
+        std::ostringstream err;
+        err << "Evaluator::compute_h(x): x has a wrong number of blackbox outputs ("
+        << x.get_bb_outputs().size() << " != "
+        << _p.get_bb_nb_outputs() << ")";
+        throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err.str() );
+    }
+    
+    int                                        nbo  = _p.get_bb_nb_outputs();
+    const std::vector<NOMAD::bb_output_type> & bbot = _p.get_bb_output_type();
+    const NOMAD::Point                       & bbo  = x.get_bb_outputs();
+    NOMAD::Double                              h    = 0.0 , bboi;
+    
+    x.set_EB_ok ( true );
+    
+    for ( int i = 0 ; i < nbo ; ++i )
+    {
+        
+        bboi = bbo[i];
+        
+        if ( bboi.is_defined()                                  &&
+            (bbot[i] == NOMAD::EB || bbot[i] == NOMAD::PEB_E ) &&
+            bboi > _p.get_h_min() )
         {
-			std::ostringstream err;
-			err << "Evaluator::compute_h(x): x has a wrong number of blackbox outputs ("
-			<< x.get_bb_outputs().size() << " != "
-			<< _p.get_bb_nb_outputs() << ")";
-			throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err.str() );
-		}
-		
-		int                                        nbo  = _p.get_bb_nb_outputs();
-		const std::vector<NOMAD::bb_output_type> & bbot = _p.get_bb_output_type();
-		const NOMAD::Point                       & bbo  = x.get_bb_outputs();
-		NOMAD::Double                              h    = 0.0 , bboi;
-		
-		x.set_EB_ok ( true );
-		
-		for ( int i = 0 ; i < nbo ; ++i )
+            h.clear();
+            x.set_h     ( h     );
+            x.set_EB_ok ( false );
+            return;
+        }
+        
+        if ( bboi.is_defined() &&
+            ( bbot[i] == NOMAD::FILTER ||
+             bbot[i] == NOMAD::PB     ||
+             bbot[i] == NOMAD::PEB_P     ) )
         {
-			
-			bboi = bbo[i];
-			
-			if ( bboi.is_defined()                                  &&
-				(bbot[i] == NOMAD::EB || bbot[i] == NOMAD::PEB_E ) &&
-				bboi > _p.get_h_min() )
-            {
-				h.clear();
-				x.set_h     ( h     );
-				x.set_EB_ok ( false );
-				return;
-			}
-			
-			if ( bboi.is_defined() &&
-				( bbot[i] == NOMAD::FILTER ||
-				 bbot[i] == NOMAD::PB     ||
-				 bbot[i] == NOMAD::PEB_P     ) )
+            if ( bboi > _p.get_h_min() )
             {
-					if ( bboi > _p.get_h_min() )
-                    {
-						switch ( _p.get_h_norm() )
-                        {
-							case NOMAD::L1:
-								h += bboi;
-								break;
-							case NOMAD::L2:
-								h += bboi * bboi;
-								break;
-							case NOMAD::LINF:
-								if ( bboi > h )
-									h = bboi;
-								break;
-						}
-					}
-				}
-		}
-		
-		if ( _p.get_h_norm() == NOMAD::L2 )
-			h = h.sqrt();
-		
-		x.set_h ( h );
-	}
-	
-	/*-------------------------------------------------------------------*/
-	/*      . evaluate the black boxes at a given Eval_Point             */
-	/*      . the function returns true if the evaluation did not fail   */
-	/*      . set count_eval=true to count the evaluation                */
-	/*        (unless the output value CNT_EVAL is defined and set to 1  */
-	/*         by the blackbox)                                          */
-	/*-------------------------------------------------------------------*/
-	bool NOMAD::Evaluator::eval_x ( NOMAD::Eval_Point	& x          ,
-								   const NOMAD::Double	& h_max      ,
-								   bool					& count_eval   ) const
-	{
-		count_eval = false;
-		
-		if ( _bb_exe.empty() || !x.is_complete() )
-			throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
-									"Evaluator: no BB_EXE is defined (blackbox executable names)" );
-		
-		bool sgte = x.get_eval_type() == NOMAD::SGTE;
-		if ( sgte && _sgte_exe.empty() )
-			throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
-									"Evaluator: no SGTE_EXE is defined (surrogate executable names)" );
-		
-		int         pid     = NOMAD::get_pid();
-		int         seed    = _p.get_seed();
-		std::string tmp_dir = _p.get_tmp_dir();
-		
-		std::ostringstream oss;
-		oss << "." << seed;
-		if ( pid != seed )
-			oss << "." << pid;
-		oss << "." << x.get_tag() << ".";
-		const std::string & sint = oss.str();
-		
-		// for the parallel version: no need to include the process rank in the names
-		// as the point tags are unique for all the processes: each process creates
-		// its own points and uses Eval_Point::set_tag()
-		
-		// blackbox input file writing:
-		// ----------------------------
-		std::string bb_input_file_name =
-		tmp_dir + NOMAD::BLACKBOX_INPUT_FILE_PREFIX
-		+ sint + NOMAD::BLACKBOX_INPUT_FILE_EXT;
-		
-		std::string bb_output_file_name =
-		tmp_dir + NOMAD::BLACKBOX_OUTPUT_FILE_PREFIX
-		+ sint + NOMAD::BLACKBOX_OUTPUT_FILE_EXT;
-		
-		std::ofstream fout ( bb_input_file_name.c_str() );
-		if ( fout.fail() )
-        {
-  			std::string err = "could not create file blackbox input file " + bb_input_file_name + ". \n \n #### Please check that write permission are granted for the working directory. #### ";
-			throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err );
-		}
-		
-		// include seed:
-		if ( _p.get_bb_input_include_seed() )
-			fout << seed << " ";
-		
-		// include tag:
-		if ( _p.get_bb_input_include_tag() )
-			fout << x.get_tag() << " ";
-		
-		fout.setf ( std::ios::fixed );
-		fout.precision ( NOMAD::DISPLAY_PRECISION_BB );
-		x.Point::display ( fout , " " , -1 , -1 );
-		fout << std::endl;
-		
-		fout.close();
-		
-		if ( fout.fail() )
-			return false;
-		
-		x.set_eval_status ( NOMAD::EVAL_IN_PROGRESS );
-		
-		std::string   cmd , bb_exe;
-		std::ifstream fin;
-		bool          failed;
-		NOMAD::Double d;
-		int           j , nbbok;
-		int           ibbo = 0;
-		
-		// system call to evaluate the blackbox:
-		// -------------------------------------
-		size_t bn = _bb_exe.size();
-		for ( size_t k = 0 ; k < bn ; ++k )
-		{
-			
-			// executable name:
-			bb_exe = ( sgte ) ? _sgte_exe[k] : _bb_exe[k];
-			
-			// system command:
-			cmd = bb_exe + " " + bb_input_file_name;
-			
-			// redirection ? if no, the blackbox has to create
-			// the output file 'bb_output_file_name':
-			if ( _p.get_bb_redirection() )
-				cmd += " > " + bb_output_file_name;
-			
+                switch ( _p.get_h_norm() )
+                {
+                    case NOMAD::L1:
+                        h += bboi;
+                        break;
+                    case NOMAD::L2:
+                        h += bboi * bboi;
+                        break;
+                    case NOMAD::LINF:
+                        if ( bboi > h )
+                            h = bboi;
+                        break;
+                }
+            }
+        }
+    }
+    
+    if ( _p.get_h_norm() == NOMAD::L2 )
+        h = h.sqrt();
+    
+    x.set_h ( h );
+}
+
+/*-------------------------------------------------------------------*/
+/*      . evaluate the black boxes at a given Eval_Point             */
+/*      . the function returns true if the evaluation did not fail   */
+/*      . set count_eval=true to count the evaluation                */
+/*        (unless the output value CNT_EVAL is defined and set to 1  */
+/*         by the blackbox)                                          */
+/*-------------------------------------------------------------------*/
+bool NOMAD::Evaluator::eval_x ( NOMAD::Eval_Point    & x          ,
+                               const NOMAD::Double   & h_max      ,
+                               bool                  & count_eval   ) const
+{
+    count_eval = false;
+    
+    if ( _bb_exe.empty() || !x.is_complete() )
+        throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
+                                "Evaluator: no BB_EXE is defined (blackbox executable names)" );
+    
+    bool sgte = x.get_eval_type() == NOMAD::SGTE;
+    if ( sgte && _sgte_exe.empty() )
+        throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
+                                "Evaluator: no SGTE_EXE is defined (surrogate executable names)" );
+    
+    int         pid     = NOMAD::get_pid();
+    int         seed    = _p.get_seed();
+    std::string tmp_dir = _p.get_tmp_dir();
+    
+    std::ostringstream oss;
+    oss << "." << seed;
+    if ( pid != seed )
+        oss << "." << pid;
+    oss << "." << x.get_tag() << ".";
+    const std::string & sint = oss.str();
+    
+    // for the parallel version: no need to include the process rank in the names
+    // as the point tags are unique for all the processes: each process creates
+    // its own points and uses Eval_Point::set_tag()
+    
+    // blackbox input file writing:
+    // ----------------------------
+    std::string bb_input_file_name =
+    tmp_dir + NOMAD::BLACKBOX_INPUT_FILE_PREFIX
+    + sint + NOMAD::BLACKBOX_INPUT_FILE_EXT;
+    
+    std::string bb_output_file_name =
+    tmp_dir + NOMAD::BLACKBOX_OUTPUT_FILE_PREFIX
+    + sint + NOMAD::BLACKBOX_OUTPUT_FILE_EXT;
+    
+    std::ofstream fout ( bb_input_file_name.c_str() );
+    if ( fout.fail() )
+    {
+        std::string err = "could not create file blackbox input file " + bb_input_file_name + ". \n \n #### Please check that write permission are granted for the working directory. #### ";
+        throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err );
+    }
+    
+    // include seed:
+    if ( _p.get_bb_input_include_seed() )
+        fout << seed << " ";
+    
+    // include tag:
+    if ( _p.get_bb_input_include_tag() )
+        fout << x.get_tag() << " ";
+    
+    fout.setf ( std::ios::fixed );
+    fout.precision ( NOMAD::DISPLAY_PRECISION_BB );
+    x.Point::display ( fout , " " , -1 , -1 );
+    fout << std::endl;
+    
+    fout.close();
+    
+    if ( fout.fail() )
+        return false;
+    
+    x.set_eval_status ( NOMAD::EVAL_IN_PROGRESS );
+    
+    std::string   cmd , bb_exe;
+    std::ifstream fin;
+    bool          failed;
+    NOMAD::Double d;
+    int           j , nbbok;
+    int           ibbo = 0;
+    
+    // system call to evaluate the blackbox:
+    // -------------------------------------
+    size_t bn = _bb_exe.size();
+    for ( size_t k = 0 ; k < bn ; ++k )
+    {
+        
+        // executable name:
+        bb_exe = ( sgte ) ? _sgte_exe[k] : _bb_exe[k];
+        
+        // system command:
+        cmd = bb_exe + " " + bb_input_file_name;
+        
+        // redirection ? if no, the blackbox has to create
+        // the output file 'bb_output_file_name':
+        if ( _p.get_bb_redirection() )
+            cmd += " > " + bb_output_file_name;
+        
 #ifdef DEBUG
 #ifdef USE_MPI
-			int rank;
-			MPI_Comm_rank ( MPI_COMM_WORLD, &rank);
-			_p.out() << "command(rank=" << rank
-			<< ") = \'" << cmd << "\'" << std::endl;
+        int rank;
+        MPI_Comm_rank ( MPI_COMM_WORLD, &rank);
+        _p.out() << "command(rank=" << rank
+        << ") = \'" << cmd << "\'" << std::endl;
 #else
-			_p.out() << "command=\'" << cmd << "\'" << std::endl;
+        _p.out() << "command=\'" << cmd << "\'" << std::endl;
 #endif
 #endif
-			
-			// the evaluation:
-			{
-				int signal = system ( cmd.c_str() );
-				
-				// catch the ctrl-c signal:
-				if ( signal == SIGINT )
-					raise ( SIGINT );
-				
-				// other evaluation error:
-				failed = ( signal != 0 );
-				count_eval = true;
-			}
-			
-			// the evaluation failed (we stop the evaluations):
-			if ( failed )
-			{
-				x.set_eval_status ( NOMAD::EVAL_FAIL );
-				break;
-			}
-			
-			// reading of the blackbox output file:
-			// ------------------------------------
-			else
+        
+        // the evaluation:
+        {
+            int signal = system ( cmd.c_str() );
+            
+            // catch the ctrl-c signal:
+            if ( signal == SIGINT )
+                raise ( SIGINT );
+            
+            // other evaluation error:
+            failed = ( signal != 0 );
+            count_eval = true;
+        }
+        
+        // the evaluation failed (we stop the evaluations):
+        if ( failed )
+        {
+            x.set_eval_status ( NOMAD::EVAL_FAIL );
+            break;
+        }
+        
+        // reading of the blackbox output file:
+        // ------------------------------------
+        else
+        {
+            
+            // bb-output file reading:
+            fin.open ( bb_output_file_name.c_str() );
+            
+            failed          = false;
+            bool is_defined = true;
+            bool is_inf     = false;
+            
+            // loop on the number of outputs for this blackbox:
+            nbbok = _bb_nbo[k];
+            for ( j = 0 ; j < nbbok ; ++j )
+            {
+                
+                fin >> d;
+                
+                if ( !d.is_defined() )
+                {
+                    is_defined = false;
+                    break;
+                }
+                
+                if ( fin.fail() )
+                {
+                    failed = true;
+                    break;
+                }
+                
+                if ( d.value() >= NOMAD::INF )
+                {
+                    is_inf = true;
+                    break;
+                }
+                
+                x.set_bb_output ( ibbo++ , d );
+            }
+            
+            fin.close();
+            
+            // the evaluation failed:
+            if ( failed || !is_defined || is_inf )
+            {
+                x.set_eval_status ( NOMAD::EVAL_FAIL );
+                break;
+            }
+            
+            // stop the evaluations if h > h_max or if a 'EB' constraint is violated:
+            if ( k < _bb_exe.size() - 1 && interrupt_evaluations ( x , h_max ) )
+                break;
+        }
+    }
+    
+    if ( x.get_eval_status() == NOMAD::EVAL_IN_PROGRESS )
+        x.set_eval_status ( NOMAD::EVAL_OK );
+    
+    // delete the blackbox input and output files:
+    // -------------------------------------------
+    remove ( bb_input_file_name.c_str () );
+    remove ( bb_output_file_name.c_str() );
+    
+    // check the CNT_EVAL output:
+    // --------------------------
+    int index_cnt_eval = _p.get_index_cnt_eval();
+    if ( index_cnt_eval >= 0 && x.get_bb_outputs()[index_cnt_eval] == 0.0 )
+        count_eval = false;
+    
+    return x.is_eval_ok();
+    
+    
+}
+
+/*-------------------------------------------------------------------*/
+/*      . evaluate the black boxes at a list of given Eval_Points  */
+/*-------------------------------------------------------------------*/
+bool NOMAD::Evaluator::eval_x ( std::list<NOMAD::Eval_Point *>    & list_eval,
+                               const NOMAD::Double                & h_max ,
+                               std::list<bool>                    & list_count_eval) const
+{
+    
+    std::list<NOMAD::Eval_Point *>::iterator it;
+    std::list<NOMAD::Eval_Point *>::iterator it_begin=list_eval.begin();
+    std::list<NOMAD::Eval_Point *>::iterator it_end=list_eval.end();
+    std::list<bool>::iterator it_count=list_count_eval.begin();
+    
+    if ( list_eval.size() !=list_count_eval.size())
+        throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
+                                "Evaluator: inconsistent size of list" );
+    
+    if ( _bb_exe.empty())
+        throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
+                                "Evaluator: no BB_EXE is defined (blackbox executable names)" );
+    
+    bool sgte = ((*it_begin)->get_eval_type() == NOMAD::SGTE);
+    if ( sgte && _sgte_exe.empty() )
+        throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
+                                "Evaluator: no SGTE_EXE is defined (surrogate executable names)" );
+    
+    
+    
+    int         pid     = NOMAD::get_pid();
+    int         seed    = _p.get_seed();
+    std::string tmp_dir = _p.get_tmp_dir();
+    
+    std::ostringstream oss;
+    oss << "." << seed;
+    if ( pid != seed )
+        oss << "." << pid;
+    
+    for (it=it_begin;it!=it_end;++it)
+    {
+        if (!(*it)->is_complete() )
+            throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
+                                    "Evaluator: points provided for evaluations are incomplete " );
+        
+    }
+    // add the tag of the first point
+    oss << "." << (*it_begin)->get_tag();
+    
+    oss << "." ;
+    const std::string & sint = oss.str();
+    
+    // for the parallel version: no need to include the process rank in the names
+    // as the point tags are unique for all the processes: each process creates
+    // its own points and uses Eval_Point::set_tag()
+    
+    // blackbox input file writing:
+    // ----------------------------
+    std::string bb_input_file_name =
+    tmp_dir + NOMAD::BLACKBOX_INPUT_FILE_PREFIX
+    + sint + NOMAD::BLACKBOX_INPUT_FILE_EXT;
+    
+    std::string bb_output_file_name =
+    tmp_dir + NOMAD::BLACKBOX_OUTPUT_FILE_PREFIX
+    + sint + NOMAD::BLACKBOX_OUTPUT_FILE_EXT;
+    
+    std::ofstream fout ( bb_input_file_name.c_str() );
+    if ( fout.fail() )
+    {
+        std::string err = "could not create file blackbox input file " + bb_input_file_name + ". \n \n #### Please check that write permission are granted for the working directory. #### ";
+        throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err );
+    }
+    
+    
+    for (it=it_begin;it!=it_end;++it)
+    {
+        // include seed:
+        if ( _p.get_bb_input_include_seed() )
+            fout << seed << " ";
+        
+        // include tag:
+        if ( _p.get_bb_input_include_tag() )
+            fout << (*it)->get_tag() << " ";
+        
+        fout.setf ( std::ios::fixed );
+        fout.precision ( NOMAD::DISPLAY_PRECISION_BB );
+        (*it)->Point::display ( fout , " " , -1 , -1 );
+        fout << std::endl;
+    }
+    
+    fout.close();
+    
+    if ( fout.fail() )
+        return false;
+    
+    for (it=it_begin;it!=it_end;++it)
+        (*it)->set_eval_status ( NOMAD::EVAL_IN_PROGRESS );
+    
+    
+    std::string   cmd , bb_exe;
+    std::ifstream fin;
+    bool          failed;
+    NOMAD::Double d;
+    int           j , nbbok;
+    int           ibbo = 0;
+    
+    // system call to evaluate the blackboxes:
+    // -------------------------------------
+    size_t bn = _bb_exe.size();
+    for ( size_t k = 0 ; k < bn ; ++k )
+    {
+        
+        // executable name:
+        bb_exe = ( sgte ) ? _sgte_exe[k] : _bb_exe[k];
+        
+        // system command:
+        cmd = bb_exe + " " + bb_input_file_name;
+        
+        // redirection ? if no, the blackbox has to create
+        // the output file 'bb_output_file_name':
+        if ( _p.get_bb_redirection() )
+            cmd += " > " + bb_output_file_name;
+        
+        
+        // the evaluation:
+        {
+            int signal = system ( cmd.c_str() );
+            
+            // catch the ctrl-c signal:
+            if ( signal == SIGINT )
+                raise ( SIGINT );
+            
+            // other evaluation error:
+            failed = ( signal != 0 );
+        }
+        
+        // the evaluation failed (we stop the evaluations):
+        if ( failed )
+        {
+            it_count=list_count_eval.begin();
+            for (it=it_begin;it!=it_end;++it,++it_count)
             {
-				
-				// bb-output file reading:
-				fin.open ( bb_output_file_name.c_str() );
-				
-				failed          = false;
-				bool is_defined = true;
-				bool is_inf     = false;
-				
-				// loop on the number of outputs for this blackbox:
-				nbbok = _bb_nbo[k];
-				for ( j = 0 ; j < nbbok ; ++j )
+                (*it)->set_eval_status ( NOMAD::EVAL_FAIL );
+                (*it_count)=true;    //
+            }
+            break;
+        }
+        
+        // reading of the blackbox output file:
+        // ------------------------------------
+        else
+        {
+            
+            // bb-output file reading:
+            fin.open ( bb_output_file_name.c_str() );
+            
+            string s;
+            bool is_defined,is_inf;
+            
+            bool list_all_failed_eval=true;
+            bool list_all_interrupt=true;
+            
+            // loop on the points
+            it_count=list_count_eval.begin();
+            for (it=it_begin;it!=it_end;++it,++it_count)
+            {
+                failed        = false;
+                is_defined    = true;
+                is_inf        = false;
+                
+                // loop on the number of outputs for this blackbox:
+                nbbok = _bb_nbo[k];
+                ibbo=0;
+                for ( j = 0 ; j < nbbok ; ++j )
                 {
-					
-					fin >> d;
-					
-					if ( !d.is_defined() )
+                    
+                    fin >> s;
+                    
+                    if ( fin.fail() )
                     {
-						is_defined = false;
-						break;
-					}
-					
-					if ( fin.fail() )
+                        failed = true;
+                        break;
+                    }
+                    
+                    toupper(s);
+                    if (s.compare("REJECT")==0)
                     {
-						failed = true;
-						break;
-					}
-					
-					if ( d.value() >= NOMAD::INF )
+                        *it_count=false;   // Rejected points are not counted
+                        (*it)->set_eval_status(NOMAD::EVAL_USER_REJECT);
+                        break;
+                    }
+                    else
                     {
-						is_inf = true;
-						break;
-					}
-					
-					x.set_bb_output ( ibbo++ , d );
-				}
-				
-				fin.close();
-				
-				// the evaluation failed:
-				if ( failed || !is_defined || is_inf )
+                        d.atof(s);
+                        (*it_count)=true;
+                    }
+                    //
+                    
+                    if  (s.compare("FAIL")==0)
+                    {
+                        failed = true;
+                        break;
+                    }
+                    
+                    
+                    if ( !d.is_defined() )
+                    {
+                        is_defined = false;
+                        break;
+                    }
+                    
+                    
+                    if ( d.value() >= NOMAD::INF )
+                    {
+                        is_inf = true;
+                        break;
+                    }
+                    
+                    (*it)->set_bb_output ( ibbo++ , d );
+                }
+                
+                
+                // the evaluation failed:
+                if ( failed || !is_defined || is_inf )
                 {
-					x.set_eval_status ( NOMAD::EVAL_FAIL );
-					break;
-				}
-				
-				// stop the evaluations if h > h_max or if a 'EB' constraint is violated:
-				if ( k < _bb_exe.size() - 1 && interrupt_evaluations ( x , h_max ) )
-					break;
-			}
-		}
-		
-		if ( x.get_eval_status() == NOMAD::EVAL_IN_PROGRESS )
-			x.set_eval_status ( NOMAD::EVAL_OK );
-		
-		// delete the blackbox input and output files:
-		// -------------------------------------------
-		remove ( bb_input_file_name.c_str () );
-		remove ( bb_output_file_name.c_str() );
-		
-		// check the CNT_EVAL output:
-		// --------------------------
-		int index_cnt_eval = _p.get_index_cnt_eval();
-		if ( index_cnt_eval >= 0 && x.get_bb_outputs()[index_cnt_eval] == 0.0 )
-			count_eval = false;
-		
-		return x.is_eval_ok();
-            
+                    (*it)->set_eval_status ( NOMAD::EVAL_FAIL );
+                    
+                }
+                else
+                    list_all_failed_eval=false;
                 
-	}
-
-
-	/*-------------------------------------------------------------------*/
-	/*      . evaluate the black boxes at a list of given Eval_Points  */
-	/*-------------------------------------------------------------------*/
-	bool NOMAD::Evaluator::eval_x ( std::list<NOMAD::Eval_Point *>	& list_eval,
-								   const NOMAD::Double				& h_max ,
-								   std::list<bool>					& list_count_eval) const
-	{
-		
-		std::list<NOMAD::Eval_Point *>::iterator it;
-		std::list<NOMAD::Eval_Point *>::iterator it_begin=list_eval.begin();
-		std::list<NOMAD::Eval_Point *>::iterator it_end=list_eval.end();
-		std::list<bool>::iterator it_count=list_count_eval.begin();
-		
-		if ( list_eval.size() !=list_count_eval.size())
-			throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
-									"Evaluator: inconsistent size of list" );
-		
-		if ( _bb_exe.empty())
-			throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
-									"Evaluator: no BB_EXE is defined (blackbox executable names)" );
-		
-		bool sgte = ((*it_begin)->get_eval_type() == NOMAD::SGTE);
-		if ( sgte && _sgte_exe.empty() )
-			throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
-									"Evaluator: no SGTE_EXE is defined (surrogate executable names)" );
-		
-		
-		
-		int         pid     = NOMAD::get_pid();
-		int         seed    = _p.get_seed();
-		std::string tmp_dir = _p.get_tmp_dir();
-		
-		std::ostringstream oss;
-		oss << "." << seed;
-		if ( pid != seed )
-			oss << "." << pid;
-		
-		for (it=it_begin;it!=it_end;++it)
-		{
-			if (!(*it)->is_complete() )
-				throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ ,
-										"Evaluator: points provided for evaluations are incomplete " );
+                
+                // stop the evaluations if h > h_max or if a 'EB' constraint is violated:
+                if ( !( k < _bb_exe.size() - 1 && interrupt_evaluations ( *(*it) , h_max ) && list_all_interrupt ))
+                    list_all_interrupt=false;
+            }
             
-		}
-		// add the tag of the first point
-		oss << "." << (*it_begin)->get_tag();
-		
-		oss << "." ;
-		const std::string & sint = oss.str();
-		
-		// for the parallel version: no need to include the process rank in the names
-		// as the point tags are unique for all the processes: each process creates
-		// its own points and uses Eval_Point::set_tag()
-		
-		// blackbox input file writing:
-		// ----------------------------
-		std::string bb_input_file_name =
-		tmp_dir + NOMAD::BLACKBOX_INPUT_FILE_PREFIX
-		+ sint + NOMAD::BLACKBOX_INPUT_FILE_EXT;
-		
-		std::string bb_output_file_name =
-		tmp_dir + NOMAD::BLACKBOX_OUTPUT_FILE_PREFIX
-		+ sint + NOMAD::BLACKBOX_OUTPUT_FILE_EXT;
-		
-		std::ofstream fout ( bb_input_file_name.c_str() );
-		if ( fout.fail() ) {
-            std::string err = "could not create file blackbox input file " + bb_input_file_name + ". \n \n #### Please check that write permission are granted for the working directory. #### ";
-            throw NOMAD::Exception ( "Evaluator.cpp" , __LINE__ , err );
-		}
-        
-		
-		for (it=it_begin;it!=it_end;++it)
-		{
-			// include seed:
-			if ( _p.get_bb_input_include_seed() )
-				fout << seed << " ";
+            fin.close();
             
-			// include tag:
-			if ( _p.get_bb_input_include_tag() )
-				fout << (*it)->get_tag() << " ";
-			
-			fout.setf ( std::ios::fixed );
-			fout.precision ( NOMAD::DISPLAY_PRECISION_BB );
-			(*it)->Point::display ( fout , " " , -1 , -1 );
-			fout << std::endl;
-		}
-		
-		fout.close();
-		
-		if ( fout.fail() )
-			return false;
-		
-		for (it=it_begin;it!=it_end;++it)
-			(*it)->set_eval_status ( NOMAD::EVAL_IN_PROGRESS );
-		
-		
-		std::string   cmd , bb_exe;
-		std::ifstream fin;
-		bool          failed;
-		NOMAD::Double d;
-		int           j , nbbok;
-		int           ibbo = 0;
-		
-		// system call to evaluate the blackboxes:
-		// -------------------------------------
-		size_t bn = _bb_exe.size();
-		for ( size_t k = 0 ; k < bn ; ++k )
-		{
-			
-			// executable name:
-			bb_exe = ( sgte ) ? _sgte_exe[k] : _bb_exe[k];
-			
-			// system command:
-			cmd = bb_exe + " " + bb_input_file_name;
-			
-			// redirection ? if no, the blackbox has to create
-			// the output file 'bb_output_file_name':
-			if ( _p.get_bb_redirection() )
-				cmd += " > " + bb_output_file_name;
-			
-			
-			// the evaluation:
-			{
-				int signal = system ( cmd.c_str() );
-				
-				// catch the ctrl-c signal:
-				if ( signal == SIGINT )
-					raise ( SIGINT );
-				
-				// other evaluation error:
-				failed = ( signal != 0 );
-			}
-			
-			// the evaluation failed (we stop the evaluations):
-			if ( failed )
-			{
-				it_count=list_count_eval.begin();
-				for (it=it_begin;it!=it_end;++it,++it_count)
-				{
-					(*it)->set_eval_status ( NOMAD::EVAL_FAIL );
-					(*it_count)=true;    //
-				}
-				break;
-			}
-			
-			// reading of the blackbox output file:
-			// ------------------------------------
-			else
-			{
-				
-				// bb-output file reading:
-				fin.open ( bb_output_file_name.c_str() );
-				
-				string s;
-				bool is_defined,is_inf;
-				
-				bool list_all_failed_eval=true;
-				bool list_all_interrupt=true;
-				
-				// loop on the points
-				it_count=list_count_eval.begin();
-				for (it=it_begin;it!=it_end;++it,++it_count)
-				{
-					failed		= false;
-					is_defined	= true;
-					is_inf		= false;
-					
-					// loop on the number of outputs for this blackbox:
-					nbbok = _bb_nbo[k];
-					ibbo=0;
-					for ( j = 0 ; j < nbbok ; ++j )
-					{
-						fin >> s;
-						
-						if ( fin.fail() )
-						{
-							failed = true;
-							break;
-						}
-						
-						toupper(s);
-						if (s.compare("REJECT")==0)
-						{
-							*it_count=false;   // Rejected points are not counted
-							(*it)->set_eval_status(NOMAD::EVAL_USER_REJECT);
-							break;
-						}
-						else
-						{
-							d.atof(s);
-							(*it_count)=true;
-						}
-						//
-						
-						if  (s.compare("FAIL")==0)
-						{
-							failed = true;
-							break;
-						}
-						
-						
-						if ( !d.is_defined() )
-						{
-							is_defined = false;
-							break;
-						}
-						
-						
-						if ( d.value() >= NOMAD::INF ) {
-							is_inf = true;
-							break;
-						}
-						
-						(*it)->set_bb_output ( ibbo++ , d );
-					}
-					
-					
-					// the evaluation failed:
-					if ( failed || !is_defined || is_inf )
-					{
-						(*it)->set_eval_status ( NOMAD::EVAL_FAIL );
-						
-					} else
-						list_all_failed_eval=false;
-					
-					
-					// stop the evaluations if h > h_max or if a 'EB' constraint is violated:
-					if ( !( k < _bb_exe.size() - 1 && interrupt_evaluations ( *(*it) , h_max ) && list_all_interrupt ))
-						list_all_interrupt=false;
-				}
-				
-				fin.close();
-				if (list_all_failed_eval || list_all_interrupt)
-					break;
-				
-			}
-		}
-		
-		
-		// delete the blackbox input and output files:
-		// -------------------------------------------
-		remove ( bb_input_file_name.c_str () );
-		remove ( bb_output_file_name.c_str() );
-		
-		bool at_least_one_eval_ok=false;
-		int index_cnt_eval = _p.get_index_cnt_eval();
-		
-		
-		// update eval status and check that at least one was ok
-		it_count=list_count_eval.begin();
-		for (it=it_begin;it!=it_end;++it,++it_count)
-		{
-			if ( (*it)->get_eval_status() == NOMAD::EVAL_IN_PROGRESS )
-				(*it)->set_eval_status ( NOMAD::EVAL_OK );
-			
-			if (!at_least_one_eval_ok && (*it)->is_eval_ok())
-				at_least_one_eval_ok=true;
-			
-			// count_eval from bb_outputs:
-			// --------------------------
-			if ( index_cnt_eval >= 0 && (*it)->get_bb_outputs()[index_cnt_eval]==0)
-				*it_count=false;
-		}
-		
-		return at_least_one_eval_ok;
-	}
+            if (list_all_failed_eval || list_all_interrupt)
+                break;
+            
+        }
+    }
+    
+    
+    // delete the blackbox input and output files:
+    // -------------------------------------------
+    remove ( bb_input_file_name.c_str () );
+    remove ( bb_output_file_name.c_str() );
+    
+    bool at_least_one_eval_ok=false;
+    int index_cnt_eval = _p.get_index_cnt_eval();
+    
+    
+    // update eval status and check that at least one was ok
+    it_count=list_count_eval.begin();
+    for (it=it_begin;it!=it_end;++it,++it_count)
+    {
+        if ( (*it)->get_eval_status() == NOMAD::EVAL_IN_PROGRESS )
+            (*it)->set_eval_status ( NOMAD::EVAL_OK );
+        
+        if (!at_least_one_eval_ok && (*it)->is_eval_ok())
+            at_least_one_eval_ok=true;
+        
+        // count_eval from bb_outputs:
+        // --------------------------
+        if ( index_cnt_eval >= 0 && (*it)->get_bb_outputs()[index_cnt_eval]==0)
+            *it_count=false;
+    }
+    
+    return at_least_one_eval_ok;
+}
diff --git a/src/Evaluator.hpp b/src/Evaluator.hpp
index 80119df..03d52a8 100644
--- a/src/Evaluator.hpp
+++ b/src/Evaluator.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -49,235 +56,237 @@
 #include <list>
 
 namespace NOMAD {
-	
-	// forward declarations:
-	class Barrier;
-	class Pareto_Front;
-	class Evaluator_Control;
-	
-	/// Evaluation of blackbox functions.
-	/**
+    
+    // forward declarations:
+    class Barrier;
+    class Pareto_Front;
+    class Evaluator_Control;
+    
+    /// Evaluation of blackbox functions.
+    /**
      This class allows the evaluation of one trial point.
-	 */
-	class Evaluator : private NOMAD::Uncopyable {
-		
-	protected:
-		
-		/// Parameters.
-		const NOMAD::Parameters & _p;
-		
-		/// Multi-objective flag.
-		/**
-		 Identifies if a NOMAD::Evaluator object refers to
-		 a NOMAD::Multi_Obj_Evaluator for more than one
-		 objective function.
-		 */
-		bool _is_multi_obj;
-
-		/// Model flag.
-		/**
-		 Identifies if a NOMAD::Evaluator object refers to
-		 a NOMAD::***_Model_Evaluator
-		 */
-		bool _is_model_evaluator;
-		
-	private:
-		
-		/// Blackbox executable names.
-		/**
-		 - Not the same as Parameters::_bb_exe.
-		 - NOMAD::Evaluator::_bb_exe is constructed from
+     */
+    class Evaluator : private NOMAD::Uncopyable {
+        
+    protected:
+        
+        /// Parameters.
+        const NOMAD::Parameters & _p;
+        
+        /// Multi-objective flag.
+        /**
+         Identifies if a NOMAD::Evaluator object refers to
+         a NOMAD::Multi_Obj_Evaluator for more than one
+         objective function.
+         */
+        bool _is_multi_obj;
+        
+        /// Model flag.
+        /**
+         Identifies if a NOMAD::Evaluator object refers to
+         a NOMAD::***_Model_Evaluator
+         */
+        bool _is_model_evaluator;
+        
+    private:
+        
+        /// Blackbox executable names.
+        /**
+         - Not the same as Parameters::_bb_exe.
+         - NOMAD::Evaluator::_bb_exe is constructed from
          NOMAD::Parameters::_bb_exe.
-		 */
-		std::vector<std::string> _bb_exe;
-		
-		std::vector<std::string> _sgte_exe;  ///< Surrogate executable names.
-		
-		/// Number of outputs for each blackbox executable.
-		std::vector<int> _bb_nbo;
-		
-		static bool _force_quit; ///< Flag equal to \c true if ctrl-c is pressed.
-		
-		/// Check the constraints to decide if the evaluations have to be stopped.
-		/**
-		 \param x     Point at which the constraints are checked -- \b IN.
-		 \param h_max Maximal feasibility value \c h_max         -- \b IN.
-		 \return A boolean equal to \c true if
-		 the evaluations have to be stopped.
-		 */
-		bool interrupt_evaluations ( const NOMAD::Eval_Point & x     ,
-									const NOMAD::Double     & h_max   ) const;
-		
-		/// Process a blackbox executable name.
-		/**
-		 \param bb_exe Executable name -- \b IN/OUT.
-		 */
-		void process_bb_exe_name ( std::string & bb_exe ) const;
-		
-	public:
-		
-		/// Constructor.
-		/**
-		 \param p Parameters -- \b IN.
-		 */
-		Evaluator ( const NOMAD::Parameters & p );
-		
-		/// Destructor.
-		virtual ~Evaluator ( void ) {}
-		
-		/// Force quit (called by pressing ctrl-c).
-		static void force_quit ( void )
+         */
+        std::vector<std::string> _bb_exe;
+        
+        std::vector<std::string> _sgte_exe;  ///< Surrogate executable names.
+        
+        /// Number of outputs for each blackbox executable.
+        std::vector<int> _bb_nbo;
+        
+        static bool _force_quit; ///< Flag equal to \c true if ctrl-c is pressed.
+        
+        /// Check the constraints to decide if the evaluations have to be stopped.
+        /**
+         \param x     Point at which the constraints are checked -- \b IN.
+         \param h_max Maximal feasibility value \c h_max         -- \b IN.
+         \return A boolean equal to \c true if
+         the evaluations have to be stopped.
+         */
+        bool interrupt_evaluations ( const NOMAD::Eval_Point & x     ,
+                                    const NOMAD::Double     & h_max   ) const;
+        
+        /// Process a blackbox executable name.
+        /**
+         \param bb_exe Executable name -- \b IN/OUT.
+         */
+        void process_bb_exe_name ( std::string & bb_exe ) const;
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p Parameters -- \b IN.
+         */
+        Evaluator ( const NOMAD::Parameters & p );
+        
+        /// Destructor.
+        virtual ~Evaluator ( void ) {}
+        
+        /// Force quit (called by pressing ctrl-c).
+        static void force_quit ( void )
         {
             NOMAD::Evaluator::_force_quit = true;
         }
-		
-		/// Access to the \c force_quit flag.
-		/**
-		 \return The \c force_quit flag.
-		 */
-		static bool get_force_quit ( void )
+        
+        /// Access to the \c force_quit flag.
+        /**
+         \return The \c force_quit flag.
+         */
+        static bool get_force_quit ( void )
         {
             return NOMAD::Evaluator::_force_quit;
         }
-		
-		/// Access to the multi-objective flag.
-		/**
-		 \return The multi-objective flag.
-		 */
-		bool is_multi_obj ( void ) const
+        
+        /// Access to the multi-objective flag.
+        /**
+         \return The multi-objective flag.
+         */
+        bool is_multi_obj ( void ) const
         {
             return _is_multi_obj;
         }
-
-		/// Access to the model evaluator flag.
-		/**
-		 \return The model evaluator flag.
-		 */
-		virtual bool is_model_evaluator ( void ) const
+        
+        /// Access to the model evaluator flag.
+        /**
+         \return The model evaluator flag.
+         */
+        virtual bool is_model_evaluator ( void ) const
         {
             return _is_model_evaluator;
         }
-		
-		/// User pre-processing of a list of points.
-		/**
-		 - This virtual method is called before the evaluation of a list
+        
+        /// User pre-processing of a list of points.
+        /**
+         - This virtual method is called before the evaluation of a list
          of points.
-		 - It allows the user to pre-process the points to be evaluated.
-		 \param pts The list of points -- \b IN/OUT.
-		 */
-		virtual void list_of_points_preprocessing
-		( std::set<Priority_Eval_Point> & pts ) const {}
-		
-		/// User updates after a success.
-		/**
-		 This virtual method is called every time a new (full) success is made.
-		 \param stats Stats                 -- \b IN.
-		 \param x     Last successful point -- \b IN.
-		 */
-		virtual void update_success ( const NOMAD::Stats      & stats ,
-									 const NOMAD::Eval_Point & x       ) {}
-		
-		/// User updates after an iteration.
-		/**
-		 This virtual method is called every time a MADS iteration is terminated.
-		 \param success      Success of the iteration              -- \b IN.
-		 \param stats        Stats                                 -- \b IN.
-		 \param ev_control   The NOMAD::Evaluator_Control object   -- \b IN.
-		 \param true_barrier Barrier for true evaluations          -- \b IN.
-		 \param sgte_barrier Barrier for surrogate evaluations     -- \b IN.
-		 \param pareto_front Pareto front                          -- \b IN.
-		 \param stop         Allows the user to stop the algorithm -- \b OUT.
-		 */
-		virtual void update_iteration ( NOMAD::success_type              success      ,
-									   const NOMAD::Stats             & stats        ,
-									   const NOMAD::Evaluator_Control & ev_control   ,
-									   const NOMAD::Barrier           & true_barrier ,
-									   const NOMAD::Barrier           & sgte_barrier ,
-									   const NOMAD::Pareto_Front      & pareto_front ,
-									   bool                           & stop           ) {}
-		
-		/// Evaluate the blackbox functions at a given trial point (#1).
-		/**
-		 - Const version.
-		 - May be user-defined.
-		 - Surrogate or true evaluation depending on the value of \c x.is_surrogate().
-		 \param x          The trial point                    -- \b IN/OUT.
-		 \param h_max      Maximal feasibility value \c h_max -- \b IN.
-		 \param count_eval Flag indicating if the evaluation has to be counted
-		 or not -- \b OUT.
-		 \return A boolean equal to \c false if the evaluation failed.
-		 */
-		virtual bool eval_x ( NOMAD::Eval_Point   & x          ,
-							 const NOMAD::Double & h_max      ,
-							 bool                & count_eval   ) const;
-		
-		/// Evaluate the blackbox functions at a given trial point (#2).
-		/**
-		 - Non-const version.
-		 - Calls the const version by default.
-		 - May be user-defined.
-		 - Surrogate or true evaluation depending on the value of \c x.is_surrogate().
-		 \param x          The trial point                    -- \b IN/OUT.
-		 \param h_max      Maximal feasibility value \c h_max -- \b IN.
-		 \param count_eval Flag indicating if the evaluation has to be counted
-		 or not -- \b OUT.
-		 \return A boolean equal to \c false if the evaluation failed.
-		 */
-		virtual bool eval_x ( NOMAD::Eval_Point   & x          ,
-							 const NOMAD::Double & h_max      ,
-							 bool                & count_eval   )
-		{
-			return static_cast<const Evaluator *>(this)->eval_x ( x , h_max , count_eval );
-		}
-		
-		
-		
-		/// Evaluate the blackbox functions at a given list of trial points (#1).
-		/**
-		 - Const version.
-		 - May be user-defined.
-		 - Surrogate or true evaluation depending on the value of \c x.is_surrogate().
-		 \param x          The list of trial points          -- \b IN/OUT.
-		 \param h_max      Maximal feasibility value \c h_max -- \b IN.
-		 \param count_eval Number of evaluations that are counted -- \b OUT.
-		 \return A boolean equal to \c false if the evaluation failed.
-		 */
-		virtual bool eval_x ( std::list<NOMAD::Eval_Point *>	&x  ,
-							 const NOMAD::Double				& h_max,
-							 std::list<bool>					& count_eval ) const;
-		
-		
-		/// Evaluate the blackbox functions at a given list of trial points (#2).
-		/**
-		 - Non-Const version.
-		 - May be user-defined.
-		 - Surrogate or true evaluation depending on the value of \c x.is_surrogate().
-		 \param x          The list of trial points          -- \b IN/OUT.
-		 \param h_max      Maximal feasibility value \c h_max -- \b IN.
-		 \param count_eval Number of evaluations that are counted -- \b OUT.
-		 \return A boolean equal to \c false if the evaluation failed.
-		 */
-		virtual bool eval_x ( std::list<NOMAD::Eval_Point *>	&x  ,
-							 const NOMAD::Double				& h_max,
-							 std::list<bool>					& count_eval )
-		{
-			return static_cast<const Evaluator *>(this)->eval_x ( x , h_max , count_eval );
-		}
-
-		
-		
-		/// Compute the objective value \c f(x) from the blackbox outputs of a point.
-		/**
-		 \param x The point -- \b IN/OUT.
-		 */
-		virtual void compute_f ( NOMAD::Eval_Point & x ) const;
-		
-		/// Compute the feasibility value \c h(x) from the blackbox outputs of a point.
-		/**
-		 \param x The point -- \b IN/OUT.
-		 */
-		void compute_h ( NOMAD::Eval_Point & x ) const;
-	};
+         - It allows the user to pre-process the points to be evaluated.
+         \param pts The list of points -- \b IN/OUT.
+         */
+        virtual void list_of_points_preprocessing
+        ( std::set<Priority_Eval_Point> & pts ) const {}
+        
+        /// User updates after a success.
+        /**
+         This virtual method is called every time a new (full) success is made.
+         \param stats Stats                 -- \b IN.
+         \param x     Last successful point -- \b IN.
+         */
+        virtual void update_success ( const NOMAD::Stats      & stats ,
+                                     const NOMAD::Eval_Point & x       ) {}
+        
+        /// User updates after an iteration.
+        /**
+         This virtual method is called every time a MADS iteration is terminated.
+         \param success      Success of the iteration              -- \b IN.
+         \param stats        Stats                                 -- \b IN.
+         \param ev_control   The NOMAD::Evaluator_Control object   -- \b IN.
+         \param true_barrier Barrier for true evaluations          -- \b IN.
+         \param sgte_barrier Barrier for surrogate evaluations     -- \b IN.
+         \param pareto_front Pareto front                          -- \b IN.
+         \param stop         Allows the user to stop the algorithm -- \b OUT.
+         */
+        virtual void update_iteration ( NOMAD::success_type              success      ,
+                                       const NOMAD::Stats             & stats        ,
+                                       const NOMAD::Evaluator_Control & ev_control   ,
+                                       const NOMAD::Barrier           & true_barrier ,
+                                       const NOMAD::Barrier           & sgte_barrier ,
+                                       const NOMAD::Pareto_Front      & pareto_front ,
+                                       bool                           & stop           ) {}
+        
+        /// Evaluate the blackbox functions at a given trial point (#1).
+        /**
+         - Const version.
+         - May be user-defined.
+         - Surrogate or true evaluation depending on the value of \c x.is_surrogate().
+         \param x          The trial point                    -- \b IN/OUT.
+         \param h_max      Maximal feasibility value \c h_max -- \b IN.
+         \param count_eval Flag indicating if the evaluation has to be counted
+         or not -- \b OUT.
+         \return A boolean equal to \c false if the evaluation failed.
+         */
+        virtual bool eval_x ( NOMAD::Eval_Point   & x          ,
+                             const NOMAD::Double & h_max      ,
+                             bool                & count_eval   ) const;
+        
+        /// Evaluate the blackbox functions at a given trial point (#2).
+        /**
+         - Non-const version.
+         - Calls the const version by default.
+         - May be user-defined.
+         - Surrogate or true evaluation depending on the value of \c x.is_surrogate().
+         \param x          The trial point                    -- \b IN/OUT.
+         \param h_max      Maximal feasibility value \c h_max -- \b IN.
+         \param count_eval Flag indicating if the evaluation has to be counted
+         or not -- \b OUT.
+         \return A boolean equal to \c false if the evaluation failed.
+         */
+        virtual bool eval_x ( NOMAD::Eval_Point   & x          ,
+                             const NOMAD::Double & h_max      ,
+                             bool                & count_eval   )
+        {
+            
+            return static_cast<const Evaluator *>(this)->eval_x ( x , h_max , count_eval );
+            
+        }
+        
+        
+        
+        /// Evaluate the blackbox functions at a given list of trial points (#1).
+        /**
+         - Const version.
+         - May be user-defined.
+         - Surrogate or true evaluation depending on the value of \c x.is_surrogate().
+         \param x          The list of trial points          -- \b IN/OUT.
+         \param h_max      Maximal feasibility value \c h_max -- \b IN.
+         \param count_eval Number of evaluations that are counted -- \b OUT.
+         \return A boolean equal to \c false if the evaluation failed.
+         */
+        virtual bool eval_x ( std::list<NOMAD::Eval_Point *>    &x  ,
+                             const NOMAD::Double                & h_max,
+                             std::list<bool>                    & count_eval ) const;
+        
+        
+        /// Evaluate the blackbox functions at a given list of trial points (#2).
+        /**
+         - Non-Const version.
+         - May be user-defined.
+         - Surrogate or true evaluation depending on the value of \c x.is_surrogate().
+         \param x          The list of trial points                 -- \b IN/OUT.
+         \param h_max      Maximal feasibility value \c h_max       -- \b IN.
+         \param count_eval Number of evaluations that are counted   -- \b OUT.
+         \return A boolean equal to \c false if the evaluation failed.
+         */
+        virtual bool eval_x ( std::list<NOMAD::Eval_Point *>    &x  ,
+                             const NOMAD::Double                & h_max,
+                             std::list<bool>                    & count_eval )
+        {
+            return static_cast<const Evaluator *>(this)->eval_x ( x , h_max , count_eval );
+        }
+        
+        
+        
+        /// Compute the objective value \c f(x) from the blackbox outputs of a point.
+        /**
+         \param x The point -- \b IN/OUT.
+         */
+        virtual void compute_f ( NOMAD::Eval_Point & x ) const;
+        
+        /// Compute the feasibility value \c h(x) from the blackbox outputs of a point.
+        /**
+         \param x The point -- \b IN/OUT.
+         */
+        void compute_h ( NOMAD::Eval_Point & x ) const;
+    };
 }
 
 #endif
diff --git a/src/Evaluator_Control.cpp b/src/Evaluator_Control.cpp
index 77b5c10..d0873d0 100644
--- a/src/Evaluator_Control.cpp
+++ b/src/Evaluator_Control.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Evaluator_Control.cpp
-  \brief  Control of the blackbox evaluations (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-15
-  \see    Evaluator_Control.hpp
-*/
+ \file   Evaluator_Control.cpp
+ \brief  Control of the blackbox evaluations (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-15
+ \see    Evaluator_Control.hpp
+ */
 #include "Evaluator_Control.hpp"
 #include "Multi_Obj_Quad_Model_Evaluator.hpp"
 #include "Single_Obj_Quad_Model_Evaluator.hpp"
@@ -54,125 +61,129 @@ bool NOMAD::Evaluator_Control::_force_evaluation_failure = false;
 /*---------------------------------------------------------*/
 /*                       constructor                       */
 /*---------------------------------------------------------*/
-NOMAD::Evaluator_Control::Evaluator_Control
-( const NOMAD::Parameters & p          ,
-  NOMAD::Stats            & stats      ,
-  NOMAD::Evaluator        * ev         ,   // can be NULL
-  NOMAD::Cache            * cache      ,   // can be NULL
-  NOMAD::Cache            * sgte_cache   ) // can be NULL
-  : _p                ( p          ) ,
-    _ev               ( ev         ) ,
-    _cache            ( cache      ) ,
-    _sgte_cache       ( sgte_cache ) ,
-    _model_eval_sort  ( true       ) ,
-    _del_ev           ( false      ) ,
-    _del_cache        ( false      ) ,
-    _del_sgte_cache   ( false      ) ,
+NOMAD::Evaluator_Control::Evaluator_Control ( const NOMAD::Parameters & p          ,
+                                             NOMAD::Stats            & stats      ,
+                                             NOMAD::Evaluator        * ev         ,   // can be NULL
+                                             NOMAD::Cache            * cache      ,   // can be NULL
+                                             NOMAD::Cache            * sgte_cache   ) // can be NULL
+: _p                ( p          ) ,
+_ev               ( ev         ) ,
+_cache            ( cache      ) ,
+_sgte_cache       ( sgte_cache ) ,
+_model_eval_sort  ( true       ) ,
+_del_ev           ( false      ) ,
+_del_cache        ( false      ) ,
+_del_sgte_cache   ( false      ) ,
 #ifdef USE_MPI
-    _eval_in_progress ( NULL       ) ,
-    _nb_in_progress   ( 0          ) ,
-    _elop_tag         ( 0          ) ,
-    _slaves_elop_tags ( NULL       ) ,
-    _slave            ( NULL       ) ,
-#endif
-#ifdef USE_TGP
-    _last_TGP_model   ( NULL       ) ,
+_eval_in_progress ( NULL       ) ,
+_nb_in_progress   ( 0          ) ,
+_elop_tag         ( 0          ) ,
+_slaves_elop_tags ( NULL       ) ,
+_slave            ( NULL       ) ,
 #endif
-    _stats            ( stats      ) ,
-    _last_stats_tag   ( -1         ) ,
-    _last_stats_bbe   ( -1         ) ,
-    _last_history_bbe ( -1         )
+_stats            ( stats      ) ,
+_last_stats_tag   ( -1         ) ,
+_last_stats_bbe   ( -1         ) ,
+_last_history_bbe ( -1         )
 {
-  NOMAD::Evaluator_Control::_force_quit = false;
-
-  // Evaluator init:
-  if ( !_ev ) {
-    _ev = ( _p.get_index_obj().size() > 1 ) ? new NOMAD::Multi_Obj_Evaluator ( p ):
-                                              new NOMAD::Evaluator           ( p );
-    _del_ev = true;
-  }
-
-  if ( NOMAD::Slave::is_master() ) {
-
-#ifdef USE_MPI
-
-    int np = NOMAD::Slave::get_nb_processes();
-
-    _eval_in_progress = new NOMAD::Eval_Point * [np];
-    _slaves_elop_tags = new int                 [np];
-    for ( int i = 0 ; i < np ; ++i ) {
-      _eval_in_progress[i] = NULL;
-      _slaves_elop_tags[i] = -1;
-    }
-   
-    _slave = new NOMAD::Slave ( _p , _ev );
-
-#endif
-    
-    const NOMAD::Display & out = _p.out();
-
-    // caches creation:
-    if ( !_cache ) {
-      _cache     = new NOMAD::Cache ( out , NOMAD::TRUTH );
-      _del_cache = true;
-    }
-    if ( !_sgte_cache ) {
-      _sgte_cache     = new NOMAD::Cache ( out , NOMAD::SGTE );
-      _del_sgte_cache = true;
-    }
-
-    // caches init (we only load cache file points with m blackbox outputs):
-    std::string    file_name;
-    int            m              = p.get_bb_nb_outputs();
-    NOMAD::dd_type display_degree = out.get_gen_dd();
+    NOMAD::Evaluator_Control::_force_quit = false;
     
-    if ( !_p.get_cache_file().empty() ) {
-      file_name = _p.get_problem_dir() + _p.get_cache_file();
-      if ( !_cache->load ( file_name , &m , display_degree == NOMAD::FULL_DISPLAY )
-	   && display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
-	out << std::endl
-	    << "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
-	    << "): could not load (or create) the cache file " << file_name
-	    << std::endl << std::endl;
+    // Evaluator init:
+    if ( !_ev )
+    {
+        _ev = ( _p.get_index_obj().size() > 1 ) ? new NOMAD::Multi_Obj_Evaluator ( p ):
+        new NOMAD::Evaluator           ( p );
+        _del_ev = true;
     }
     
-    if ( !_p.get_sgte_cache_file().empty() ) {
-      file_name = _p.get_problem_dir() + _p.get_sgte_cache_file();
-      if ( !_sgte_cache->load ( file_name , &m , display_degree==NOMAD::FULL_DISPLAY ) &&
-			display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY )
-	out << std::endl << "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
-	    << "): could not load (or create) the surrogate cache file "
-	    << file_name << std::endl << std::endl;
-    }
-
+    if ( NOMAD::Slave::is_master() )
+    {
+        
+#ifdef USE_MPI
+        
+        int np = NOMAD::Slave::get_nb_processes();
+        
+        _eval_in_progress = new NOMAD::Eval_Point * [np];
+        _slaves_elop_tags = new int                 [np];
+        for ( int i = 0 ; i < np ; ++i )
+        {
+            _eval_in_progress[i] = NULL;
+            _slaves_elop_tags[i] = -1;
+        }
+        
+        _slave = new NOMAD::Slave ( _p , _ev );
+        
+#endif
+        
+        const NOMAD::Display & out = _p.out();
+        
+        // caches creation:
+        if ( !_cache )
+        {
+            _cache     = new NOMAD::Cache ( out , NOMAD::TRUTH );
+            _del_cache = true;
+        }
+        if ( !_sgte_cache )
+        {
+            _sgte_cache     = new NOMAD::Cache ( out , NOMAD::SGTE );
+            _del_sgte_cache = true;
+        }
+        
+        // caches init (we only load cache file points with m blackbox outputs):
+        std::string    file_name;
+        int            m              = p.get_bb_nb_outputs();
+        NOMAD::dd_type display_degree = out.get_gen_dd();
+        
+        if ( !_p.get_cache_file().empty() )
+        {
+            file_name = _p.get_problem_dir() + _p.get_cache_file();
+            if ( !_cache->load ( file_name , &m , display_degree == NOMAD::FULL_DISPLAY )
+                && display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+                out << std::endl
+                << "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
+                << "): could not load (or create) the cache file " << file_name
+                << std::endl << std::endl;
+        }
+        
+        if ( !_p.get_sgte_cache_file().empty() )
+        {
+            file_name = _p.get_problem_dir() + _p.get_sgte_cache_file();
+            if ( !_sgte_cache->load ( file_name , &m , display_degree==NOMAD::FULL_DISPLAY ) &&
+                display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY )
+                out << std::endl << "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
+                << "): could not load (or create) the surrogate cache file "
+                << file_name << std::endl << std::endl;
+        }
+        
 #ifdef MODEL_STATS
-    if ( _p.has_model_search() ||
-	 ( _model_eval_sort &&
-	   _p.get_model_eval_sort() != NOMAD::NO_MODEL ) ) {
-      out << std::endl
-	  << "MODEL_STATS is active. Displayed model stats are:"
-	  << std::endl
-	  << "mode ell nY wY cond";
-      if ( _p.has_constraints() )
-	out << " h mh eh";
-      out << " f mf ef" << std::endl
-	  << NOMAD::open_block()
-	  << "mode: model search (1) or model ordering (2)" << std::endl 
-	  << "ell : mesh_index"                             << std::endl
-	  << "nY  : cardinality of the interpolation set Y" << std::endl
-	  << "wY  : width of Y"                             << std::endl
-	  << "cond: Y condition number"                     << std::endl;
-      if ( _p.has_constraints() )
-	out << "h   : h value"           << std::endl
-	    << "mh  : model value for h" << std::endl
-	    << "eh  : relative error(%)" << std::endl;
-      out << "f   : f value"             << std::endl
-	  << "mf  : model value for f"   << std::endl
-	  << "ef  : relative error(%)"   << std::endl
-	  << NOMAD::close_block()        << std::endl;
-    }
+        if ( _p.has_model_search() ||
+            ( _model_eval_sort &&
+             _p.get_model_eval_sort() != NOMAD::NO_MODEL ) )
+        {
+            out << std::endl
+            << "MODEL_STATS is active. Displayed model stats are:"
+            << std::endl
+            << "mode ell nY wY cond";
+            if ( _p.has_constraints() )
+                out << " h mh eh";
+            out << " f mf ef" << std::endl
+            << NOMAD::open_block()
+            << "mode: model search (1) or model ordering (2)" << std::endl
+            << "ell : mesh_index"                             << std::endl
+            << "nY  : cardinality of the interpolation set Y" << std::endl
+            << "wY  : width of Y"                             << std::endl
+            << "cond: Y condition number"                     << std::endl;
+            if ( _p.has_constraints() )
+                out << "h   : h value"           << std::endl
+                << "mh  : model value for h" << std::endl
+                << "eh  : relative error(%)" << std::endl;
+            out << "f   : f value"             << std::endl
+            << "mf  : model value for f"   << std::endl
+            << "ef  : relative error(%)"   << std::endl
+            << NOMAD::close_block()        << std::endl;
+        }
 #endif
-  }
+    }
 }
 
 /*---------------------------------------------------------*/
@@ -180,31 +191,32 @@ NOMAD::Evaluator_Control::Evaluator_Control
 /*---------------------------------------------------------*/
 NOMAD::Evaluator_Control::~Evaluator_Control ( void )
 {
-  if ( _del_ev )
-    delete _ev;
-
-  if ( _del_cache )
-    delete _cache;
-
-  if ( _del_sgte_cache )
-    delete _sgte_cache;
-
-  clear_eval_lop();
-
+    if ( _del_ev )
+        delete _ev;
+    
+    if ( _del_cache )
+        delete _cache;
+    
+    if ( _del_sgte_cache )
+        delete _sgte_cache;
+    
+    clear_eval_lop();
+    
 #ifdef USE_MPI
-
-  if ( _eval_in_progress ) {
-    int np = NOMAD::Slave::get_nb_processes();
-    for ( int i = 0 ; i < np ; ++i )
-      if ( _eval_in_progress[i] && !_eval_in_progress[i]->is_in_cache() )
-	delete _eval_in_progress[i];
-    delete [] _eval_in_progress;
-  }
-  if ( _slaves_elop_tags )
-    delete [] _slaves_elop_tags;
-
-  delete _slave;
-
+    
+    if ( _eval_in_progress )
+    {
+        int np = NOMAD::Slave::get_nb_processes();
+        for ( int i = 0 ; i < np ; ++i )
+            if ( _eval_in_progress[i] && !_eval_in_progress[i]->is_in_cache() )
+                delete _eval_in_progress[i];
+        delete [] _eval_in_progress;
+    }
+    if ( _slaves_elop_tags )
+        delete [] _slaves_elop_tags;
+    
+    delete _slave;
+    
 #endif
 }
 
@@ -213,10 +225,7 @@ NOMAD::Evaluator_Control::~Evaluator_Control ( void )
 /*---------------------------------------------------------*/
 void NOMAD::Evaluator_Control::reset ( void )
 {
-  _last_stats_tag = _last_stats_bbe = -1;
-#ifdef USE_TGP
-  _last_TGP_model = NULL;
-#endif
+    _last_stats_tag = _last_stats_bbe = -1;
 }
 
 /*---------------------------------------------------------*/
@@ -224,112 +233,110 @@ void NOMAD::Evaluator_Control::reset ( void )
 /*---------------------------------------------------------*/
 bool NOMAD::Evaluator_Control::save_caches ( bool overwrite )
 {
-  const NOMAD::Display    & out = _p.out();
-  NOMAD::dd_type display_degree = out.get_gen_dd();
-
-  bool b1 = _cache->save      ( overwrite , display_degree == NOMAD::FULL_DISPLAY );
-  bool b2 = _sgte_cache->save ( overwrite , display_degree == NOMAD::FULL_DISPLAY );
-
-  if ( !b1 && display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
-    out << std::endl << "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
-	<< "): could not save the cache file "
-	<< _p.get_problem_dir() << _p.get_cache_file()
-	<< std::endl << std::endl;
-
-  if ( !b2 && display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
-    out << std::endl
-	<< "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
-	<< "): could not save the surrogate cache file "
-	<< _p.get_problem_dir() << _p.get_sgte_cache_file()
-	<< std::endl << std::endl; 
-  return b1 && b2;
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_gen_dd();
+    
+    bool b1 = _cache->save      ( overwrite , display_degree == NOMAD::FULL_DISPLAY );
+    bool b2 = _sgte_cache->save ( overwrite , display_degree == NOMAD::FULL_DISPLAY );
+    
+    if ( !b1 && display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+        out << std::endl << "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
+        << "): could not save the cache file "
+        << _p.get_problem_dir() << _p.get_cache_file()
+        << std::endl << std::endl;
+    
+    if ( !b2 && display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+        out << std::endl
+        << "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
+        << "): could not save the surrogate cache file "
+        << _p.get_problem_dir() << _p.get_sgte_cache_file()
+        << std::endl << std::endl;
+    return b1 && b2;
 }
 
 /*---------------------------------------------------------*/
 /*    process an already evaluated Eval_Point (private)    */
 /*---------------------------------------------------------*/
-void NOMAD::Evaluator_Control::process_eval_point
-( const NOMAD::Eval_Point & x            ,
-  NOMAD::Barrier          & barrier      ,
-  NOMAD::Pareto_Front     * pareto_front ) const
+void NOMAD::Evaluator_Control::process_eval_point ( const NOMAD::Eval_Point & x            ,
+                                                   NOMAD::Barrier          & barrier      ,
+                                                   NOMAD::Pareto_Front     * pareto_front ) const
 {
-  // insertion of the Eval_Point in the barriers:
-  barrier.insert(x);
-
-  if ( x.get_eval_type() == NOMAD::TRUTH || _p.get_opt_only_sgte() )
-  {
-
-    // multi-objective:
-    if ( pareto_front )
-	{
-
-      // insertion of the Eval_Point in the Pareto front:
-      if ( x.is_feasible ( _p.get_h_min() ) &&
-		  pareto_front->insert ( x )       &&
-		  _p.get_user_calls_enabled()         )
-			_ev->update_success ( _stats , x );
-
+    // insertion of the Eval_Point in the barriers:
+    barrier.insert(x);
+    
+    if ( x.get_eval_type() == NOMAD::TRUTH || _p.get_opt_only_sgte() )
+    {
+        
+        // multi-objective:
+        if ( pareto_front )
+        {
+            
+            // insertion of the Eval_Point in the Pareto front:
+            if ( x.is_feasible ( _p.get_h_min() ) &&
+                pareto_front->insert ( x )       &&
+                _p.get_user_calls_enabled()         )
+                _ev->update_success ( _stats , x );
+            
+        }
+        
+        // single-objective: call virtual method Evaluator::update_success():
+        else if ( _p.get_user_calls_enabled() &&
+                 barrier.get_one_eval_succ() == NOMAD::FULL_SUCCESS )
+            _ev->update_success ( _stats , x );
     }
-   
-    // single-objective: call virtual method Evaluator::update_success():
-    else if ( _p.get_user_calls_enabled() &&
-	      barrier.get_one_eval_succ() == NOMAD::FULL_SUCCESS )
-      _ev->update_success ( _stats , x );
-  } 
 }
 
 /*---------------------------------------------------------*/
 /*  update barrier b1 from points in barrier b2 and treat  */
 /*  these points as evaluations (used in VNS search)       */
 /*---------------------------------------------------------*/
-NOMAD::success_type NOMAD::Evaluator_Control::process_barrier_points
-( NOMAD::Barrier       & b1             ,
-  const NOMAD::Barrier & b2             ,
-  NOMAD::Pareto_Front  * pareto_front   ,
-  NOMAD::dd_type         display_degree ,
-  NOMAD::search_type     search           ) const
+NOMAD::success_type NOMAD::Evaluator_Control::process_barrier_points ( NOMAD::Barrier       & b1             ,
+                                                                      const NOMAD::Barrier & b2             ,
+                                                                      NOMAD::Pareto_Front  * pareto_front   ,
+                                                                      NOMAD::dd_type         display_degree ,
+                                                                      NOMAD::search_type     search           ) const
 {
-	b1.reset_success();
-	
-	NOMAD::Eval_Point                       *	modifiable_x;
-	NOMAD::success_type							one_eval_succ;
-	const NOMAD::Eval_Point                 *	last_success  = NULL;
-	const std::list<const NOMAD::Eval_Point *>	& all_inserted  = b2.get_all_inserted();
-	std::list<const NOMAD::Eval_Point *>::const_iterator it , end = all_inserted.end();
-	for ( it = all_inserted.begin() ; it != end ; ++it )
-	{
-		
-		// insertion in barrier:
-		modifiable_x = &NOMAD::Cache::get_modifiable_point ( **it );
-		
-		modifiable_x->set_direction          ( NULL                              );
-		modifiable_x->set_poll_center_type   ( NOMAD::UNDEFINED_POLL_CENTER_TYPE );
-		modifiable_x->set_user_eval_priority ( NOMAD::Double()                   );
-		modifiable_x->set_rand_eval_priority ( NOMAD::Double()                   );
-		
-		// process evaluation point:
-		process_eval_point ( **it , b1 , pareto_front );
-		
-		one_eval_succ = b1.get_one_eval_succ();
-		if ( one_eval_succ != NOMAD::UNSUCCESSFUL && one_eval_succ >= b1.get_success() )
-			last_success = *it;
-
-	}
-	
-	NOMAD::success_type success = b1.get_success();
-	
-	// display and save only the last success:
-	if ( last_success && display_degree == NOMAD::FULL_DISPLAY)
-		display_eval_result ( *last_success  ,
-							 display_degree ,
-							 search         ,
-							 success        ,
-							 success          );
-	
-	// barrier update:
-	b1.update_and_reset_success();
-	
-	return success;
+    b1.reset_success();
+    
+    NOMAD::Eval_Point                       *    modifiable_x;
+    NOMAD::success_type                          one_eval_succ;
+    const NOMAD::Eval_Point                 *    last_success  = NULL;
+    const std::list<const NOMAD::Eval_Point *> & all_inserted  = b2.get_all_inserted();
+    std::list<const NOMAD::Eval_Point *>::const_iterator it , end = all_inserted.end();
+    for ( it = all_inserted.begin() ; it != end ; ++it )
+    {
+        
+        // insertion in barrier:
+        modifiable_x = &NOMAD::Cache::get_modifiable_point ( **it );
+        
+        modifiable_x->set_direction          ( NULL                              );
+        modifiable_x->set_poll_center_type   ( NOMAD::UNDEFINED_POLL_CENTER_TYPE );
+        modifiable_x->set_user_eval_priority ( NOMAD::Double()                   );
+        modifiable_x->set_rand_eval_priority ( NOMAD::Double()                   );
+        
+        // process evaluation point:
+        process_eval_point ( **it , b1 , pareto_front );
+        
+        one_eval_succ = b1.get_one_eval_succ();
+        if ( one_eval_succ != NOMAD::UNSUCCESSFUL && one_eval_succ >= b1.get_success() )
+            last_success = *it;
+        
+    }
+    
+    NOMAD::success_type success = b1.get_success();
+    
+    // display and save only the last success:
+    if ( last_success && display_degree == NOMAD::FULL_DISPLAY)
+        display_eval_result ( *last_success  ,
+                             display_degree ,
+                             search         ,
+                             success        ,
+                             success          );
+    
+    // barrier update:
+    b1.update_and_reset_success();
+    
+    return success;
 }
 
 /*---------------------------------------------------------*/
@@ -338,425 +345,423 @@ NOMAD::success_type NOMAD::Evaluator_Control::process_barrier_points
 /*---------------------------------------------------------*/
 void NOMAD::Evaluator_Control::count_output_stats ( const NOMAD::Eval_Point & x )
 {
-  const NOMAD::Point & bbo   = x.get_bb_outputs();
-  int                  i_sum = _p.get_index_stat_sum();
-  int                  i_avg = _p.get_index_stat_avg();
-
-  // STAT_SUM:
-  if ( i_sum >= 0 )
-    _stats.update_stat_sum ( bbo[i_sum] );
-
-  // STAT_AVG:
-  if ( i_avg >= 0 )
-    _stats.update_stat_avg ( bbo[i_avg] );
+    const NOMAD::Point & bbo   = x.get_bb_outputs();
+    int                  i_sum = _p.get_index_stat_sum();
+    int                  i_avg = _p.get_index_stat_avg();
+    
+    // STAT_SUM:
+    if ( i_sum >= 0 )
+        _stats.update_stat_sum ( bbo[i_sum] );
+    
+    // STAT_AVG:
+    if ( i_avg >= 0 )
+        _stats.update_stat_avg ( bbo[i_avg] );
 }
 
 /*-------------------------------------------------------------------*/
 /*                file displays for parameter STATS_FILE             */
 /*-------------------------------------------------------------------*/
 void NOMAD::Evaluator_Control::stats_file ( const std::string       & file_name ,
-					    const NOMAD::Eval_Point * x         ,
-					    bool                      feasible  ,
-					    const NOMAD::Point      * multi_obj   ) const
+                                           const NOMAD::Eval_Point * x         ,
+                                           bool                      feasible  ,
+                                           const NOMAD::Point      * multi_obj   ) const
 {
-  std::string   fn = _p.get_problem_dir() + file_name;
-  std::ofstream fout ( fn.c_str() , std::ios::app );
-
-  if ( !fout.fail() )
-  {
-    fout.setf      ( std::ios::fixed             );
-    fout.precision ( NOMAD::DISPLAY_PRECISION_BB );
-    display_stats  ( false , fout , _p.get_stats_file() , x , feasible , multi_obj );
-  }
-  else
-  {
-    const NOMAD::Display & out = _p.out();
-    if ( out.get_gen_dd() != NOMAD::NO_DISPLAY && out.get_gen_dd() != NOMAD::MINIMAL_DISPLAY)
-      out << std::endl
-	  << "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
-	  << "): could not save information in stats file \'"
-	  << file_name << "\'" << std::endl << std::endl;
-  }
-  fout.close();
+    std::string   fn = _p.get_problem_dir() + file_name;
+    std::ofstream fout ( fn.c_str() , std::ios::app );
+    
+    if ( !fout.fail() )
+    {
+        fout.setf      ( std::ios::fixed             );
+        fout.precision ( NOMAD::DISPLAY_PRECISION_BB );
+        display_stats  ( false , fout , _p.get_stats_file() , x , feasible , multi_obj );
+    }
+    else
+    {
+        const NOMAD::Display & out = _p.out();
+        if ( out.get_gen_dd() != NOMAD::NO_DISPLAY && out.get_gen_dd() != NOMAD::MINIMAL_DISPLAY)
+            out << std::endl
+            << "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
+            << "): could not save information in stats file \'"
+            << file_name << "\'" << std::endl << std::endl;
+    }
+    fout.close();
 }
 
 /*-------------------------------------------------------------------*/
 /*  display stats during Mads::run() for minimal and normal display  */
 /*-------------------------------------------------------------------*/
-void NOMAD::Evaluator_Control::display_stats
-( bool                           header    ,
-  const NOMAD::Display         & out       ,
-  const std::list<std::string> & stats     ,
-  const NOMAD::Eval_Point      * x         ,
-  bool                           feasible  ,
-  const NOMAD::Point           * multi_obj   ) const
+void NOMAD::Evaluator_Control::display_stats ( bool                           header    ,
+                                              const NOMAD::Display         & out       ,
+                                              const std::list<std::string> & stats     ,
+                                              const NOMAD::Eval_Point      * x         ,
+                                              bool                           feasible  ,
+                                              const NOMAD::Point           * multi_obj   ) const
 {
-	if ( stats.empty() ) 
-	{
+    if ( stats.empty() )
+    {
 #ifndef R_VERSION
-		out << std::endl;
+        out << std::endl;
 #endif
-		return;
-	}
-	
-	if ( header )
-	{
+        return;
+    }
+    
+    if ( header )
+    {
 #ifndef R_VERSION
-		out << std::endl;
+        out << std::endl;
 #endif
-	}
-	
-	NOMAD::Double            f;
-	const NOMAD::Point     * sol		= NULL;
-	const NOMAD::Point     * bbo		= NULL;
-	const NOMAD::Signature * signature	= NULL;
-	int                      bbe		= _stats.get_bb_eval();
-	int						real_time	= _stats.get_real_time();
-	int						blk_bbe		= _stats.get_block_eval();
-	int                      i;
-	
-	// this integer is used for the default width display
-	// of the various stats on the number of evaluations:
-	int max_bbe = _p.get_max_bb_eval();
-	if ( _p.get_max_sgte_eval() > max_bbe )
-		max_bbe = _p.get_max_sgte_eval();
-	if ( _p.get_max_sim_bb_eval() > max_bbe )
-		max_bbe = _p.get_max_sim_bb_eval();
-	if ( _p.get_max_eval() > max_bbe )
-		max_bbe = _p.get_max_eval();
-	
-	if ( x ) 
-	{
-		signature       = x->get_signature();
-		f               = (feasible) ? x->get_f() : NOMAD::INF;
-		sol             = x;
-		bbo             = &(x->get_bb_outputs());
-			
-		if (bbe < _last_stats_bbe && ! multi_obj)
-			return;
-
-		_last_stats_tag = x->get_tag();
-		_last_stats_bbe = bbe;
-	}
-	
-
-	
-	std::string s1 , format;
-	std::list<std::string>::const_iterator it , end = stats.end();
-	for ( it = stats.begin() ; it != end ; ++it )
-	{
-		
-		if ( it->empty() ) 
-		{
+    }
+    
+    NOMAD::Double            f;
+    const NOMAD::Point     * sol        = NULL;
+    const NOMAD::Point     * bbo        = NULL;
+    const NOMAD::Signature * signature  = NULL;
+    int                      bbe        = _stats.get_bb_eval();
+    int                      real_time  = _stats.get_real_time();
+    int                      blk_bbe    = _stats.get_block_eval();
+    int                      i;
+    
+    // this integer is used for the default width display
+    // of the various stats on the number of evaluations:
+    int max_bbe = _p.get_max_bb_eval();
+    if ( _p.get_max_sgte_eval() > max_bbe )
+        max_bbe = _p.get_max_sgte_eval();
+    if ( _p.get_max_sim_bb_eval() > max_bbe )
+        max_bbe = _p.get_max_sim_bb_eval();
+    if ( _p.get_max_eval() > max_bbe )
+        max_bbe = _p.get_max_eval();
+    
+    if ( x )
+    {
+        signature       = x->get_signature();
+        f               = (feasible) ? x->get_f() : NOMAD::INF;
+        sol             = x;
+        bbo             = &(x->get_bb_outputs());
+        
+        if (bbe < _last_stats_bbe && ! multi_obj)
+            return;
+        
+        _last_stats_tag = x->get_tag();
+        _last_stats_bbe = bbe;
+    }
+    
+    
+    std::string s1 , format;
+    std::list<std::string>::const_iterator it , end = stats.end();
+    for ( it = stats.begin() ; it != end ; ++it )
+    {
+        
+        if ( it->empty() )
+        {
 #ifndef R_VERSION
-			out << "\t";
+            out << "\t";
 #endif
-		}
-		else {
-			
-			if ( header )
-			{
+        }
+        else
+        {
+            
+            
+            if ( header )
+            {
 #ifndef R_VERSION
-				s1 = *it;
-				NOMAD::Display::extract_display_format ( s1 , format );
-				out << s1;
+                s1 = *it;
+                NOMAD::Display::extract_display_format ( s1 , format );
+                out << s1;
 #endif
-			}
-			
-			else 
-			{
-				
-				// get the stats type:
-				NOMAD::display_stats_type dst
-				= NOMAD::Display::get_display_stats_type ( *it );
-				
-				// some stats types are disables in the multi-objective case:
-				if ( multi_obj &&
-					( dst == NOMAD::DS_SIM_BBE  ||
-					 dst == NOMAD::DS_BBE      ||
-					 dst == NOMAD::DS_SGTE     ||
-					 dst == NOMAD::DS_EVAL     ||
-					 dst == NOMAD::DS_TIME     ||
-					 dst == NOMAD::DS_STAT_SUM ||
-					 dst == NOMAD::DS_STAT_AVG    ) )
-					dst = NOMAD::DS_UNDEFINED;
-				
-				// display the stats:
-				switch ( dst )
+            }
+            
+            else
+            {
+                
+                // get the stats type:
+                NOMAD::display_stats_type dst
+                = NOMAD::Display::get_display_stats_type ( *it );
+                
+                // some stats types are disables in the multi-objective case:
+                if ( multi_obj &&
+                    ( dst == NOMAD::DS_SIM_BBE  ||
+                     dst == NOMAD::DS_BBE      ||
+                     dst == NOMAD::DS_SGTE     ||
+                     dst == NOMAD::DS_EVAL     ||
+                     dst == NOMAD::DS_TIME     ||
+                     dst == NOMAD::DS_STAT_SUM ||
+                     dst == NOMAD::DS_STAT_AVG    ) )
+                    dst = NOMAD::DS_UNDEFINED;
+                
+                // display the stats:
+                switch ( dst )
                 {
-					case NOMAD::DS_UNDEFINED:
-						s1 = *it;
-						NOMAD::Display::extract_display_format ( s1 , format );
-						out << s1;
-						break;
-					case NOMAD::DS_OBJ:
-						if ( multi_obj )
-							display_stats_point ( out , stats , it , multi_obj );
-						else
+                    case NOMAD::DS_UNDEFINED:
+                        s1 = *it;
+                        NOMAD::Display::extract_display_format ( s1 , format );
+                        out << s1;
+                        break;
+                    case NOMAD::DS_OBJ:
+                        if ( multi_obj )
+                            display_stats_point ( out , stats , it , multi_obj );
+                        else
                         {
 #ifdef R_VERSION
-							{     
-								std::ostringstream oss;
-								display_stats_real ( oss , f , format ); 
-								Rprintf ( "%s" , oss.str().c_str() );
-							}
+                            {
+                                std::ostringstream oss;
+                                display_stats_real ( oss , f , format );
+                                Rprintf ( "%s" , oss.str().c_str() );
+                            }
 #else
-							display_stats_real ( out , f , format );
+                            display_stats_real ( out , f , format );
 #endif
-							format.clear();
-						}
-						break;
-					case NOMAD::DS_MESH_INDEX:
-					{
-						if ( signature )
-						{
-							NOMAD::Point mesh_indices=signature->get_mesh()->get_mesh_indices();
-							display_stats_point ( out , stats , it , &mesh_indices );
-						}
-						else
-							out << "-";
-						
-						
-						break;
-					}
-					case NOMAD::DS_DELTA_M:
-					case NOMAD::DS_MESH_SIZE:
-					{
-						if ( signature )
-						{
-							NOMAD::Point delta;
-							signature->get_mesh()->get_delta ( delta );
-							display_stats_point ( out , stats , it , &delta );
-						}
-						else
-							out << "-";
-					}
-						break;
-					case NOMAD::DS_DELTA_P:
-					case NOMAD::DS_POLL_SIZE:
-					{
-						if ( signature )
-						{
-							NOMAD::Point Delta;
-							signature->get_mesh()->get_Delta ( Delta );
-							display_stats_point ( out , stats , it , &Delta );
-							
-						}
-						else
-							out << "-";
-					}
-						break;
-					case NOMAD::DS_SIM_BBE:
-						display_stats_int ( out , _stats.get_sim_bb_eval() , max_bbe , format );
-						format.clear();
-						break;
-					case NOMAD::DS_BBE:
-						
+                            format.clear();
+                        }
+                        break;
+                    case NOMAD::DS_MESH_INDEX:
+                    {
+                        
+                        if ( signature )
+                        {
+                            NOMAD::Point mesh_indices=signature->get_mesh()->get_mesh_indices();
+                            display_stats_point ( out , stats , it , &mesh_indices );
+                        }
+                        else
+                            out << "-";
+                        
+                        
+                        break;
+                    }
+                    case NOMAD::DS_DELTA_M:
+                    case NOMAD::DS_MESH_SIZE:
+                    {
+                        if ( signature )
+                        {
+                            NOMAD::Point delta;
+                            signature->get_mesh()->get_delta ( delta );
+                            display_stats_point ( out , stats , it , &delta );
+                        }
+                        else
+                            out << "-";
+                    }
+                        break;
+                    case NOMAD::DS_DELTA_P:
+                    case NOMAD::DS_POLL_SIZE:
+                    {
+                        if ( signature )
+                        {
+                            NOMAD::Point Delta;
+                            signature->get_mesh()->get_Delta ( Delta );
+                            display_stats_point ( out , stats , it , &Delta );
+                            
+                        }
+                        else
+                            out << "-";
+                    }
+                        break;
+                    case NOMAD::DS_SIM_BBE:
+                        display_stats_int ( out , _stats.get_sim_bb_eval() , max_bbe , format );
+                        format.clear();
+                        break;
+                    case NOMAD::DS_BBE:
+                        
 #ifdef R_VERSION
-					{
-							std::ostringstream oss;
-							display_stats_int ( oss , bbe , max_bbe , format );
-							Rprintf ( "\t%s " , oss.str().c_str() );
-					}
+                    {
+                        std::ostringstream oss;
+                        display_stats_int ( oss , bbe , max_bbe , format );
+                        Rprintf ( "\t%s " , oss.str().c_str() );
+                    }
 #else
-					{
-							display_stats_int ( out , bbe , max_bbe , format );
-					}
+                    {
+                        display_stats_int ( out , bbe , max_bbe , format );
+                    }
 #endif
-						format.clear();
-						break;
+                        format.clear();
+                        break;
                     case NOMAD::DS_BLK_EVA:
-					{
-						display_stats_int ( out , blk_bbe , max_bbe , format );
-					}
-						format.clear();
-						break;
-
-					case NOMAD::DS_SGTE:
-						//display_stats_int ( out , sgte_bbe , max_bbe , format );
-						 display_stats_int ( out , _stats.get_sgte_eval() , max_bbe , format );
-						format.clear();
-						break;
-					case NOMAD::DS_EVAL:
-						display_stats_int ( out , _stats.get_eval() , max_bbe , format );
-						format.clear();
-						break;
-					case NOMAD::DS_TIME:
-						display_stats_int ( out , real_time , 3600 , format );
-						format.clear();
-						break;
-					case NOMAD::DS_STAT_SUM:
-						display_stats_real ( out , _stats.get_stat_sum() , format );
-						format.clear();
-						break;
-					case NOMAD::DS_STAT_AVG:
-						display_stats_real ( out , _stats.get_stat_avg() , format );
-						format.clear();
-						break;
-					case NOMAD::DS_BBO:
-						display_stats_point ( out , stats , it , bbo );
-						break;
-					case NOMAD::DS_SOL:
-						display_stats_point ( out , stats , it , sol , signature->get_input_type() );
-						break;
-					case NOMAD::DS_VAR:
-						++it;
-						NOMAD::atoi ( *it , i );
-						if ( sol )
-							if (format.empty())
-								display_stats_type ( out , (*sol)[i] , (signature->get_input_type())[i] );
-							else
-								display_stats_real ( out , (*sol)[i] , format );
-							else
-								out << "-";
-						format.clear();
-						break;
-				}
-			}
-		}
-	}
-	
-	if ( !header )
+                    {
+                        display_stats_int ( out , blk_bbe , max_bbe , format );
+                    }
+                        format.clear();
+                        break;
+                        
+                    case NOMAD::DS_SGTE:
+                        display_stats_int ( out , _stats.get_sgte_eval() , max_bbe , format );
+                        format.clear();
+                        break;
+                    case NOMAD::DS_EVAL:
+                        display_stats_int ( out , _stats.get_eval() , max_bbe , format );
+                        format.clear();
+                        break;
+                    case NOMAD::DS_TIME:
+                        display_stats_int ( out , real_time , 3600 , format );
+                        format.clear();
+                        break;
+                    case NOMAD::DS_STAT_SUM:
+                        display_stats_real ( out , _stats.get_stat_sum() , format );
+                        format.clear();
+                        break;
+                    case NOMAD::DS_STAT_AVG:
+                        display_stats_real ( out , _stats.get_stat_avg() , format );
+                        format.clear();
+                        break;
+                    case NOMAD::DS_BBO:
+                        display_stats_point ( out , stats , it , bbo );
+                        break;
+                    case NOMAD::DS_SOL:
+                        display_stats_point ( out , stats , it , sol , signature->get_input_types() );
+                        break;
+                    case NOMAD::DS_VAR:
+                        ++it;
+                        NOMAD::atoi ( *it , i );
+                        if ( sol )
+                            if (format.empty())
+                                display_stats_type ( out , (*sol)[i] , (signature->get_input_types())[i] );
+                            else
+                                display_stats_real ( out , (*sol)[i] , format );
+                            else
+                                out << "-";
+                        format.clear();
+                        break;
+                }
+            }
+        }
+    }
+    
+    if ( !header )
 #ifdef R_VERSION
-		Rprintf("\n");
+        Rprintf("\n");
 #else
-	out << std::endl;
+    out << std::endl;
 #endif
 }
 
 /*-----------------------------------------------------*/
 /*  display a number with type                         */
 /*-----------------------------------------------------*/
-void NOMAD::Evaluator_Control::display_stats_type
-( const NOMAD::Display        & out    ,
-  const NOMAD::Double         & d      ,
-  const NOMAD::bb_input_type  & bbType ) const
+void NOMAD::Evaluator_Control::display_stats_type ( const NOMAD::Display        & out    ,
+                                                   const NOMAD::Double         & d      ,
+                                                   const NOMAD::bb_input_type  & bbType ) const
 {
-	
-	// Default based on bbType
-	std::string format2;
-	switch (bbType)
-	{
-		case NOMAD::CONTINUOUS:
-			format2 = "%0." + NOMAD::itos(DISPLAY_PRECISION_STD) + "g";
-			break;
-		case NOMAD::INTEGER || NOMAD::BINARY || NOMAD::CATEGORICAL:
-			format2 = "%i";
-			break;
-		default:
-			break;
-	}
-	d.display ( out , format2 );
-
+    
+    // Default based on bbType
+    std::string format2;
+    switch (bbType)
+    {
+        case NOMAD::CONTINUOUS:
+            format2 = "%0." + NOMAD::itos(DISPLAY_PRECISION_STD) + "g";
+            break;
+        case NOMAD::INTEGER || NOMAD::BINARY || NOMAD::CATEGORICAL:
+            format2 = "%i";
+            break;
+        default:
+            break;
+    }
+    d.display ( out , format2 );
+    
 }
 
 /*-----------------------------------------------------*/
 /*  display a real with DISPLAY_STATS (or STATS_FILE)  */
 /*-----------------------------------------------------*/
-void NOMAD::Evaluator_Control::display_stats_real
-( const NOMAD::Display & out    ,
- const NOMAD::Double  & d      ,
- const std::string    & format ) const
+void NOMAD::Evaluator_Control::display_stats_real ( const NOMAD::Display & out    ,
+                                                   const NOMAD::Double  & d      ,
+                                                   const std::string    & format ) const
 {
-	if ( format.empty() )
-	{
-		std::string format2 = "%0." + NOMAD::itos(DISPLAY_PRECISION_STD) + "g";
-		d.display ( out , format2 );
-	}
-	else
-		d.display ( out , format );
+    if ( format.empty() )
+    {
+        std::string format2 = "%0." + NOMAD::itos(DISPLAY_PRECISION_STD) + "g";
+        d.display ( out , format2 );
+    }
+    else
+        d.display ( out , format );
 }
 
 
 /*---------------------------------------------------------*/
 /*  display an integer with DISPLAY_STATS (or STATS_FILE)  */
 /*---------------------------------------------------------*/
-void NOMAD::Evaluator_Control::display_stats_int
-( const NOMAD::Display & out    ,
-  int                    i      ,
-  int                    max_i  ,
-  const std::string    & format   ) const
+void NOMAD::Evaluator_Control::display_stats_int ( const NOMAD::Display & out    ,
+                                                  int                    i      ,
+                                                  int                    max_i  ,
+                                                  const std::string    & format   ) const
 {
-  if ( format.empty() )
-    out.display_int_w ( i , max_i );
-  else {
-    NOMAD::Double d = i;
-    d.display ( out , format );
-  }
+    if ( format.empty() )
+        out.display_int_w ( i , max_i );
+    else
+    {
+        
+        NOMAD::Double d = i;
+        d.display ( out , format );
+    }
 }
 
 /*---------------------------------------------------------*/
 /*    display a point with DISPLAY_STATS (or STATS_FILE)   */
 /*---------------------------------------------------------*/
-void NOMAD::Evaluator_Control::display_stats_point 
-( const NOMAD::Display                      & out           ,
-  const std::list<std::string>              & display_stats ,
-  std::list<std::string>::const_iterator    & it            ,
-  const NOMAD::Point                        * x             ,
-  const std::vector<NOMAD::bb_input_type>   & bbType        ) const   
+void NOMAD::Evaluator_Control::display_stats_point ( const NOMAD::Display                      & out           ,
+                                                    const std::list<std::string>              & display_stats ,
+                                                    std::list<std::string>::const_iterator    & it            ,
+                                                    const NOMAD::Point                        * x             ,
+                                                    const std::vector<NOMAD::bb_input_type>   & bbType        ) const
 {
-  if ( x ) 
-  {
-
-    unsigned int n = x->size() , bbn = static_cast<int>(bbType.size());
-	  	  
-	if ( bbn!=0 && n != bbn )      
-		  throw NOMAD::Exception ( "Evaluator_Control.cpp" , __LINE__ ,
-								  "Evaluator_Control::display_stats_point(): bbType and x have different size" );
-	  		
-
-    // s1 is the string displayed befores and after
-    // one coordinate (it may include format):
-    std::string s1;
-    if ( it != display_stats.begin() )
-	{
-      s1 = *(--it);
-      ++it;
+    if ( x )
+    {
+        
+        unsigned int n = x->size() , bbn = static_cast<int>(bbType.size());
+        
+        if ( bbn!=0 && n != bbn )
+            throw NOMAD::Exception ( "Evaluator_Control.cpp" , __LINE__ ,
+                                    "Evaluator_Control::display_stats_point(): bbType and x have different size" );
+        
+        
+        // s1 is the string displayed befores and after
+        // one coordinate (it may include format):
+        std::string s1;
+        if ( it != display_stats.begin() )
+        {
+            s1 = *(--it);
+            ++it;
+        }
+        
+        // extract the display format from s1:
+        std::string format;
+        if ( !s1.empty() )
+            NOMAD::Display::extract_display_format ( s1 , format );
+        
+        // s2 is the string displayed between two coordinates:
+        std::string s2;
+        ++it;
+        if ( it != display_stats.end() )
+            s2 = *it;
+        else if ( s2.empty() )
+            --it;
+        
+        for ( unsigned int i = 0 ; i < n ; ++i )
+        {
+            if ( !s1.empty() && i > 0 )
+                out << s1;
+            
+            if (bbn!=0 && format.empty())
+                display_stats_type ( out , (*x)[i] , bbType[i]);
+            else
+                display_stats_real (out, (*x)[i] , format );
+            
+            if ( !s1.empty() )
+                out << s1;
+            if ( !s2.empty() && i < n-1  && s2.find("(VNS)")==std::string::npos && s2.find("(PhaseOne)")==std::string::npos && s2.find("(LH)")==std::string::npos && s2.find("(ExtendedPoll)")==std::string::npos )
+                out << " " << s2;
+            out << " ";
+        }
+        if ( !s2.empty() && (s2.find("(VNS)")!=std::string::npos || s2.find("(PhaseOne)")!=std::string::npos || s2.find("(LH)")!=std::string::npos || s2.find("(ExtendedPoll)")!=std::string::npos))
+            out << s2;
     }
-
-    // extract the display format from s1:
-    std::string format;
-    if ( !s1.empty() )
-      NOMAD::Display::extract_display_format ( s1 , format );
-
-    // s2 is the string displayed between two coordinates:
-    std::string s2;
-    ++it;
-    if ( it != display_stats.end() )
-      s2 = *it;
-    else if ( s2.empty() )
-      --it;
-	  
-    for ( unsigned int i = 0 ; i < n ; ++i )
-	{
-		if ( !s1.empty() && i > 0 )
-			out << s1;
-		
-		if (bbn!=0 && format.empty())
-			display_stats_type ( out , (*x)[i] , bbType[i]);
-		else
-			display_stats_real (out, (*x)[i] , format );
-		
-		if ( !s1.empty() )
-			out << s1;
-		if ( !s2.empty() && i < n-1  && s2.find("(VNS)")==std::string::npos && s2.find("(PhaseOne)")==std::string::npos && s2.find("(LH)")==std::string::npos && s2.find("(ExtendedPoll)")==std::string::npos )
-			out << " " << s2;
-		out << " ";
-    }
-	if ( !s2.empty() && (s2.find("(VNS)")!=std::string::npos || s2.find("(PhaseOne)")!=std::string::npos || s2.find("(LH)")!=std::string::npos || s2.find("(ExtendedPoll)")!=std::string::npos))
-		out << s2;
-  }
 }
 
 /*------------------------------------------*/
 /*  save the solution file (SOLUTION_FILE)  */
 /*------------------------------------------*/
 void NOMAD::Evaluator_Control::write_solution_file ( const NOMAD::Eval_Point & x,
-													 bool display_bimv) const 
+                                                    bool display_bimv) const
 {
-  const std::string & sol_file = _p.get_solution_file();
-  if ( !sol_file.empty() && ( x.is_feasible ( _p.get_h_min() ) || display_bimv ) )
-    write_sol_or_his_file ( _p.get_problem_dir() + sol_file , x , true , display_bimv );
+    const std::string & sol_file = _p.get_solution_file();
+    if ( !sol_file.empty() && ( x.is_feasible ( _p.get_h_min() ) || display_bimv ) )
+        write_sol_or_his_file ( _p.get_problem_dir() + sol_file , x , true , display_bimv );
 }
 
 /*----------------------------------------------*/
@@ -764,170 +769,170 @@ void NOMAD::Evaluator_Control::write_solution_file ( const NOMAD::Eval_Point & x
 /*  or update the history file (HISTORY_FILE )  */
 /*  (private)                                   */
 /*----------------------------------------------*/
-void NOMAD::Evaluator_Control::write_sol_or_his_file 
-( const std::string       & file_name ,
-  const NOMAD::Eval_Point & x         ,
-  bool                      is_sol    ,
-  bool						display_bimv ) const
+void NOMAD::Evaluator_Control::write_sol_or_his_file ( const std::string      & file_name ,
+                                                      const NOMAD::Eval_Point & x         ,
+                                                      bool                      is_sol    ,
+                                                      bool                      display_bimv ) const
 {
-	// if is_sol == true: save the solution file
-	//              else: update the history file 
-	bool          failed = false;
-	std::ofstream fout;
-	
-	if ( is_sol )
-		fout.open ( file_name.c_str() );
-	else
-		fout.open ( file_name.c_str() , std::ios::app );
-	
-	if ( !fout.fail() ) {
-		
-		fout.setf      ( std::ios::fixed             );
-		fout.precision ( NOMAD::DISPLAY_PRECISION_BB );
-		
-		// solution display:
-		if ( is_sol )
-		{
-			if ( _p.get_bb_input_include_seed() )
-				fout << _p.get_seed() << std::endl;
-			if ( _p.get_bb_input_include_tag() )
-				fout << x.get_tag() << std::endl;
-			x.Point::display ( fout , "\n" , -1 , -1 );
-			if (display_bimv)
-				fout << std::endl << "warning: best infeasible solution (min. violation)";
-			fout << std::endl;
-		}
-		
-		// history display:
-		else {
-			x.Point::display ( fout , " " , -1 , -1 );
-			fout << " ";
-			x.get_bb_outputs().Point::display ( fout , " " , -1 , -1 );
-			fout << std::endl;
-		}
-		
-		if ( fout.fail() )
-			failed = true;
-	}
-	else
-		failed = true;
-	
-	fout.close();
-	
-	if ( failed && _p.out().get_gen_dd() != NOMAD::NO_DISPLAY &&  _p.out().get_gen_dd() != NOMAD::MINIMAL_DISPLAY)
-		_p.out() << std::endl
-		<< "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
-		<< "): could not "
-		<< ( is_sol ? "save the current solution" :
-			"update the history" )
-		<< " in \'"
-		<< file_name << "\'" << std::endl << std::endl;
+    // if is_sol == true: save the solution file
+    //              else: update the history file
+    bool          failed = false;
+    std::ofstream fout;
+    
+    if ( is_sol )
+        fout.open ( file_name.c_str() );
+    else
+        fout.open ( file_name.c_str() , std::ios::app );
+    
+    if ( !fout.fail() )
+    {
+        
+        fout.setf      ( std::ios::fixed             );
+        fout.precision ( NOMAD::DISPLAY_PRECISION_BB );
+        
+        // solution display:
+        if ( is_sol )
+        {
+            if ( _p.get_bb_input_include_seed() )
+                fout << _p.get_seed() << std::endl;
+            if ( _p.get_bb_input_include_tag() )
+                fout << x.get_tag() << std::endl;
+            x.Point::display ( fout , "\n" , -1 , -1 );
+            if (display_bimv)
+                fout << std::endl << "warning: best infeasible solution (min. violation)";
+            fout << std::endl;
+        }
+        
+        // history display:
+        else
+        {
+            x.Point::display ( fout , " " , -1 , -1 );
+            fout << " ";
+            x.get_bb_outputs().Point::display ( fout , " " , -1 , -1 );
+            fout << std::endl;
+        }
+        
+        if ( fout.fail() )
+            failed = true;
+    }
+    else
+        failed = true;
+    
+    fout.close();
+    
+    if ( failed && _p.out().get_gen_dd() != NOMAD::NO_DISPLAY &&  _p.out().get_gen_dd() != NOMAD::MINIMAL_DISPLAY)
+        _p.out() << std::endl
+        << "Warning (" << "Evaluator_Control.cpp" << ", " << __LINE__
+        << "): could not "
+        << ( is_sol ? "save the current solution" :
+            "update the history" )
+        << " in \'"
+        << file_name << "\'" << std::endl << std::endl;
 }
 
 
 /*---------------------------------------------------------*/
 /*             display evaluation result (private)         */
 /*---------------------------------------------------------*/
-void NOMAD::Evaluator_Control::display_eval_result
-( const NOMAD::Eval_Point & x                ,
- NOMAD::dd_type            display_degree   ,
- NOMAD::search_type        search           ,
- NOMAD::success_type       one_eval_success ,
- NOMAD::success_type       success            ) const
+void NOMAD::Evaluator_Control::display_eval_result ( const NOMAD::Eval_Point & x                ,
+                                                    NOMAD::dd_type            display_degree   ,
+                                                    NOMAD::search_type        search           ,
+                                                    NOMAD::success_type       one_eval_success ,
+                                                    NOMAD::success_type       success            ) const
 {
-	const NOMAD::Display & out = _p.out();
-	int cur_bbe;
-	
-	// surrogate evaluation:
-	if ( x.get_eval_type() == NOMAD::SGTE ) 
-	{
-		if ( display_degree == NOMAD::FULL_DISPLAY )
-		{
-			out << std::endl << "point #" << x.get_tag() << " sgte eval: ";
-			if ( x.is_eval_ok() )
-			{
-				out << "h=";
-				if ( x.get_h().is_defined() )
-					out << x.get_h();
-				else
-					out << "inf (extr. barrier)";
-				out << " f=" << x.get_f();
-			}
-			else
-				out << "failed";
-			out << std::endl;
-		}
-		if ( !_p.get_opt_only_sgte() )
-			return;
-		
-		cur_bbe = _stats.get_sgte_eval();
-	}
-	else
-		cur_bbe = _stats.get_eval();
-	
-	const std::string & stats_file_name = _p.get_stats_file_name();
-	bool                feas_x          = x.is_feasible ( _p.get_h_min() );
-	
-	// update the history file:
-	// (contains surrogate evaluations if opt_only_sgte==true)
-	const std::string & his_file = _p.get_history_file();
-	if ( !his_file.empty() && cur_bbe > _last_history_bbe) 
-	{
-		write_sol_or_his_file ( _p.get_problem_dir() + his_file , x , false );
-		_last_history_bbe = cur_bbe;
-	}
-	
-	// success displays:
-	if ( one_eval_success != NOMAD::UNSUCCESSFUL &&
-		one_eval_success >= success )
-	{
-		
-		// save the current solution in file:
-		write_solution_file ( x );
-		
-		bool ds_ok = ( cur_bbe > _last_stats_bbe)	&&      
-					( _p.get_display_all_eval()		||
-					( one_eval_success == NOMAD::FULL_SUCCESS && feas_x ) );
-		
-		// normal display and minimal:
-		if ( (display_degree == NOMAD::NORMAL_DISPLAY || display_degree == NOMAD::MINIMAL_DISPLAY ) && ds_ok )
-			display_stats ( false , out , _p.get_display_stats() , &x , feas_x , NULL );
-		// detailed display:
-		else if ( display_degree == NOMAD::FULL_DISPLAY )
-			out << std::endl << search << " " << one_eval_success
-			<< " point " << x;
-		
-		// stats file:
-		if ( ds_ok && !stats_file_name.empty() )
-			stats_file ( stats_file_name , &x , feas_x , NULL );
-		
-	}
-	else
-	{
-		
-		if ( display_degree == NOMAD::FULL_DISPLAY ) 
-		{
-			out << search << " " << one_eval_success
-			<< " point #" << x.get_tag();
-			if ( x.is_eval_ok() )
-				out << " [ h=" << x.get_h()
-				<< " f=" << x.get_f() << " ]" << std::endl;
-			else if (x.check_rejected())
-				out << ": evaluation rejected by user (this may alter convergence properties!)" << std::endl;
-			else
-				out << ": evaluation failed (you may need to check the source of the problem)." << std::endl;
-		}
-		
-		if ( _p.get_display_all_eval() && cur_bbe > _last_stats_bbe  ) 
-		{
-			
-			if ( display_degree == NOMAD::NORMAL_DISPLAY || display_degree == NOMAD::MINIMAL_DISPLAY )
-				display_stats ( false , out , _p.get_display_stats() , &x , feas_x , NULL );
-			
-			if ( !stats_file_name.empty() )
-				stats_file ( stats_file_name , &x , feas_x , NULL );
-		}
-	}
+    const NOMAD::Display & out = _p.out();
+    int cur_bbe;
+    
+    // surrogate evaluation:
+    if ( x.get_eval_type() == NOMAD::SGTE )
+    {
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
+            out << std::endl << "point #" << x.get_tag() << " sgte eval: ";
+            if ( x.is_eval_ok() )
+            {
+                out << "h=";
+                if ( x.get_h().is_defined() )
+                    out << x.get_h();
+                else
+                    out << "inf (extr. barrier)";
+                out << " f=" << x.get_f();
+            }
+            else
+                out << "failed";
+            out << std::endl;
+        }
+        if ( !_p.get_opt_only_sgte() )
+            return;
+        
+        cur_bbe = _stats.get_sgte_eval();
+    }
+    else
+        cur_bbe = _stats.get_eval();
+    
+    const std::string & stats_file_name = _p.get_stats_file_name();
+    bool                feas_x          = x.is_feasible ( _p.get_h_min() );
+    
+    // update the history file:
+    // (contains surrogate evaluations if opt_only_sgte==true)
+    const std::string & his_file = _p.get_history_file();
+    if ( !his_file.empty() && cur_bbe > _last_history_bbe)
+    {
+        write_sol_or_his_file ( _p.get_problem_dir() + his_file , x , false );
+        _last_history_bbe = cur_bbe;
+    }
+    
+    // success displays:
+    if ( one_eval_success != NOMAD::UNSUCCESSFUL &&
+        one_eval_success >= success )
+    {
+        
+        // save the current solution in file:
+        write_solution_file ( x );
+        
+        bool ds_ok = ( cur_bbe > _last_stats_bbe)    &&
+        ( _p.get_display_all_eval()        ||
+         ( one_eval_success == NOMAD::FULL_SUCCESS && feas_x ) );
+        
+        // normal display and minimal:
+        if ( (display_degree == NOMAD::NORMAL_DISPLAY || display_degree == NOMAD::MINIMAL_DISPLAY ) && ds_ok )
+            display_stats ( false , out , _p.get_display_stats() , &x , feas_x , NULL );
+        // detailed display:
+        else if ( display_degree == NOMAD::FULL_DISPLAY )
+            out << std::endl << search << " " << one_eval_success
+            << " point " << x;
+        
+        // stats file:
+        if ( ds_ok && !stats_file_name.empty() )
+            stats_file ( stats_file_name , &x , feas_x , NULL );
+        
+    }
+    else
+    {
+        
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
+            out << search << " " << one_eval_success
+            << " point #" << x.get_tag();
+            if ( x.is_eval_ok() )
+                out << " [ h=" << x.get_h()
+                << " f=" << x.get_f() << " ]" << std::endl;
+            else if (x.check_rejected())
+                out << ": evaluation rejected by user (this may alter convergence properties!)" << std::endl;
+            else
+                out << ": evaluation failed (you may need to check the source of the problem)." << std::endl;
+        }
+        
+        if ( _p.get_display_all_eval() && cur_bbe > _last_stats_bbe  )
+        {
+            
+            if ( display_degree == NOMAD::NORMAL_DISPLAY || display_degree == NOMAD::MINIMAL_DISPLAY )
+                display_stats ( false , out , _p.get_display_stats() , &x , feas_x , NULL );
+            
+            if ( !stats_file_name.empty() )
+                stats_file ( stats_file_name , &x , feas_x , NULL );
+        }
+    }
 }
 
 
@@ -937,14 +942,13 @@ void NOMAD::Evaluator_Control::display_eval_result
 /* . return true if the point is in cache    */
 /* . private method                          */
 /*-------------------------------------------*/
-bool NOMAD::Evaluator_Control::cache_check
-( const NOMAD::Eval_Point *& x              ,
-  NOMAD::Barrier           & true_barrier   ,
-  NOMAD::Barrier           & sgte_barrier   ,
-  NOMAD::Pareto_Front      * pareto_front   ,
-  bool                     & count_eval     ,
-  const NOMAD::Double      & h_max          ,
-  NOMAD::dd_type             display_degree   ) const
+bool NOMAD::Evaluator_Control::cache_check ( const NOMAD::Eval_Point *& x              ,
+                                            NOMAD::Barrier           & true_barrier   ,
+                                            NOMAD::Barrier           & sgte_barrier   ,
+                                            NOMAD::Pareto_Front      * pareto_front   ,
+                                            bool                     & count_eval     ,
+                                            const NOMAD::Double      & h_max          ,
+                                            NOMAD::dd_type             display_degree   ) const
 {
     NOMAD::eval_type          x_eval_type = x->get_eval_type();
     const NOMAD::Eval_Point * cache_x     = NULL;
@@ -980,6 +984,8 @@ bool NOMAD::Evaluator_Control::cache_check
             
             modifiable_cache_x->set_signature          ( x->get_signature         () );
             modifiable_cache_x->set_direction          ( x->get_direction         () );
+            
+            // The point in cache is updated for the poll center to correspond to the new poll center of x (important for poll reduction)
             modifiable_cache_x->set_poll_center        ( x->get_poll_center       () );
             modifiable_cache_x->set_poll_center_type   ( x->get_poll_center_type  () );
             modifiable_cache_x->set_user_eval_priority ( x->get_user_eval_priority() );
@@ -1003,9 +1009,9 @@ bool NOMAD::Evaluator_Control::cache_check
           cache_x->get_h().is_defined()            &&
           cache_x->get_h() < h_max                    ) ) )
     {
-             x       = cache_x;
-             cache_x = NULL;
-         }
+        x       = cache_x;
+        cache_x = NULL;
+    }
     
     // point in cache:
     if ( cache_x )
@@ -1046,235 +1052,240 @@ bool NOMAD::Evaluator_Control::cache_check
 /*                 eval a point (private)             */
 /*----------------------------------------------------*/
 void NOMAD::Evaluator_Control::eval_point ( NOMAD::Eval_Point       & x            ,
-					    NOMAD::Barrier          & true_barrier ,
-					    NOMAD::Barrier          & sgte_barrier ,
-					    NOMAD::Pareto_Front     * pareto_front ,
-					    bool                    & count_eval   ,
-					    bool                    & stop         ,
-					    NOMAD::stop_type        & stop_reason  ,
-					    const NOMAD::Double     & h_max          )
+                                           NOMAD::Barrier          & true_barrier ,
+                                           NOMAD::Barrier          & sgte_barrier ,
+                                           NOMAD::Pareto_Front     * pareto_front ,
+                                           bool                    & count_eval   ,
+                                           bool                    & stop         ,
+                                           NOMAD::stop_type        & stop_reason  ,
+                                           const NOMAD::Double     & h_max          )
 {
-	int max_bb_eval   = _p.get_max_bb_eval();
-	int max_sgte_eval = _p.get_max_sgte_eval();
-	
-	// blackbox or surrogate evaluations are allowed:
-	if ( ( x.get_eval_type() == NOMAD::TRUTH && max_bb_eval   != 0 ) ||
-		( x.get_eval_type() == NOMAD::SGTE  && max_sgte_eval != 0 )    ) 
-	{
-		
-		NOMAD::Eval_Point * eval_x = &NOMAD::Cache::get_modifiable_point ( x );
-		
-		// get the signature:
-		NOMAD::Signature * signature = x.get_signature();
-		if ( !signature )
-			throw NOMAD::Exception ( "Evaluator_Control.cpp" , __LINE__ ,
-									"Evaluator_Control::eval_point(): the point has no signature" );
-		
-		// evaluation of the point:
-		// ------------------------
-		bool eval_ok = true;
+    int max_bb_eval   = _p.get_max_bb_eval();
+    int max_sgte_eval = _p.get_max_sgte_eval();
+    
+    // blackbox or surrogate evaluations are allowed:
+    if ( ( x.get_eval_type() == NOMAD::TRUTH && max_bb_eval   != 0 ) ||
+        ( x.get_eval_type() == NOMAD::SGTE  && max_sgte_eval != 0 )    )
+    {
+        
+        NOMAD::Eval_Point * eval_x = &NOMAD::Cache::get_modifiable_point ( x );
+        
+        // get the signature:
+        NOMAD::Signature * signature = x.get_signature();
+        if ( !signature )
+            throw NOMAD::Exception ( "Evaluator_Control.cpp" , __LINE__ ,
+                                    "Evaluator_Control::eval_point(): the point has no signature" );
+        
+        // evaluation of the point:
+        // ------------------------
+        bool eval_ok = true;
         
         NOMAD::Evaluator_Control::_force_evaluation_failure=false;
-		
-		{
-			// 1. scaling:
-			bool do_scaling = signature->get_scaling().is_defined();
-			if ( do_scaling )
-				eval_x->scale();
-			
-			// 2.1. evaluation:
-			try 
-			{
-				eval_ok = _ev->eval_x ( *eval_x , h_max , count_eval );
-
-			}
+        
+        {
+            // 1. scaling:
+            bool do_scaling = signature->get_scaling().is_defined();
+            if ( do_scaling )
+                eval_x->scale();
+            
+            // 2.1. evaluation:
+            try
+            {
+                eval_ok = _ev->eval_x ( *eval_x , h_max , count_eval );
+                
+            }
             catch ( exception & e )
             {
                 throw NOMAD::Exception ( "Evaluator_control.cpp" , __LINE__ , e.what() );
             }
             
-			
-			// 2.2. check the nan's:
-			if ( eval_ok && eval_x->check_nan() )
-				eval_ok = false;
+            
+            // 2.2. check the nan's:
+            if ( eval_ok && eval_x->check_nan() )
+                eval_ok = false;
             
             if ( _force_evaluation_failure )
                 eval_ok = false;
-			
-			// 3. unscaling:
-			if ( do_scaling )
-				eval_x->unscale();
-		}
-		
-		if ( eval_ok ) 
-		{
-			
-			eval_x->set_eval_status ( NOMAD::EVAL_OK );
-			
-			// set_f, set_h and set_EB_ok:
-			_ev->compute_f ( *eval_x );
-			_ev->compute_h ( *eval_x );
-			
-		}
-		else
-		{
-			eval_x->set_eval_status ( NOMAD::EVAL_FAIL );
-			_stats.add_failed_eval();
-		}
-		
-		// insertion in cache even if is_eval_ok == false:
-		if ( !x.is_in_cache() )
-		{
-			
-			int size_before , size_after;
-			
-			if ( x.get_eval_type() == NOMAD::SGTE ) {
-				size_before = _sgte_cache->size();
-				_sgte_cache->insert(x);
-				size_after  = _sgte_cache->size();
-			}
-			else {
-				size_before = _cache->size();
-				_cache->insert(x);
-				size_after  = _cache->size();
-			}
-			
-			if ( size_after == size_before )
-				x.set_in_cache ( false );
-		}
-		
-	}
-	
+            
+            // 3. unscaling:
+            if ( do_scaling )
+                eval_x->unscale();
+        }
+        
+        if ( eval_ok )
+        {
+            
+            eval_x->set_eval_status ( NOMAD::EVAL_OK );
+            
+            // set_f, set_h and set_EB_ok:
+            _ev->compute_f ( *eval_x );
+            _ev->compute_h ( *eval_x );
+            
+        }
+        else
+        {
+            eval_x->set_eval_status ( NOMAD::EVAL_FAIL );
+            _stats.add_failed_eval();
+        }
+        
+        // insertion in cache even if is_eval_ok == false:
+        if ( !x.is_in_cache() )
+        {
+            
+            int size_before , size_after;
+            
+            if ( x.get_eval_type() == NOMAD::SGTE )
+            {
+                size_before = _sgte_cache->size();
+                _sgte_cache->insert(x);
+                size_after  = _sgte_cache->size();
+            }
+            else
+            {
+                
+                size_before = _cache->size();
+                _cache->insert(x);
+                size_after  = _cache->size();
+            }
+            
+            if ( size_after == size_before )
+                x.set_in_cache ( false );
+        }
+        
+    }
+    
 }
 
 
 /*----------------------------------------------------*/
 /*                 eval points in a list (private)    */
 /*----------------------------------------------------*/
-void NOMAD::Evaluator_Control::eval_points ( std::list<NOMAD::Eval_Point *>	& list_eval		,
-											NOMAD::Barrier					& true_barrier	,
-											NOMAD::Barrier					& sgte_barrier	,
-											NOMAD::Pareto_Front				* pareto_front	,
-											std::list<bool>					& count_list_eval,
-											bool							& stop			,
-											NOMAD::stop_type				& stop_reason	,
-											const NOMAD::Double				& h_max          )
+void NOMAD::Evaluator_Control::eval_points ( std::list<NOMAD::Eval_Point *>     & list_eval         ,
+                                            NOMAD::Barrier                      & true_barrier      ,
+                                            NOMAD::Barrier                      & sgte_barrier      ,
+                                            NOMAD::Pareto_Front                 * pareto_front      ,
+                                            std::list<bool>                     & count_list_eval   ,
+                                            bool                                & stop              ,
+                                            NOMAD::stop_type                    & stop_reason       ,
+                                            const NOMAD::Double                 & h_max             )
 {
-	int max_bb_eval   = _p.get_max_bb_eval();
-	int max_sgte_eval = _p.get_max_sgte_eval();
-	
-	std::list<NOMAD::Eval_Point*>::iterator it_begin=list_eval.begin();
-	
-	if ( ( (*it_begin)->get_eval_type() == NOMAD::TRUTH && max_bb_eval   != 0 ) ||
-		( (*it_begin)->get_eval_type() == NOMAD::SGTE  && max_sgte_eval != 0 )    ) 
-	{
-		
-		// 1. Pre-evaluation tests and scaling
-		for ( std::list<NOMAD::Eval_Point*>::iterator it=it_begin;it!=list_eval.end();++it)
-		{
-			// get the signature:
-			NOMAD::Signature * signature = (*it)->get_signature();
-			if ( !signature )
-				throw NOMAD::Exception ( "Evaluator_Control.cpp" , __LINE__ ,
-										"Evaluator_Control::eval_points(): the point has no signature" );
-			
-			// Scaling before evaluation of the points:
-			bool do_scaling = signature->get_scaling().is_defined();
-			if ( do_scaling )
-				(*it)->scale();
-			
-		}
-		
-		// 2. list evaluation:
-		bool eval_list_ok = true;
+    int max_bb_eval   = _p.get_max_bb_eval();
+    int max_sgte_eval = _p.get_max_sgte_eval();
+    
+    std::list<NOMAD::Eval_Point*>::iterator it_begin=list_eval.begin();
+    
+    // blackbox or surrogate evaluations are allowed:
+    if ( ( (*it_begin)->get_eval_type() == NOMAD::TRUTH && max_bb_eval   != 0 ) ||
+        ( (*it_begin)->get_eval_type() == NOMAD::SGTE  && max_sgte_eval != 0 )    )
+    {
+        
+        // 1. Pre-evaluation tests and scaling
+        for ( std::list<NOMAD::Eval_Point*>::iterator it=it_begin;it!=list_eval.end();++it)
+        {
+            // get the signature:
+            NOMAD::Signature * signature = (*it)->get_signature();
+            if ( !signature )
+                throw NOMAD::Exception ( "Evaluator_Control.cpp" , __LINE__ ,
+                                        "Evaluator_Control::eval_points(): the point has no signature" );
+            
+            // Scaling before evaluation of the points:
+            bool do_scaling = signature->get_scaling().is_defined();
+            if ( do_scaling )
+                (*it)->scale();
+            
+        }
+        
+        // 2. list evaluation:
+        bool eval_list_ok = true;
+        
         NOMAD::Evaluator_Control::_force_evaluation_failure=false;
         
-		try
-		{
-			eval_list_ok=_ev->eval_x ( list_eval , h_max,count_list_eval );
-		}
+        try
+        {
+            eval_list_ok=_ev->eval_x ( list_eval , h_max,count_list_eval );
+        }
         catch ( exception & e )
         {
             throw NOMAD::Exception ( "Evaluator_control.cpp" , __LINE__ , e.what() );
         }
-		
+        
         if ( _force_evaluation_failure )
             eval_list_ok = false;
-
         
-		// One block of evaluations is counted
-		if ( eval_list_ok )
-			_stats.add_one_block_eval();
         
-
-		
-		// 3. Post list evaluation checks and operation
-		std::list<bool>::iterator it_count=count_list_eval.begin();
-		for ( std::list<NOMAD::Eval_Point*>::iterator it=it_begin;it!=list_eval.end();++it,++it_count)
-		{
-			bool eval_ok=true;
-			bool eval_rejected=false;
-			
-			// 3.1. check the nan's and list evaluation failure:
-			if ( !eval_list_ok || (*it)->check_nan() )
-				eval_ok = false;
-			
-			if ((*it)->check_rejected())
-			{
-				eval_rejected=true;
-				eval_ok=false; 
-			}
-			
-			// 3.2 unscaling:
-			if ( (*it)->get_signature()->get_scaling().is_defined() )
-				(*it)->unscale();
-			
-			
-			if ( eval_ok && (*it)->get_eval_status()!=NOMAD::EVAL_FAIL )
-			{
-				(*it)->set_eval_status ( NOMAD::EVAL_OK );
-				
-				// set_f, set_h and set_EB_ok:
-				_ev->compute_f ( *(*it) );
-				_ev->compute_h ( *(*it));
-				
-			}
-			else if (!eval_rejected) 
-			{
-				(*it)->set_eval_status ( NOMAD::EVAL_FAIL );
-				_stats.add_failed_eval();
-			} // Do nothing if eval has been rejected
-			
-			// insertion in cache even if is_eval_ok == false. Exception: a point that has been rejected by user is not put in the cache.
-			if ( !(*it)->is_in_cache() && !eval_rejected )
-			{
-				
-				int size_before , size_after;
-				
-				if ( (*it)->get_eval_type() == NOMAD::SGTE )
-				{
-					size_before = _sgte_cache->size();
-					_sgte_cache->insert(*(*it));
-					size_after  = _sgte_cache->size();
-				}
-				else 
-				{
-					size_before = _cache->size();
-					_cache->insert(*(*it));
-					size_after  = _cache->size();
-				}
-				
-				if ( size_after == size_before )
-					(*it)->set_in_cache ( false );
-			}
-
-			
-			// count the output stats (STAT_SUM and STAT_AVG):
-			if ( (_p.check_stat_sum() || _p.check_stat_avg()) && !eval_rejected) 
-				count_output_stats(*(*it));
-			
-		}
-	}
+        // One block of evaluations is counted
+        if ( eval_list_ok )
+            _stats.add_one_block_eval();
+        
+        
+        
+        // 3. Post list evaluation checks and operation
+        std::list<bool>::iterator it_count=count_list_eval.begin();
+        for ( std::list<NOMAD::Eval_Point*>::iterator it=it_begin;it!=list_eval.end();++it,++it_count)
+        {
+            bool eval_ok=true;
+            bool eval_rejected=false;
+            
+            // 3.1. check the nan's and list evaluation failure:
+            if ( !eval_list_ok || (*it)->check_nan() )
+                eval_ok = false;
+            
+            if ((*it)->check_rejected())
+            {
+                eval_rejected=true;
+                eval_ok=false;
+            }
+            
+            // 3.2 unscaling:
+            if ( (*it)->get_signature()->get_scaling().is_defined() )
+                (*it)->unscale();
+            
+            // Check that everything is ok and also that the user did not set the evaluation as failed
+            if ( eval_ok && (*it)->get_eval_status()!=NOMAD::EVAL_FAIL )
+            {
+                (*it)->set_eval_status ( NOMAD::EVAL_OK );
+                
+                // set_f, set_h and set_EB_ok:
+                _ev->compute_f ( *(*it) );
+                _ev->compute_h ( *(*it));
+                
+            }
+            else if (!eval_rejected)
+            {
+                (*it)->set_eval_status ( NOMAD::EVAL_FAIL );
+                _stats.add_failed_eval();
+            } // Do nothing if eval has been rejected
+            
+            // insertion in cache even if is_eval_ok == false. Exception: a point that has been rejected by user is not put in the cache.
+            if ( !(*it)->is_in_cache() && !eval_rejected )
+            {
+                
+                int size_before , size_after;
+                
+                if ( (*it)->get_eval_type() == NOMAD::SGTE )
+                {
+                    size_before = _sgte_cache->size();
+                    _sgte_cache->insert(*(*it));
+                    size_after  = _sgte_cache->size();
+                }
+                else
+                {
+                    size_before = _cache->size();
+                    _cache->insert(*(*it));
+                    size_after  = _cache->size();
+                }
+                
+                if ( size_after == size_before )
+                    (*it)->set_in_cache ( false );
+            }
+            
+            
+            // count the output stats (STAT_SUM and STAT_AVG):
+            if ( (_p.check_stat_sum() || _p.check_stat_avg()) && !eval_rejected)
+                count_output_stats(*(*it));
+            
+        }
+    }
 }
 
 
@@ -1284,221 +1295,228 @@ void NOMAD::Evaluator_Control::eval_points ( std::list<NOMAD::Eval_Point *>	& li
 /*-------------------------------------------*/
 void NOMAD::Evaluator_Control::check_stopping_criteria
 ( NOMAD::search_type        search      ,
-  bool                      count_eval  ,
-  const NOMAD::Eval_Point & x           ,
-  bool                    & stop        ,
-  NOMAD::stop_type        & stop_reason   ) const
+ bool                      count_eval  ,
+ const NOMAD::Eval_Point & x           ,
+ bool                    & stop        ,
+ NOMAD::stop_type        & stop_reason   ) const
 {
-	// check the time:
-	if ( !stop                 &&
-		_p.get_max_time() > 0 &&
-		_stats.get_real_time() >= _p.get_max_time() )
-	{
-		stop        = true;
-		stop_reason = NOMAD::MAX_TIME_REACHED;
-	}
-	
-	// count an evaluation or a simulated blackbox evaluation:
-	if ( x.get_eval_type() == NOMAD::TRUTH ) 
-	{
-		_stats.add_eval();
-		if ( count_eval && !x.get_current_run() )
-			_stats.add_sim_bb_eval();
-	}
-	
-	
-	// check STAT_SUM_TARGET:
-	if ( !stop	&& 
-		(_p.check_stat_sum() || _p.check_stat_avg())) 
-	{
-		
-		NOMAD::Double sum_target = _p.get_stat_sum_target();
-		if ( sum_target.is_defined() ) 
-		{
-			NOMAD::Double sum = _stats.get_stat_sum();
-			if ( sum.is_defined() && sum >= sum_target ) 
-			{
-				stop        = true;
-				stop_reason = NOMAD::STAT_SUM_TARGET_REACHED;
-			}
-		}
-	}
-	
-	// check the number of blackbox evaluations:
-	if ( !stop )
-	{
-		int max_bb_eval   = _p.get_max_bb_eval();
-		int max_sgte_eval = _p.get_max_sgte_eval();
-		if ( max_bb_eval > 0 && _stats.get_bb_eval() >= max_bb_eval ) 
-		{
-			stop        = true;
-			stop_reason = NOMAD::MAX_BB_EVAL_REACHED;
-		}
-		if ( max_sgte_eval > 0 && _stats.get_sgte_eval() >= max_sgte_eval )
-		{
-			stop        = true;
-			stop_reason = NOMAD::MAX_SGTE_EVAL_REACHED;
-		}
-	} 
-
-	// check the stopping condition MAX_EVAL:
-	if ( !stop                 &&
-		_p.get_max_eval() > 0 &&
-		_stats.get_eval() >= _p.get_max_eval() ) 
-	{
-		stop        = true;
-		stop_reason = NOMAD::MAX_EVAL_REACHED;
-	}
-	
-	// check the stopping condition MAX_SIM_BB_EVAL:
-	if ( !stop                         &&
-		_p.get_max_sim_bb_eval() >  0 &&
-		_stats.get_sim_bb_eval() >= _p.get_max_sim_bb_eval() )
-	{
-		stop        = true;
-		stop_reason = NOMAD::MAX_SIM_BB_EVAL_REACHED;
-	}
-	
-	// check the stopping conditions F_TARGET and FEAS_REACHED
-	// (for phase one: the evaluations must stop if all EB
-	//  constraints are satisfied, but some PB constraints can
-	//  be violated)
-	if ( !stop          &&
-		x.is_eval_ok() &&
-		( _p.get_opt_only_sgte() ||
-		 x.get_eval_type() == NOMAD::TRUTH ) )
-	{
-		
-		bool feasible = x.is_feasible ( _p.get_h_min() );
-		
-		// check FEAS_REACHED:
-		if ( feasible && _p.get_stop_if_feasible() ) 
-		{	  
-			stop        = true;
-			stop_reason = NOMAD::FEAS_REACHED;
-		}
-		
-		// check F_TARGET:
-		{
-			const NOMAD::Point           & f_target       = _p.get_f_target();
-			const std::list<int>         & index_obj      = _p.get_index_obj();
-			std::list<int>::const_iterator index_obj_end  = index_obj.end();
-			bool                           check_f_target = f_target.is_defined();
-			int                            nb_to_check    = (check_f_target) ?
-			f_target.nb_defined() : 0;
-			
-			if ( check_f_target && ( feasible || search == NOMAD::LH_SEARCH_P1 ) ) 
-			{
-				const NOMAD::Point & bbo = x.get_bb_outputs();
-				bool                 chk = true;
-				int                  k   = 0;
-				int                  cnt = 0;
-				for ( std::list<int>::const_iterator it = index_obj.begin();
-					 it != index_obj_end ; ++it , ++k )
-				{
-					if ( bbo[*it].is_defined() && f_target[k].is_defined() )
-					{
-						if ( f_target[k] < bbo[*it] ) 
-						{
-							chk = false;
-							break;
-						}
-						cnt++;
-					}
-				}
-				
-				if ( chk && cnt == nb_to_check ) 
-				{
-					stop        = true;
-					stop_reason = NOMAD::F_TARGET_REACHED;
-				}
-			}
-		}
-	}
+    // check the time:
+    if ( !stop                 &&
+        _p.get_max_time() > 0 &&
+        _stats.get_real_time() >= _p.get_max_time() )
+    {
+        stop        = true;
+        stop_reason = NOMAD::MAX_TIME_REACHED;
+    }
+    
+    // count an evaluation or a simulated blackbox evaluation:
+    if ( x.get_eval_type() == NOMAD::TRUTH )
+    {
+        _stats.add_eval();
+        if ( count_eval && !x.get_current_run() )
+            _stats.add_sim_bb_eval();
+    }
+    
+    
+    // check STAT_SUM_TARGET:
+    if ( !stop    &&
+        (_p.check_stat_sum() || _p.check_stat_avg()))
+    {
+        
+        NOMAD::Double sum_target = _p.get_stat_sum_target();
+        if ( sum_target.is_defined() )
+        {
+            NOMAD::Double sum = _stats.get_stat_sum();
+            if ( sum.is_defined() && sum >= sum_target )
+            {
+                stop        = true;
+                stop_reason = NOMAD::STAT_SUM_TARGET_REACHED;
+            }
+        }
+    }
+    
+    // check the number of blackbox evaluations:
+    if ( !stop )
+    {
+        int max_bb_eval   = _p.get_max_bb_eval();
+        int max_sgte_eval = _p.get_max_sgte_eval();
+        if ( max_bb_eval > 0 && _stats.get_bb_eval() >= max_bb_eval )
+        {
+            stop        = true;
+            stop_reason = NOMAD::MAX_BB_EVAL_REACHED;
+        }
+        if ( max_sgte_eval > 0 && _stats.get_sgte_eval() >= max_sgte_eval )
+        {
+            stop        = true;
+            stop_reason = NOMAD::MAX_SGTE_EVAL_REACHED;
+        }
+    }
+    
+    // check the stopping condition MAX_EVAL:
+    if ( !stop                 &&
+        _p.get_max_eval() > 0 &&
+        _stats.get_eval() >= _p.get_max_eval() )
+    {
+        stop        = true;
+        stop_reason = NOMAD::MAX_EVAL_REACHED;
+    }
+    
+    // check the stopping condition MAX_SIM_BB_EVAL:
+    if ( !stop                         &&
+        _p.get_max_sim_bb_eval() >  0 &&
+        _stats.get_sim_bb_eval() >= _p.get_max_sim_bb_eval() )
+    {
+        stop        = true;
+        stop_reason = NOMAD::MAX_SIM_BB_EVAL_REACHED;
+    }
+    
+    // check the stopping conditions F_TARGET and FEAS_REACHED
+    // (for phase one: the evaluations must stop if all EB
+    //  constraints are satisfied, but some PB constraints can
+    //  be violated)
+    if ( !stop          &&
+        x.is_eval_ok() &&
+        ( _p.get_opt_only_sgte() ||
+         x.get_eval_type() == NOMAD::TRUTH ) )
+    {
+        
+        bool feasible = x.is_feasible ( _p.get_h_min() );
+        
+        // check FEAS_REACHED:
+        if ( feasible && _p.get_stop_if_feasible() )
+        {
+            stop        = true;
+            stop_reason = NOMAD::FEAS_REACHED;
+        }
+        
+        // check F_TARGET:
+        {
+            const NOMAD::Point           & f_target       = _p.get_f_target();
+            const std::list<int>         & index_obj      = _p.get_index_obj();
+            std::list<int>::const_iterator index_obj_end  = index_obj.end();
+            bool                           check_f_target = f_target.is_defined();
+            int                            nb_to_check    = (check_f_target) ?
+            f_target.nb_defined() : 0;
+            
+            if ( check_f_target && ( feasible || search == NOMAD::LH_SEARCH_P1 ) )
+            {
+                const NOMAD::Point & bbo = x.get_bb_outputs();
+                bool                 chk = true;
+                int                  k   = 0;
+                int                  cnt = 0;
+                for ( std::list<int>::const_iterator it = index_obj.begin();
+                     it != index_obj_end ; ++it , ++k )
+                {
+                    if ( bbo[*it].is_defined() && f_target[k].is_defined() )
+                    {
+                        if ( f_target[k] < bbo[*it] )
+                        {
+                            chk = false;
+                            break;
+                        }
+                        cnt++;
+                    }
+                }
+                
+                if ( chk && cnt == nb_to_check )
+                {
+                    stop        = true;
+                    stop_reason = NOMAD::F_TARGET_REACHED;
+                }
+            }
+        }
+    }
 }
 
 /*-------------------------------------------------------*/
 /*  receive an evaluation result from a slave (private)  */
 /*-------------------------------------------------------*/
 #ifdef USE_MPI
-void NOMAD::Evaluator_Control::receive_eval_result
-( NOMAD::search_type    search       ,
-  NOMAD::Eval_Point   * x            ,
-  NOMAD::Barrier      & true_barrier ,
-  NOMAD::Barrier      & sgte_barrier ,
-  NOMAD::Pareto_Front * pareto_front ,
-  int                   slave_rank   ,
-  bool                & stop         ,
-  NOMAD::stop_type    & stop_reason    )
+void NOMAD::Evaluator_Control::receive_eval_result ( NOMAD::search_type    search       ,
+                                                    NOMAD::Eval_Point   * x            ,
+                                                    NOMAD::Barrier      & true_barrier ,
+                                                    NOMAD::Barrier      & sgte_barrier ,
+                                                    NOMAD::Pareto_Front * pareto_front ,
+                                                    int                   slave_rank   ,
+                                                    bool                & stop         ,
+                                                    NOMAD::stop_type    & stop_reason    )
 {
-  bool eval_ok , count_eval;
-
-
-	// receive the evaluation result:
-  _slave->receive_eval_result ( slave_rank , x , eval_ok , count_eval );
-
-  // process the evaluation:
-  if ( eval_ok ) {
-      
-    // set_f, set_h and set_EB_ok:
-    _ev->compute_f ( *x );
-    _ev->compute_h ( *x );
-      
-    // process the evaluated point:
-    process_eval_point ( *x                                    ,
-			 (x->get_eval_type()==NOMAD::TRUTH) ?
-			 true_barrier : sgte_barrier           ,
-			 pareto_front                            );
-  }
-  else
-    _stats.add_failed_eval();
-  
-  // insertion in cache even if !eval_ok:
-  if ( !x->is_in_cache() )
-    ( ( x->get_eval_type() == NOMAD::SGTE ) ?
-      _sgte_cache : _cache)->insert ( *x );
-    
-  // count the bb evaluation:
-  if ( count_eval ) {
-    if ( x->get_eval_type() == NOMAD::SGTE )
-      _stats.add_sgte_eval();
+    bool eval_ok , count_eval;
+    
+    
+    // receive the evaluation result:
+    _slave->receive_eval_result ( slave_rank , x , eval_ok , count_eval );
+    
+    // process the evaluation:
+    if ( eval_ok )
+    {
+        
+        // set_f, set_h and set_EB_ok:
+        _ev->compute_f ( *x );
+        _ev->compute_h ( *x );
+        
+        // process the evaluated point:
+        process_eval_point ( *x                                    ,
+                            (x->get_eval_type()==NOMAD::TRUTH) ?
+                            true_barrier : sgte_barrier           ,
+                            pareto_front                            );
+    }
     else
-      _stats.add_bb_eval();
-  }
-    
-  // count the output stats (STAT_SUM and STAT_AVG):
-  if ( _p.check_stat_sum() || _p.check_stat_avg() ) {
-      
-    count_output_stats ( *x );
-      
-    // check STAT_SUM_TARGET:
-    NOMAD::Double sum_target = _p.get_stat_sum_target();
-    if ( sum_target.is_defined() ) {
-      NOMAD::Double sum = _stats.get_stat_sum();
-      if ( !stop && sum.is_defined() && sum >= sum_target ) {
-	stop        = true;
-	stop_reason = NOMAD::STAT_SUM_TARGET_REACHED;
-      }
-    }
-  }
-
-  // check stopping criteria:
-  if ( !stop ) {
-
-    int max_bb_eval   = _p.get_max_bb_eval();
-    int max_sgte_eval = _p.get_max_sgte_eval();
+        _stats.add_failed_eval();
+    
+    // insertion in cache even if !eval_ok:
+    if ( !x->is_in_cache() )
+        ( ( x->get_eval_type() == NOMAD::SGTE ) ?
+         _sgte_cache : _cache)->insert ( *x );
     
-    if ( max_bb_eval > 0 && _stats.get_bb_eval() >= max_bb_eval ) {
-      stop        = true;
-      stop_reason = NOMAD::MAX_BB_EVAL_REACHED;
+    // count the bb evaluation:
+    if ( count_eval )
+    {
+        if ( x->get_eval_type() == NOMAD::SGTE )
+            _stats.add_sgte_eval();
+        else
+            _stats.add_bb_eval();
     }
-    if ( max_sgte_eval > 0 && _stats.get_sgte_eval() >= max_sgte_eval ) {
-      stop        = true;
-      stop_reason = NOMAD::MAX_SGTE_EVAL_REACHED;
+    
+    // count the output stats (STAT_SUM and STAT_AVG):
+    if ( _p.check_stat_sum() || _p.check_stat_avg() )
+    {
+        
+        count_output_stats ( *x );
+        
+        // check STAT_SUM_TARGET:
+        NOMAD::Double sum_target = _p.get_stat_sum_target();
+        if ( sum_target.is_defined() )
+        {
+            NOMAD::Double sum = _stats.get_stat_sum();
+            if ( !stop && sum.is_defined() && sum >= sum_target )
+            {
+                stop        = true;
+                stop_reason = NOMAD::STAT_SUM_TARGET_REACHED;
+            }
+        }
     }
-  }
-
-  check_stopping_criteria ( search , count_eval , *x , stop , stop_reason );
+    
+    // check stopping criteria:
+    if ( !stop )
+    {
+        
+        int max_bb_eval   = _p.get_max_bb_eval();
+        int max_sgte_eval = _p.get_max_sgte_eval();
+        
+        if ( max_bb_eval > 0 && _stats.get_bb_eval() >= max_bb_eval )
+        {
+            stop        = true;
+            stop_reason = NOMAD::MAX_BB_EVAL_REACHED;
+        }
+        if ( max_sgte_eval > 0 && _stats.get_sgte_eval() >= max_sgte_eval )
+        {
+            stop        = true;
+            stop_reason = NOMAD::MAX_SGTE_EVAL_REACHED;
+        }
+    }
+    
+    check_stopping_criteria ( search , count_eval , *x , stop , stop_reason );
 }
 #endif
 
@@ -1506,100 +1524,99 @@ void NOMAD::Evaluator_Control::receive_eval_result
 /*          wait for evaluations in progress          */
 /*----------------------------------------------------*/
 #ifdef USE_MPI
-void NOMAD::Evaluator_Control::wait_for_evaluations
-( NOMAD::search_type                     search         ,
-  NOMAD::Barrier                       & true_barrier   ,
-  NOMAD::Barrier                       & sgte_barrier   ,
-  NOMAD::Pareto_Front                  * pareto_front   ,
-  bool                                 & stop           ,
-  NOMAD::stop_type                     & stop_reason    ,
-  NOMAD::success_type                  & success        ,
-  std::list<const NOMAD::Eval_Point *> & evaluated_pts    )
-{ 
-	if ( _nb_in_progress == 0 )
-		return;
-	
-	// display degree:
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_display_degree ( search );
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-		out << std::endl
-		<< NOMAD::open_block ( "wait for evaluations" );
-	
-	NOMAD::Barrier     & barrier = ( _p.get_opt_only_sgte() ) ?
-	sgte_barrier : true_barrier;
-	char                 signal;
-	int                  source;
-	NOMAD::Eval_Point  * eval_x;
-	NOMAD::success_type  one_eval_success;
-	
-	while ( _nb_in_progress > 0 ) 
-	{
-		
-		source = NOMAD::Slave::receive_signal ( signal );  
-		eval_x = _eval_in_progress[source];
-		
-		if ( eval_x )
-		{
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out << std::endl << "receive eval point #" << eval_x->get_tag()
-				<< " from slave " << source << std::endl << std::endl;
-			
-			receive_eval_result ( search       ,
-								 eval_x       ,
-								 true_barrier ,
-								 sgte_barrier ,
-								 pareto_front ,
-								 source       ,
-								 stop         ,
-								 stop_reason    );
-			
-			// list of processed points:
-			if ( eval_x->is_in_cache() )
-				evaluated_pts.push_back ( eval_x );
-			
-			// success:
-			one_eval_success = barrier.get_one_eval_succ();
-			success          = barrier.get_success();
-			
-			// asynchronous success count:
-			if ( success == NOMAD::FULL_SUCCESS &&
-				_elop_tag != _slaves_elop_tags[source] )
-				_stats.add_asynchronous_success();
-			
-			// displays:
-			display_eval_result ( *eval_x          ,
-								 display_degree   ,
-								 search           ,
-								 one_eval_success ,
-								 success            );
-			
-			if ( !_eval_in_progress[source]->is_in_cache() )
-				delete _eval_in_progress[source];
-			_eval_in_progress[source] = NULL;
-			_slaves_elop_tags[source] = -1;
-			--_nb_in_progress;
-			
-			// force quit (by pressing ctrl-c):
-			if ( !stop && ( NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit() ) )
-			{
-				stop        = true;
-				stop_reason = NOMAD::CTRL_C;
-				break;
-			}
-			
-			if ( stop && ( stop_reason==NOMAD::ERROR ||
-						  stop_reason==NOMAD::UNKNOWN_STOP_REASON ) )
-				break;
-		}
-		else
-			NOMAD::Slave::send_signal ( NOMAD::WAIT_SIGNAL , source );
-	}
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-		out.close_block();
+void NOMAD::Evaluator_Control::wait_for_evaluations ( NOMAD::search_type                     search         ,
+                                                     NOMAD::Barrier                       & true_barrier   ,
+                                                     NOMAD::Barrier                       & sgte_barrier   ,
+                                                     NOMAD::Pareto_Front                  * pareto_front   ,
+                                                     bool                                 & stop           ,
+                                                     NOMAD::stop_type                     & stop_reason    ,
+                                                     NOMAD::success_type                  & success        ,
+                                                     std::list<const NOMAD::Eval_Point *> & evaluated_pts    )
+{
+    if ( _nb_in_progress == 0 )
+        return;
+    
+    // display degree:
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_display_degree ( search );
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out << std::endl
+        << NOMAD::open_block ( "wait for evaluations" );
+    
+    NOMAD::Barrier     & barrier = ( _p.get_opt_only_sgte() ) ?
+    sgte_barrier : true_barrier;
+    char                 signal;
+    int                  source;
+    NOMAD::Eval_Point  * eval_x;
+    NOMAD::success_type  one_eval_success;
+    
+    while ( _nb_in_progress > 0 )
+    {
+        
+        source = NOMAD::Slave::receive_signal ( signal );
+        eval_x = _eval_in_progress[source];
+        
+        if ( eval_x )
+        {
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << std::endl << "receive eval point #" << eval_x->get_tag()
+                << " from slave " << source << std::endl << std::endl;
+            
+            receive_eval_result ( search       ,
+                                 eval_x       ,
+                                 true_barrier ,
+                                 sgte_barrier ,
+                                 pareto_front ,
+                                 source       ,
+                                 stop         ,
+                                 stop_reason    );
+            
+            // list of processed points:
+            if ( eval_x->is_in_cache() )
+                evaluated_pts.push_back ( eval_x );
+            
+            // success:
+            one_eval_success = barrier.get_one_eval_succ();
+            success          = barrier.get_success();
+            
+            // asynchronous success count:
+            if ( success == NOMAD::FULL_SUCCESS &&
+                _elop_tag != _slaves_elop_tags[source] )
+                _stats.add_asynchronous_success();
+            
+            // displays:
+            display_eval_result ( *eval_x          ,
+                                 display_degree   ,
+                                 search           ,
+                                 one_eval_success ,
+                                 success            );
+            
+            if ( !_eval_in_progress[source]->is_in_cache() )
+                delete _eval_in_progress[source];
+            _eval_in_progress[source] = NULL;
+            _slaves_elop_tags[source] = -1;
+            --_nb_in_progress;
+            
+            // force quit (by pressing ctrl-c):
+            if ( !stop && ( NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit() ) )
+            {
+                stop        = true;
+                stop_reason = NOMAD::CTRL_C;
+                break;
+            }
+            
+            if ( stop && ( stop_reason==NOMAD::ERROR ||
+                          stop_reason==NOMAD::UNKNOWN_STOP_REASON ) )
+                break;
+        }
+        else
+            NOMAD::Slave::send_signal ( NOMAD::WAIT_SIGNAL , source );
+    }
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out.close_block();
 }
 #endif
 
@@ -1608,21 +1625,21 @@ void NOMAD::Evaluator_Control::wait_for_evaluations
 /*  (private)                                                     */
 /*----------------------------------------------------------------*/
 #ifdef USE_MPI
-bool NOMAD::Evaluator_Control::already_in_progress
-( const NOMAD::Eval_Point & x ) const
+bool NOMAD::Evaluator_Control::already_in_progress ( const NOMAD::Eval_Point & x ) const
 {
-  if ( _eval_in_progress ) {
-
-    int x_tag = x.get_tag();
-    int np    = NOMAD::Slave::get_nb_processes();
-
-    for ( int i = 0 ; i < np ; ++i )
-      if ( _eval_in_progress[i] &&
-	   ( _eval_in_progress[i]->get_tag() == x_tag ||
-	     _eval_in_progress[i]->Point::operator == ( x ) ) )
-	return true;
-  }
-  return false;
+    if ( _eval_in_progress )
+    {
+        
+        int x_tag = x.get_tag();
+        int np    = NOMAD::Slave::get_nb_processes();
+        
+        for ( int i = 0 ; i < np ; ++i )
+            if ( _eval_in_progress[i] &&
+                ( _eval_in_progress[i]->get_tag() == x_tag ||
+                 _eval_in_progress[i]->Point::operator == ( x ) ) )
+                return true;
+    }
+    return false;
 }
 #endif
 
@@ -1630,586 +1647,583 @@ bool NOMAD::Evaluator_Control::already_in_progress
 /*     eval_list_of_points, private version (parallel version)    */
 /*----------------------------------------------------------------*/
 #ifdef USE_MPI
-void NOMAD::Evaluator_Control::private_eval_list_of_points
-( NOMAD::search_type              search         ,   // IN     : search type
-  NOMAD::Barrier                & true_barrier   ,   // IN/OUT : the barrier
-  NOMAD::Barrier                & sgte_barrier   ,   // IN/OUT : the surrogate barrier
-  NOMAD::Pareto_Front           * pareto_front   ,   // IN/OUT : the Pareto front
-                                                     //          (can be NULL)
-  bool                          & stop           ,   // IN/OUT : stopping criterion
-  NOMAD::stop_type              & stop_reason    ,   // OUT    : stopping reason
-  const NOMAD::Eval_Point      *& new_feas_inc   ,   // OUT    : new feasible incumbent
-  const NOMAD::Eval_Point      *& new_infeas_inc ,   // OUT    : new infeas. incumbent
-  NOMAD::success_type           & success        ,   // OUT    : type of success
-  std::list<const NOMAD::Eval_Point *>
-                                & evaluated_pts    ) // OUT    : list of processed pts
+void NOMAD::Evaluator_Control::private_eval_list_of_points ( NOMAD::search_type              search         ,   // IN     : search type
+                                                            NOMAD::Barrier                & true_barrier   ,   // IN/OUT : the barrier
+                                                            NOMAD::Barrier                & sgte_barrier   ,   // IN/OUT : the surrogate barrier
+                                                            NOMAD::Pareto_Front           * pareto_front   ,   // IN/OUT : the Pareto front //          (can be NULL)
+                                                            bool                          & stop           ,   // IN/OUT : stopping criterion
+                                                            NOMAD::stop_type              & stop_reason    ,   // OUT    : stopping reason
+                                                            const NOMAD::Eval_Point      *& new_feas_inc   ,   // OUT    : new feasible incumbent
+                                                            const NOMAD::Eval_Point      *& new_infeas_inc ,   // OUT    : new infeas. incumbent
+                                                            NOMAD::success_type           & success        ,   // OUT    : type of success
+                                                            std::list<const NOMAD::Eval_Point *>
+                                                            & evaluated_pts    ) // OUT    : list of processed pts
 {
-	if ( stop || _eval_lop.empty() ) 
-	{
-		stop_reason = NOMAD::UNKNOWN_STOP_REASON;
-		++_elop_tag;
-		return;
-	}
-	
-	evaluated_pts.clear();
-	
-	
-	// initial display:
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_display_degree ( search );
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY ) 
-	{
-		std::ostringstream msg;
-		msg << "list of points evaluation (" << search << ")";
-		out << std::endl << NOMAD::open_block ( msg.str() );
-	}
-	
-	// call the Evaluator (virtual) preprocessing of a list of points:
-	_ev->list_of_points_preprocessing ( _eval_lop );
-	
-	const NOMAD::Eval_Point * old_feasible_incumbent   = NULL;
-	const NOMAD::Eval_Point * old_infeasible_incumbent = NULL;
-	
-	// active barrier:
-	NOMAD::Barrier & barrier = ( _p.get_opt_only_sgte() ) ?
+    if ( stop || _eval_lop.empty() )
+    {
+        stop_reason = NOMAD::UNKNOWN_STOP_REASON;
+        ++_elop_tag;
+        return;
+    }
+    
+    evaluated_pts.clear();
+    
+    
+    // initial display:
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_display_degree ( search );
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
+        std::ostringstream msg;
+        msg << "list of points evaluation (" << search << ")";
+        out << std::endl << NOMAD::open_block ( msg.str() );
+    }
+    
+    // call the Evaluator (virtual) preprocessing of a list of points:
+    _ev->list_of_points_preprocessing ( _eval_lop );
+    
+    const NOMAD::Eval_Point * old_feasible_incumbent   = NULL;
+    const NOMAD::Eval_Point * old_infeasible_incumbent = NULL;
+    
+    // active barrier:
+    NOMAD::Barrier & barrier = ( _p.get_opt_only_sgte() ) ?
     sgte_barrier : true_barrier;
-	
-	old_feasible_incumbent   = barrier.get_best_feasible();
-	old_infeasible_incumbent = barrier.get_best_infeasible();
-	
-	NOMAD::Double f0;
-	if ( _p.get_opportunistic_min_f_imprvmt().is_defined() &&
-		old_feasible_incumbent )
-		f0 = old_feasible_incumbent->get_f();
-	
-	new_feas_inc   = NULL;
-	new_infeas_inc = NULL;
-	stop           = false;
-	success        = NOMAD::UNSUCCESSFUL;
-	stop_reason    = NOMAD::NO_STOP;
-	
-	const NOMAD::Eval_Point  * x;
-	NOMAD::check_failed_type   check_failed_reason;
-	bool                       count_eval;
-	std::vector<const NOMAD::Eval_Point *>
-	to_be_evaluated;
-	NOMAD::success_type        one_eval_success;
-	bool                       one_for_luck = false;
-	bool                       opp_stop     = false;
-	int                        init_nb_eval = _stats.get_eval();
-	int                        nb_success   = 0;
-	int                        k            = 0;
-	int                        nb_points    = static_cast<int> ( _eval_lop.size() );
-	int                        max_bb_eval  = _p.get_max_bb_eval();
-	
-	// loop #1: search in cache:
-	// -------------------------
-	std::set<NOMAD::Priority_Eval_Point>::iterator
+    
+    old_feasible_incumbent   = barrier.get_best_feasible();
+    old_infeasible_incumbent = barrier.get_best_infeasible();
+    
+    NOMAD::Double f0;
+    if ( _p.get_opportunistic_min_f_imprvmt().is_defined() &&
+        old_feasible_incumbent )
+        f0 = old_feasible_incumbent->get_f();
+    
+    new_feas_inc   = NULL;
+    new_infeas_inc = NULL;
+    stop           = false;
+    success        = NOMAD::UNSUCCESSFUL;
+    stop_reason    = NOMAD::NO_STOP;
+    
+    const NOMAD::Eval_Point  * x;
+    NOMAD::check_failed_type   check_failed_reason;
+    bool                       count_eval;
+    std::vector<const NOMAD::Eval_Point *>
+    to_be_evaluated;
+    NOMAD::success_type        one_eval_success;
+    bool                       one_for_luck = false;
+    bool                       opp_stop     = false;
+    int                        init_nb_eval = _stats.get_eval();
+    int                        nb_success   = 0;
+    int                        k            = 0;
+    int                        nb_points    = static_cast<int> ( _eval_lop.size() );
+    int                        max_bb_eval  = _p.get_max_bb_eval();
+    
+    // loop #1: search in cache:
+    // -------------------------
+    std::set<NOMAD::Priority_Eval_Point>::iterator
     it  = _eval_lop.begin() ,
     end = _eval_lop.end();
-	while ( !stop && !opp_stop && it != end )
-	{
-		
-		x = it->get_point();
-		
-		x->set_current_run ( true );
-		
-		// displays:
-		if ( display_degree == NOMAD::FULL_DISPLAY )
-		{
-			
-			// open the evaluation block:
-			{
-				std::ostringstream oss;
-				if ( x->get_eval_type() == NOMAD::SGTE )
-					oss << "surrogate ";
-				oss << "evaluation " << k+1 << "/" << nb_points;
-				out << std::endl << NOMAD::open_block ( oss.str() );
-			}
-			
-			out << std::endl << "point #" << x->get_tag() << "   ( ";
-			x->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-			out << " )" << std::endl;			
-			if ( x->get_direction() )
-			{
-				out << "direction    : " << *x->get_direction()  << std::endl;
-				NOMAD::Point delta;
-				x->get_signature()->get_mesh()->get_delta(delta);
-				out << "direction d : ( " << *x->get_direction()/delta  << " )"  << std::endl;
-			}
-			if ( x->get_signature() )
-				out << "mesh indices:  ( " << x->get_signature()->get_mesh()->get_mesh_indices() << " )" << std::endl;
-			out << std::endl;
-			
-			
-			
-		}
-		
-		// check if the evaluation at this point is already in progress:
-		if ( !already_in_progress ( *x ) ) 
-		{
-			
-			// current point check (# of bb outputs, bounds, integer values, fixed-vars):
-			if ( x->check ( _p.get_bb_nb_outputs() , check_failed_reason ) )
-			{
-				
-				count_eval = true;
-				
-				// point in cache:
-				if ( cache_check ( x                   ,
-								  true_barrier        ,
-								  sgte_barrier        ,
-								  pareto_front        ,
-								  count_eval          ,
-								  barrier.get_h_max() ,
-								  display_degree        ) ) 
-					
-				{
-					
-					// list of processed points:
-					evaluated_pts.push_back ( x );
-					
-					// check stopping criteria:
-					check_stopping_criteria ( search , count_eval , *x , stop , stop_reason );
-					
-					// success:
-					one_eval_success = barrier.get_one_eval_succ();
-					success          = barrier.get_success();
-					
-					// displays:
-					display_eval_result ( *x               ,
-										 display_degree   ,
-										 search           ,
-										 one_eval_success ,
-										 success            );
-					
-					// stop the evaluations (opportunistic strategy) ?
-					if ( stop_evaluations ( *x               ,
-										   search           ,
-										   k                ,
-										   nb_points        ,
-										   stop             ,
-										   display_degree   ,
-										   one_eval_success ,
-										   success          ,
-										   init_nb_eval     ,
-										   f0               ,
-										   barrier          ,
-										   nb_success       ,
-										   one_for_luck       ) )
-					{
-						_stats.add_interrupted_eval();
-						opp_stop = true; // will break loop #1
-					}
-					
-					// close the evaluation block:
-					if ( display_degree == NOMAD::FULL_DISPLAY )
-						out.close_block();
-				}
-				
-				// point not in cache (the point is saved for loop #2):
-				else 
-				{
-					
-					// blackbox or surrogate evaluations are allowed:
-					if ( ( x->get_eval_type() == NOMAD::TRUTH && max_bb_eval != 0 ) ||
-						( x->get_eval_type() == NOMAD::SGTE  && _p.get_max_sgte_eval() != 0 ) )
-						to_be_evaluated.push_back ( x );
-					
-					// close the evaluation block:
-					if ( display_degree == NOMAD::FULL_DISPLAY )
-						out.close_block();
-				}
-			}
-			
-			// points[k]->check() failed (close the evaluation block):
-			else if ( display_degree == NOMAD::FULL_DISPLAY ) 
-			{
-				std::ostringstream oss;
-				oss << "check failed (" << check_failed_reason << ")";
-				out.close_block ( oss.str() );
-			}      
-		}
-		
-		// evaluation already in progress (close the evaluation block):
-		else if ( display_degree == NOMAD::FULL_DISPLAY ) 
-		{
-			std::ostringstream oss;
-			oss << "evaluation of point #" << x->get_tag()
-			<< " already in progress";
-			out.close_block ( oss.str() );
-		}
-		
-		++it;
-		++k;
-		
-		// force quit (by pressing ctrl-c):
-		if ( !stop && (NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit()) )
-		{
-			stop        = true;
-			stop_reason = NOMAD::CTRL_C;
-		}
-		
-	}  // end of loop #1
-	// --------------
-	
-	// loop #2: evaluations:
-	// ---------------------
-	int                 nb_to_evaluate = static_cast<int> ( to_be_evaluated.size() );
-	int                 nb_evaluated   = 0;
-	int                 cur            = 0;
-	int                 source;
-	char                signal;
-	NOMAD::Eval_Point * eval_x;
-	
-	while ( !stop && !opp_stop && nb_evaluated < nb_to_evaluate )
-	{
-		
-		source = NOMAD::Slave::receive_signal ( signal );
-		
-		// 2.1: send the RESULT signal, receive and process the evaluation result:
-		// -----------------------------------------------------------------------
-		eval_x = _eval_in_progress[source];
-		if ( eval_x ) 
-		{
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out << std::endl << "receive eval point #" << eval_x->get_tag()
-				<< " from slave " << source << std::endl << std::endl;
-			
-			receive_eval_result ( search       ,
-								 eval_x       ,
-								 true_barrier ,
-								 sgte_barrier ,
-								 pareto_front ,
-								 source       ,
-								 stop         ,
-								 stop_reason    );
-			
-			
-			// list of processed points:
-			if ( eval_x->is_in_cache() )
-				evaluated_pts.push_back ( eval_x );
-            
-			// success:
-			one_eval_success = barrier.get_one_eval_succ();
-			success          = barrier.get_success();
-			
-			// asynchronous success count:
-			if ( success == NOMAD::FULL_SUCCESS &&
-				_elop_tag != _slaves_elop_tags[source] )
-				_stats.add_asynchronous_success();
-			
-			// displays:
-			display_eval_result ( *eval_x          ,
-								 display_degree   ,
-								 search           ,
-								 one_eval_success ,
-								 success            );
-			
-			// stop the evaluations (opportunistic strategy) ?
-			if ( stop_evaluations ( *eval_x          ,
-								   search           ,
-								   nb_evaluated     ,
-								   nb_to_evaluate   ,
-								   stop             ,
-								   display_degree   ,
-								   one_eval_success ,
-								   success          ,
-								   init_nb_eval     ,
-								   f0               ,
-								   barrier          ,
-								   nb_success       ,
-								   one_for_luck       ) ) 
-			{
-				_stats.add_interrupted_eval();
-				opp_stop = true; // will break loop #2
-			}
-			
-			_eval_in_progress[source] = NULL;
-			_slaves_elop_tags[source] = -1;
-			--_nb_in_progress;
-			++nb_evaluated;
-		}
-		
-		// 2.2: send the EVAL signal and launch a new evaluation:
-		// ------------------------------------------------------
-		else 
-		{
-			
-			// do not launch a new evaluation if...
-			
-			// there is no more points to be evaluated:
-			if ( cur == nb_to_evaluate )
-				NOMAD::Slave::send_signal ( NOMAD::WAIT_SIGNAL , source );
-			
-			// or if bbe+_nb_in_progress >= max_bb_eval:
-			else if ( to_be_evaluated[cur]->get_eval_type() == NOMAD::TRUTH &&
-					 max_bb_eval > 0 &&
-					 _stats.get_bb_eval() + _nb_in_progress >= max_bb_eval    )
-			{
-				stop        = true;
-				stop_reason = NOMAD::MAX_BB_EVAL_REACHED;
-				NOMAD::Slave::send_signal ( NOMAD::WAIT_SIGNAL , source );
-			}
-			
-			else 
-			{
-				
-				// get the signature:
-				NOMAD::Signature * signature = to_be_evaluated[cur]->get_signature();
-				
-				// there is no signature (error):
-				if ( !signature ) 
-				{
-					stop        = true;
-					stop_reason = NOMAD::ERROR;
-					if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
-						out << std::endl
-						<< "Error in Evaluator_Control::private_eval_list_of_points():"
-						<< " the point #" << to_be_evaluated[cur]->get_tag()
-						<< " has no signature" << std::endl << std::endl;
-					NOMAD::Slave::send_signal ( NOMAD::WAIT_SIGNAL , source );
-				}
-				
-				else 
-				{
-					
-					NOMAD::Slave::send_signal ( NOMAD::EVAL_SIGNAL , source );
-					
-					eval_x = &NOMAD::Cache::get_modifiable_point ( *to_be_evaluated[cur++] );
-					
-					if ( display_degree == NOMAD::FULL_DISPLAY )
-						out << std::endl
-						<< "send eval point #" << eval_x->get_tag()
-						<< " to slave " << source << std::endl;
-					
-					// 1. scaling:
-					bool do_scaling = signature->get_scaling().is_defined();
-					if ( do_scaling )
-						eval_x->scale();
-					
-					// 2. send the point:
-					_slave->send_eval_point ( eval_x , source , barrier.get_h_max() );
-					
-					// 3. unscaling:
-					if ( do_scaling )
-						eval_x->unscale();
-					
-					eval_x->set_eval_status ( NOMAD::EVAL_IN_PROGRESS );
-					
-					_eval_in_progress[source] = eval_x;
-					_slaves_elop_tags[source] = _elop_tag;
-					++_nb_in_progress;
-				}
-			}
-		}
-		
-		// force quit (by pressing ctrl-c):
-		if ( !stop && ( NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit() ))
-		{
-			stop        = true;
-			stop_reason = NOMAD::CTRL_C;
-		}
-		
-	}  // end of loop #2
-	// --------------
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-		out << std::endl
-		<< "number of evaluations in progress: " << _nb_in_progress
-		<< std::endl << std::endl;
-	
-	// the algorithm is not asynchronous: we have
-	// to wait for all the evaluations in progress:
-	if ( !_p.get_asynchronous() )
-		
-		wait_for_evaluations ( search        ,
-							  true_barrier  ,
-							  sgte_barrier  ,
-							  pareto_front  ,
-							  stop          ,
-							  stop_reason   ,
-							  success       ,
-							  evaluated_pts   );
-    
-	// barriers update:
-	if ( !stop ) 
-	{
-		true_barrier.update_and_reset_success();
-		sgte_barrier.update_and_reset_success();
-	}
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-		out << NOMAD::close_block ( "end of evaluations" ) << std::endl;
-	
-	// incumbents update:
-	const NOMAD::Eval_Point * bf = barrier.get_best_feasible  ();
-	const NOMAD::Eval_Point * bi = barrier.get_best_infeasible();
-	if ( bf && bf != old_feasible_incumbent )
-		new_feas_inc = bf;
-	if ( bi && bi != old_infeasible_incumbent )
-		new_infeas_inc = bi;
-	
-	// the list of eval. points is deleted (only points in the cache are kept):
-	clear_eval_lop();
-	
-	// update the unique eval_lop() tag:
-	++_elop_tag;
-	
+    while ( !stop && !opp_stop && it != end )
+    {
+        
+        x = it->get_point();
+        
+        x->set_current_run ( true );
+        
+        // displays:
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
+            
+            // open the evaluation block:
+            {
+                std::ostringstream oss;
+                if ( x->get_eval_type() == NOMAD::SGTE )
+                    oss << "surrogate ";
+                oss << "evaluation " << k+1 << "/" << nb_points;
+                out << std::endl << NOMAD::open_block ( oss.str() );
+            }
+            
+            out << std::endl << "point #" << x->get_tag() << "   ( ";
+            x->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
+            out << " )" << std::endl;
+            if ( x->get_direction() )
+            {
+                out << "direction    : " << *x->get_direction()  << std::endl;
+                NOMAD::Point delta;
+                x->get_signature()->get_mesh()->get_delta(delta);
+                out << "direction/delta  : ( " << *x->get_direction()/delta  << " )"  << std::endl;
+            }
+            if ( x->get_signature() )
+                out << "mesh indices  :  ( " << x->get_signature()->get_mesh()->get_mesh_indices() << " )" << std::endl;
+            out << std::endl;
+            
+            
+            
+        }
+        
+        // check if the evaluation at this point is already in progress:
+        if ( !already_in_progress ( *x ) )
+        {
+            
+            // current point check (# of bb outputs, bounds, integer values, fixed-vars):
+            if ( x->check ( _p.get_bb_nb_outputs() , check_failed_reason ) )
+            {
+                
+                count_eval = true;
+                
+                // point in cache:
+                if ( cache_check ( x                   ,
+                                  true_barrier        ,
+                                  sgte_barrier        ,
+                                  pareto_front        ,
+                                  count_eval          ,
+                                  barrier.get_h_max() ,
+                                  display_degree        ) )
+                    
+                {
+                    
+                    // list of processed points:
+                    evaluated_pts.push_back ( x );
+                    
+                    // check stopping criteria:
+                    check_stopping_criteria ( search , count_eval , *x , stop , stop_reason );
+                    
+                    // success:
+                    one_eval_success = barrier.get_one_eval_succ();
+                    success          = barrier.get_success();
+                    
+                    // displays:
+                    display_eval_result ( *x               ,
+                                         display_degree   ,
+                                         search           ,
+                                         one_eval_success ,
+                                         success            );
+                    
+                    // stop the evaluations (opportunistic strategy) ?
+                    if ( stop_evaluations ( *x               ,
+                                           search           ,
+                                           k                ,
+                                           nb_points        ,
+                                           stop             ,
+                                           display_degree   ,
+                                           one_eval_success ,
+                                           success          ,
+                                           init_nb_eval     ,
+                                           f0               ,
+                                           barrier          ,
+                                           nb_success       ,
+                                           one_for_luck       ) )
+                    {
+                        _stats.add_interrupted_eval();
+                        opp_stop = true; // will break loop #1
+                    }
+                    
+                    // close the evaluation block:
+                    if ( display_degree == NOMAD::FULL_DISPLAY )
+                        out.close_block();
+                }
+                
+                // point not in cache (the point is saved for loop #2):
+                else
+                {
+                    
+                    // blackbox or surrogate evaluations are allowed:
+                    if ( ( x->get_eval_type() == NOMAD::TRUTH && max_bb_eval != 0 ) ||
+                        ( x->get_eval_type() == NOMAD::SGTE  && _p.get_max_sgte_eval() != 0 ) )
+                        to_be_evaluated.push_back ( x );
+                    
+                    // close the evaluation block:
+                    if ( display_degree == NOMAD::FULL_DISPLAY )
+                        out.close_block();
+                }
+            }
+            
+            // points[k]->check() failed (close the evaluation block):
+            else if ( display_degree == NOMAD::FULL_DISPLAY )
+            {
+                std::ostringstream oss;
+                oss << "check failed (" << check_failed_reason << ")";
+                out.close_block ( oss.str() );
+            }
+        }
+        
+        // evaluation already in progress (close the evaluation block):
+        else if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
+            std::ostringstream oss;
+            oss << "evaluation of point #" << x->get_tag()
+            << " already in progress";
+            out.close_block ( oss.str() );
+        }
+        
+        ++it;
+        ++k;
+        
+        // force quit (by pressing ctrl-c):
+        if ( !stop && (NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit()) )
+        {
+            stop        = true;
+            stop_reason = NOMAD::CTRL_C;
+        }
+        
+    }  // end of loop #1
+    // --------------
+    
+    // loop #2: evaluations:
+    // ---------------------
+    int                 nb_to_evaluate = static_cast<int> ( to_be_evaluated.size() );
+    int                 nb_evaluated   = 0;
+    int                 cur            = 0;
+    int                 source;
+    char                signal;
+    NOMAD::Eval_Point * eval_x;
+    
+    while ( !stop && !opp_stop && nb_evaluated < nb_to_evaluate )
+    {
+        
+        source = NOMAD::Slave::receive_signal ( signal );
+        
+        // 2.1: send the RESULT signal, receive and process the evaluation result:
+        // -----------------------------------------------------------------------
+        eval_x = _eval_in_progress[source];
+        if ( eval_x )
+        {
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << std::endl << "receive eval point #" << eval_x->get_tag()
+                << " from slave " << source << std::endl << std::endl;
+            
+            receive_eval_result ( search       ,
+                                 eval_x       ,
+                                 true_barrier ,
+                                 sgte_barrier ,
+                                 pareto_front ,
+                                 source       ,
+                                 stop         ,
+                                 stop_reason    );
+            
+            
+            // list of processed points:
+            if ( eval_x->is_in_cache() )
+                evaluated_pts.push_back ( eval_x );
+            
+            // success:
+            one_eval_success = barrier.get_one_eval_succ();
+            success          = barrier.get_success();
+            
+            // asynchronous success count:
+            if ( success == NOMAD::FULL_SUCCESS &&
+                _elop_tag != _slaves_elop_tags[source] )
+                _stats.add_asynchronous_success();
+            
+            // displays:
+            display_eval_result ( *eval_x          ,
+                                 display_degree   ,
+                                 search           ,
+                                 one_eval_success ,
+                                 success            );
+            
+            // stop the evaluations (opportunistic strategy) ?
+            if ( stop_evaluations ( *eval_x          ,
+                                   search           ,
+                                   nb_evaluated     ,
+                                   nb_to_evaluate   ,
+                                   stop             ,
+                                   display_degree   ,
+                                   one_eval_success ,
+                                   success          ,
+                                   init_nb_eval     ,
+                                   f0               ,
+                                   barrier          ,
+                                   nb_success       ,
+                                   one_for_luck       ) )
+            {
+                _stats.add_interrupted_eval();
+                opp_stop = true; // will break loop #2
+            }
+            
+            _eval_in_progress[source] = NULL;
+            _slaves_elop_tags[source] = -1;
+            --_nb_in_progress;
+            ++nb_evaluated;
+        }
+        
+        // 2.2: send the EVAL signal and launch a new evaluation:
+        // ------------------------------------------------------
+        else
+        {
+            
+            // do not launch a new evaluation if...
+            
+            // there is no more points to be evaluated:
+            if ( cur == nb_to_evaluate )
+                NOMAD::Slave::send_signal ( NOMAD::WAIT_SIGNAL , source );
+            
+            // or if bbe+_nb_in_progress >= max_bb_eval:
+            else if ( to_be_evaluated[cur]->get_eval_type() == NOMAD::TRUTH &&
+                     max_bb_eval > 0 &&
+                     _stats.get_bb_eval() + _nb_in_progress >= max_bb_eval    )
+            {
+                stop        = true;
+                stop_reason = NOMAD::MAX_BB_EVAL_REACHED;
+                NOMAD::Slave::send_signal ( NOMAD::WAIT_SIGNAL , source );
+            }
+            
+            else
+            {
+                
+                // get the signature:
+                NOMAD::Signature * signature = to_be_evaluated[cur]->get_signature();
+                
+                // there is no signature (error):
+                if ( !signature )
+                {
+                    stop        = true;
+                    stop_reason = NOMAD::ERROR;
+                    if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+                        out << std::endl
+                        << "Error in Evaluator_Control::private_eval_list_of_points():"
+                        << " the point #" << to_be_evaluated[cur]->get_tag()
+                        << " has no signature" << std::endl << std::endl;
+                    NOMAD::Slave::send_signal ( NOMAD::WAIT_SIGNAL , source );
+                }
+                
+                else
+                {
+                    
+                    NOMAD::Slave::send_signal ( NOMAD::EVAL_SIGNAL , source );
+                    
+                    eval_x = &NOMAD::Cache::get_modifiable_point ( *to_be_evaluated[cur++] );
+                    
+                    if ( display_degree == NOMAD::FULL_DISPLAY )
+                        out << std::endl
+                        << "send eval point #" << eval_x->get_tag()
+                        << " to slave " << source << std::endl;
+                    
+                    // 1. scaling:
+                    bool do_scaling = signature->get_scaling().is_defined();
+                    if ( do_scaling )
+                        eval_x->scale();
+                    
+                    // 2. send the point:
+                    _slave->send_eval_point ( eval_x , source , barrier.get_h_max() );
+                    
+                    // 3. unscaling:
+                    if ( do_scaling )
+                        eval_x->unscale();
+                    
+                    eval_x->set_eval_status ( NOMAD::EVAL_IN_PROGRESS );
+                    
+                    _eval_in_progress[source] = eval_x;
+                    _slaves_elop_tags[source] = _elop_tag;
+                    ++_nb_in_progress;
+                }
+            }
+        }
+        
+        // force quit (by pressing ctrl-c):
+        if ( !stop && ( NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit() ))
+        {
+            stop        = true;
+            stop_reason = NOMAD::CTRL_C;
+        }
+        
+    }  // end of loop #2
+    // --------------
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out << std::endl
+        << "number of evaluations in progress: " << _nb_in_progress
+        << std::endl << std::endl;
+    
+    // the algorithm is not asynchronous: we have
+    // to wait for all the evaluations in progress:
+    if ( !_p.get_asynchronous() )
+        
+        wait_for_evaluations ( search        ,
+                              true_barrier  ,
+                              sgte_barrier  ,
+                              pareto_front  ,
+                              stop          ,
+                              stop_reason   ,
+                              success       ,
+                              evaluated_pts   );
+    
+    // barriers update:
+    if ( !stop )
+    {
+        true_barrier.update_and_reset_success();
+        sgte_barrier.update_and_reset_success();
+    }
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out << NOMAD::close_block ( "end of evaluations" ) << std::endl;
+    
+    // incumbents update:
+    const NOMAD::Eval_Point * bf = barrier.get_best_feasible  ();
+    const NOMAD::Eval_Point * bi = barrier.get_best_infeasible();
+    if ( bf && bf != old_feasible_incumbent )
+        new_feas_inc = bf;
+    if ( bi && bi != old_infeasible_incumbent )
+        new_infeas_inc = bi;
+    
+    // the list of eval. points is deleted (only points in the cache are kept):
+    clear_eval_lop();
+    
+    // update the unique eval_lop() tag:
+    ++_elop_tag;
+    
 } // end of eval_lop() parallel version
 
-// C. Tribes may 28, 2014 --- method for points block evaluation of a given max size
 /*----------------------------------------------------------------*/
 /*       eval_list_of_points, private version (scalar version)    */
 /*----------------------------------------------------------------*/
 #else
-void NOMAD::Evaluator_Control::private_eval_list_of_points
-( NOMAD::search_type              search         ,   // IN     : search type
-  NOMAD::Barrier                & true_barrier   ,   // IN/OUT : the barrier
-  NOMAD::Barrier                & sgte_barrier   ,   // IN/OUT : the surrogate barrier
-  NOMAD::Pareto_Front           * pareto_front   ,   // IN/OUT : the Pareto front
-                                                     //          (can be NULL)
-  bool                          & stop           ,   // IN/OUT : stopping criterion
-  NOMAD::stop_type              & stop_reason    ,   // OUT    : stopping reason
-  const NOMAD::Eval_Point      *& new_feas_inc   ,   // OUT    : new feasible incumbent
-  const NOMAD::Eval_Point      *& new_infeas_inc ,   // OUT    : new infeas. incumbent
-  NOMAD::success_type           & success        ,   // OUT    : type of success
-  std::list<const NOMAD::Eval_Point *>
-                                & evaluated_pts    ) // OUT    : list of processed pts
+void NOMAD::Evaluator_Control::private_eval_list_of_points ( NOMAD::search_type              search         ,   // IN     : search type
+                                                            NOMAD::Barrier                & true_barrier   ,   // IN/OUT : the barrier
+                                                            NOMAD::Barrier                & sgte_barrier   ,   // IN/OUT : the surrogate barrier
+                                                            NOMAD::Pareto_Front           * pareto_front   ,   // IN/OUT : the Pareto front
+                                                            //          (can be NULL)
+                                                            bool                          & stop           ,   // IN/OUT : stopping criterion
+                                                            NOMAD::stop_type              & stop_reason    ,   // OUT    : stopping reason
+                                                            const NOMAD::Eval_Point      *& new_feas_inc   ,   // OUT    : new feasible incumbent
+                                                            const NOMAD::Eval_Point      *& new_infeas_inc ,   // OUT    : new infeas. incumbent
+                                                            NOMAD::success_type           & success        ,   // OUT    : type of success
+                                                            std::list<const NOMAD::Eval_Point *>
+                                                            & evaluated_pts    ) // OUT    : list of processed pts
 {
-	if ( stop || _eval_lop.empty() )
-	{
-		stop_reason = NOMAD::UNKNOWN_STOP_REASON;
-		return;
-	}
-	
-	evaluated_pts.clear();
-	
-	// initial display:
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_display_degree ( search );
-	
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-	{
-		std::ostringstream oss;
-		oss << "list of points evaluation (" << search << ")";
-		out << std::endl << NOMAD::open_block ( oss.str() );
-	}
-	
-	// call the Evaluator (virtual) preprocessing of a list of points:
-	_ev->list_of_points_preprocessing ( _eval_lop );
-	
-	const NOMAD::Eval_Point * old_feasible_incumbent   = NULL;
-	const NOMAD::Eval_Point * old_infeasible_incumbent = NULL;
-	
-	// active barrier:
-	NOMAD::Barrier & barrier = ( _p.get_opt_only_sgte() ) ?  sgte_barrier : true_barrier;
-	
-	old_feasible_incumbent   = barrier.get_best_feasible();
-	old_infeasible_incumbent = barrier.get_best_infeasible();
-	
-	NOMAD::Double f0;
-	if ( _p.get_opportunistic_min_f_imprvmt().is_defined() &&
-		old_feasible_incumbent )
-		f0 = old_feasible_incumbent->get_f();
-	
-	new_feas_inc   = NULL;
-	new_infeas_inc = NULL;
-	stop           = false;
-	success        = NOMAD::UNSUCCESSFUL;
-	stop_reason    = NOMAD::NO_STOP;
-	
-	const NOMAD::Eval_Point * x;
-	NOMAD::check_failed_type  check_failed_reason;
-	bool                      one_for_luck = false;
-	bool                      stop_evals   = false;
-	int                       init_nb_eval = _stats.get_eval();
-	int                       nb_success   = 0;
-	int                       k            = 0;
-	int                       k_block      = 0;
-	int                       nb_points    = get_nb_eval_points();
-	int						  block_size   = _p.get_bb_max_block_size();
-	int						  block_nb		= 1;
-	
-	// main loop (on the list of points):
-	// ----------------------------------
-	std::set<NOMAD::Priority_Eval_Point>::iterator it  = _eval_lop.begin() , end = _eval_lop.end();
-	std::list<NOMAD::Eval_Point *> list_x,list_eval;
-	std::list<bool> count_list_eval;
-	
-	while ( !stop_evals && !stop && it != end )
-	{
-		
-		
-		if ( block_size > 1 && display_degree == NOMAD::FULL_DISPLAY ) 
-		{
-			std::ostringstream oss;
-			oss << "Block of evaluations (" << block_nb <<")";
-			out << std::endl << NOMAD::open_block ( oss.str() );
-		}
-		
-		// Creation of a block of evaluations from the list
-		//----------------------
-		k_block=k;
+    if ( stop || _eval_lop.empty() )
+    {
+        stop_reason = NOMAD::UNKNOWN_STOP_REASON;
+        return;
+    }
+    
+    evaluated_pts.clear();
+    
+    // initial display:
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_display_degree ( search );
+    
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
+        std::ostringstream oss;
+        oss << "list of points evaluation (" << search << ")";
+        out << std::endl << NOMAD::open_block ( oss.str() );
+    }
+    
+    // call the Evaluator (virtual) preprocessing of a list of points:
+    _ev->list_of_points_preprocessing ( _eval_lop );
+    
+    const NOMAD::Eval_Point * old_feasible_incumbent   = NULL;
+    const NOMAD::Eval_Point * old_infeasible_incumbent = NULL;
+    
+    // active barrier:
+    NOMAD::Barrier & barrier = ( _p.get_opt_only_sgte() ) ?  sgte_barrier : true_barrier;
+    
+    old_feasible_incumbent   = barrier.get_best_feasible();
+    old_infeasible_incumbent = barrier.get_best_infeasible();
+    
+    NOMAD::Double f0;
+    if ( _p.get_opportunistic_min_f_imprvmt().is_defined() &&
+        old_feasible_incumbent )
+        f0 = old_feasible_incumbent->get_f();
+    
+    new_feas_inc   = NULL;
+    new_infeas_inc = NULL;
+    stop           = false;
+    success        = NOMAD::UNSUCCESSFUL;
+    stop_reason    = NOMAD::NO_STOP;
+    
+    const NOMAD::Eval_Point * x;
+    NOMAD::check_failed_type  check_failed_reason;
+    bool                      one_for_luck = false;
+    bool                      stop_evals   = false;
+    int                       init_nb_eval = _stats.get_eval();
+    int                       nb_success   = 0;
+    int                       k            = 0;
+    int                       k_block      = 0;
+    int                       nb_points    = get_nb_eval_points();
+    int                       block_size   = _p.get_bb_max_block_size();
+    int                       block_nb     = 1;
+    
+    // main loop (on the list of points):
+    // ----------------------------------
+    std::set<NOMAD::Priority_Eval_Point>::iterator it  = _eval_lop.begin() , end = _eval_lop.end();
+    std::list<NOMAD::Eval_Point *> list_x,list_eval;
+    std::list<bool> count_list_eval;
+    
+    while ( !stop_evals && !stop && it != end )
+    {
+        
+        
+        if ( block_size > 1 && display_degree == NOMAD::FULL_DISPLAY )
+        {
+            std::ostringstream oss;
+            oss << "Block of evaluations (" << block_nb <<")";
+            out << std::endl << NOMAD::open_block ( oss.str() );
+        }
+        
+        // Creation of a block of evaluations from the list
+        //----------------------
+        k_block=k;
         bool opportunistic_success_from_cache_point=false;
-		while (list_eval.size()!=static_cast<size_t>(block_size) && it != end && ! stop_evals)
-		{
-			
-			x = it->get_point();
-			x->set_current_run ( true );
-			
-			// displays:
-			if ( display_degree == NOMAD::FULL_DISPLAY ) 
-			{
-				{
-					// open the evaluation block:
-					std::ostringstream oss;
-						oss << "submitted ";
-					if ( x->get_eval_type() == NOMAD::SGTE )
-						oss << "surrogate ";
-					oss << "evaluation " << k+1 << "/" << nb_points;
-					out << std::endl << NOMAD::open_block ( oss.str() );
-				}
-				
-				out << std::endl << "point #" << x->get_tag() << "   ( ";
-				x->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-				out << " )" << std::endl;
-				if ( x->get_direction() )
-				{
-					out << "direction   : " << *x->get_direction()  << std::endl;
-					NOMAD::Point delta;
-					x->get_signature()->get_mesh()->get_delta(delta);
-					out << "direction d : ( " << *x->get_direction()/delta  << " )"  << std::endl;
-				}
-				if ( x->get_signature() )
-					out << "mesh indices: ( " << x->get_signature()->get_mesh()->get_mesh_indices() << " )" << std::endl;
-				out << std::endl;
-				
-			}
-			
-			// current point check (# of bb outputs, bounds, integer values, fixed-vars):
-			if ( x->check ( _p.get_bb_nb_outputs() , check_failed_reason ) )
-			{
-				bool count_eval = true;
-				bool has_been_in_cache=cache_check ( x                  ,
-													true_barrier        ,
-													sgte_barrier        ,
-													pareto_front        ,
-													count_eval			,
-													barrier.get_h_max() ,
-													display_degree        );
-				
-				
-				// put the point in a block list for evaluation:
-				if ( !has_been_in_cache )
-					list_eval.push_back(&NOMAD::Cache::get_modifiable_point ( *x ));
-				else 
-				{
-					// check stopping criteria for points in cache
-					check_stopping_criteria ( search , count_eval , *x , stop , stop_reason );
+        while (list_eval.size()!=static_cast<size_t>(block_size) && it != end && ! stop_evals)
+        {
+            
+            x = it->get_point();
+            x->set_current_run ( true );
+            
+            // displays:
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+            {
+                {
+                    // open the evaluation block:
+                    std::ostringstream oss;
+                    oss << "submitted ";
+                    if ( x->get_eval_type() == NOMAD::SGTE )
+                        oss << "surrogate ";
+                    oss << "evaluation " << k+1 << "/" << nb_points;
+                    out << std::endl << NOMAD::open_block ( oss.str() );
+                }
+                
+                out << std::endl << "point #" << x->get_tag() << "   ( ";
+                x->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
+                out << " )" << std::endl;
+                if ( x->get_direction() )
+                {
+                    out << "direction      : " << *x->get_direction()  << std::endl;
+                    NOMAD::Point delta;
+                    x->get_signature()->get_mesh()->get_delta(delta);
+                    out << "direction/delta: ( " << *x->get_direction()/delta  << " )"  << std::endl;
+                }
+                if ( x->get_signature() )
+                    out << "mesh indices   : ( " << x->get_signature()->get_mesh()->get_mesh_indices() << " )" << std::endl;
+                out << std::endl;
+                
+            }
+            
+            // current point check (# of bb outputs, bounds, integer values, fixed-vars):
+            if ( x->check ( _p.get_bb_nb_outputs() , check_failed_reason ) )
+            {
+                bool count_eval = true;
+                bool has_been_in_cache=cache_check ( x                  ,
+                                                    true_barrier        ,
+                                                    sgte_barrier        ,
+                                                    pareto_front        ,
+                                                    count_eval            ,
+                                                    barrier.get_h_max() ,
+                                                    display_degree        );
+                
+                
+                // put the point in a block list for evaluation:
+                if ( !has_been_in_cache )
+                    list_eval.push_back(&NOMAD::Cache::get_modifiable_point ( *x ));
+                else
+                {
+                    // check stopping criteria for points in cache
+                    check_stopping_criteria ( search , count_eval , *x , stop , stop_reason );
+                    
                     
                     // process the evaluated point:
                     process_eval_point ( *x                                       ,
@@ -2221,26 +2235,25 @@ void NOMAD::Evaluator_Control::private_eval_list_of_points
                     NOMAD::success_type one_eval_success = barrier.get_one_eval_succ();
                     success                              = barrier.get_success();
                     
-
+                    
                     opportunistic_success_from_cache_point = stop_evaluations ( *x               ,
-                                                                           search           ,
-                                                                           k                ,
-                                                                           nb_points        ,
-                                                                           stop             ,
-                                                                           display_degree   ,
-                                                                           one_eval_success ,
-                                                                           success          ,
-                                                                           init_nb_eval     ,
-                                                                           f0               ,
-                                                                           barrier          ,
-                                                                           nb_success       ,
-                                                                           one_for_luck       );
-
-								
-				}
-										
-				if (!stop)
-					list_x.push_back(&NOMAD::Cache::get_modifiable_point ( *x ));
+                                                                               search           ,
+                                                                               k                ,
+                                                                               nb_points        ,
+                                                                               stop             ,
+                                                                               display_degree   ,
+                                                                               one_eval_success ,
+                                                                               success          ,
+                                                                               init_nb_eval     ,
+                                                                               f0               ,
+                                                                               barrier          ,
+                                                                               nb_success       ,
+                                                                               one_for_luck       );
+                    
+                }
+                
+                if (!stop)
+                    list_x.push_back(&NOMAD::Cache::get_modifiable_point ( *x ));
                 
                 if ( opportunistic_success_from_cache_point )
                 {
@@ -2249,213 +2262,209 @@ void NOMAD::Evaluator_Control::private_eval_list_of_points
                     
                     if ( block_size > 1 && display_degree == NOMAD::FULL_DISPLAY )
                         out << NOMAD::close_block ();
-
+                    
                     stop_evals = true;
                     break;
                 }
-				
-			}
-			// points[k]->check() failed:
-			else if ( display_degree == NOMAD::FULL_DISPLAY )
-				out << "check failed (" << check_failed_reason << ")" << std::endl;
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY ) 
-				 out << NOMAD::close_block();
-
-			
-			++it;
-			++k;
-		}
-		if (list_eval.size()!=0)
-		{
-			
-			count_list_eval.assign(list_eval.size(), false);
-			
-			if (_p.eval_points_as_block())
-			{
-				eval_points ( list_eval			,
-							 true_barrier		,
-							 sgte_barrier		,
-							 pareto_front		,
-							 count_list_eval	,
-							 stop				,
-							 stop_reason		,
-							 barrier.get_h_max() );
-				
-				// check stopping criteria for points NOT in cache
-				std::list<NOMAD::Eval_Point *>::iterator it_eval;
-			}
-			else 
-			{
-				// bool count_eval=false;
-				x=*(list_eval.begin());
-				eval_point ( NOMAD::Cache::get_modifiable_point ( *x )	,
-							 true_barrier								,
-							 sgte_barrier								,
-							 pareto_front								,
-							 count_list_eval.front()					,
-							 stop										,
-							 stop_reason								,
-							 barrier.get_h_max()						);
-				
-			}
-			
-		}
-
+            }
+            // points[k]->check() failed:
+            else if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << "check failed (" << check_failed_reason << ")" << std::endl;
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << NOMAD::close_block();
+            
+            
+            ++it;
+            ++k;
+        }
+        if ( list_eval.size() != 0 )
+        {
+            
+            count_list_eval.assign( list_eval.size(), false);
+            
+            if (_p.eval_points_as_block())
+            {
+                eval_points ( list_eval         ,
+                             true_barrier       ,
+                             sgte_barrier       ,
+                             pareto_front       ,
+                             count_list_eval    ,
+                             stop               ,
+                             stop_reason        ,
+                             barrier.get_h_max());
+            }
+            else
+            {
+                // bool count_eval=false;
+                x=*(list_eval.begin());
+                eval_point ( NOMAD::Cache::get_modifiable_point ( *x )  ,
+                            true_barrier                                ,
+                            sgte_barrier                                ,
+                            pareto_front                                ,
+                            count_list_eval.front()                     ,
+                            stop                                        ,
+                            stop_reason                                 ,
+                            barrier.get_h_max()                         );
+                
+            }
+            
+        }
+        
         // Stop evals and exit the loop
         if ( stop_evals )
             break;
-			
-		// Check all the points in the evaluation block
-		std::list<NOMAD::Eval_Point *>::iterator it_x,it_eval;
-		k=k_block;
-		it_eval=list_eval.begin();
-		for(it_x=list_x.begin();it_x!=list_x.end();++it_x)
-		{	
-			
-			x=(*it_x);
-					
-			// process the evaluated point:
-			if ( x->is_eval_ok() && x->is_in_cache() )
-				process_eval_point ( *x                                       ,
-									( x->get_eval_type() == NOMAD::TRUTH ) ?
-									true_barrier : sgte_barrier                   ,
-									pareto_front                                    );
-            
-            
-			
-						
-			// success:
-			NOMAD::success_type one_eval_success = barrier.get_one_eval_succ();
-			success                              = barrier.get_success();
-			
-			// list of processed points:
-			if ( x->is_in_cache() )
-				evaluated_pts.push_back ( x );
-			else
-			{
-				// this situation may occur on very thin meshes:
-				// the point has not been found in the cache
-				// and it failed to be inserted.
-				one_eval_success = NOMAD::UNSUCCESSFUL;
-			}
-			
-			// displays:
-			if ( block_size > 0 && display_degree == NOMAD::FULL_DISPLAY ) 
-			{
-					// open the evaluation block:
-					std::ostringstream oss;
-					if ( x->get_eval_type() == NOMAD::SGTE )
-						oss << "surrogate ";
-					oss << "evaluation " << k+1 << "/" << nb_points;
-					out << std::endl << NOMAD::open_block ( oss.str() );
-                    out << std::endl << "point #" << x->get_tag() << std::endl;
-			}
-				
-			std::list<bool>::iterator it_count=count_list_eval.begin();
-			for(it_eval=list_eval.begin();it_eval!=list_eval.end();++it_eval,++it_count)
-			{
-				if ((*it_eval)==x) 
-				{
-					
-					// count the bb evaluation:
-					if ( *it_count )
-					{
-						if ( (*it_eval)->get_eval_type() == NOMAD::SGTE )
-							_stats.add_sgte_eval();
-						else
-						{
-							// current mads bbe evaluation
-							_stats.add_bb_eval();
-						}
-						
-						// count the output stats (STAT_SUM and STAT_AVG):
-						if ( _p.check_stat_sum() || _p.check_stat_avg() ) 
-							count_output_stats(*(*it_eval));
-					}
-					
-					check_stopping_criteria ( search , *it_count ,*(*it_eval) , stop , stop_reason );
-					
-					if ( *it_count )
-						display_eval_result ( *x, display_degree, search, one_eval_success, success );
-					
-					break;
-				}
-			}
-			
-			
-			
-			// close the evaluation block:
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out << NOMAD::close_block ();
-						
-			// stop the evaluations (opportunistic strategy) ?
-			if ( !stop_evals && stop_evaluations ( *x               ,
-												  search           ,
-												  k                ,
-												  nb_points        ,
-												  stop             ,
-												  display_degree   ,
-												  one_eval_success ,
-												  success          ,
-												  init_nb_eval     ,
-												  f0               ,
-												  barrier          ,
-												  nb_success       ,
-												  one_for_luck       ) ) 
-			{
-				_stats.add_interrupted_eval();
-				stop_evals = true;
-			}
-			
-			
-			++k;
-			
-		}
-		
-		if ( block_size > 1 && display_degree == NOMAD::FULL_DISPLAY ) 
-			out << NOMAD::close_block ();
-
-		
-		// force quit (by pressing ctrl-c):
-		if ( !stop && ( NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit()) )
-		{
-			stop        = true;
-			stop_reason = NOMAD::CTRL_C;
-		}
-		
-		list_x.clear();
-		list_eval.clear();
-		
-		++block_nb;
-		
-	}// end of test for list evaluation
-	
-	// barriers update:
-	if ( !stop ) 
-	{
-		true_barrier.update_and_reset_success();
-		sgte_barrier.update_and_reset_success();
-	}
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-		out << std::endl << NOMAD::close_block ( "end of evaluations" )
-		<< std::endl;
-	
-	// incumbents update:
-	const NOMAD::Eval_Point * bf = barrier.get_best_feasible  ();
-	const NOMAD::Eval_Point * bi = barrier.get_best_infeasible();
-	if ( bf && bf != old_feasible_incumbent )
-		new_feas_inc = bf;
-	if ( bi && bi != old_infeasible_incumbent )
-		new_infeas_inc = bi;
-	
-	// the list of eval. points is deleted (only points in the cache are kept):
-	clear_eval_lop();
-	
+        
+        // Check all the points in the evaluation block
+        std::list<NOMAD::Eval_Point *>::iterator it_x,it_eval;
+        k=k_block;
+        it_eval=list_eval.begin();
+        for(it_x=list_x.begin();it_x!=list_x.end();++it_x)
+        {
+            
+            x=(*it_x);
+            
+            // process the evaluated point:
+            if ( x->is_eval_ok() && x->is_in_cache() )
+                process_eval_point ( *x                                       ,
+                                    ( x->get_eval_type() == NOMAD::TRUTH ) ?
+                                    true_barrier : sgte_barrier                   ,
+                                    pareto_front                                    );
+            
+            
+            
+            
+            // success:
+            NOMAD::success_type one_eval_success = barrier.get_one_eval_succ();
+            success                              = barrier.get_success();
+            
+            // list of processed points:
+            if ( x->is_in_cache() )
+                evaluated_pts.push_back ( x );
+            else
+            {
+                // this situation may occur on very thin meshes:
+                // the point has not been found in the cache
+                // and it failed to be inserted.
+                one_eval_success = NOMAD::UNSUCCESSFUL;
+            }
+            
+            // displays:
+            if ( block_size > 0 && display_degree == NOMAD::FULL_DISPLAY )
+            {
+                // open the evaluation block:
+                std::ostringstream oss;
+                if ( x->get_eval_type() == NOMAD::SGTE )
+                    oss << "surrogate ";
+                oss << "evaluation " << k+1 << "/" << nb_points;
+                out << std::endl << NOMAD::open_block ( oss.str() );
+                out << std::endl << "point #" << x->get_tag() << std::endl;
+            }
+            
+            
+            std::list<bool>::iterator it_count=count_list_eval.begin();
+            for(it_eval=list_eval.begin();it_eval!=list_eval.end();++it_eval,++it_count)
+            {
+                if ((*it_eval)==x)
+                {
+                    
+                    // count the bb evaluation:
+                    if ( *it_count )
+                    {
+                        if ( (*it_eval)->get_eval_type() == NOMAD::SGTE )
+                            _stats.add_sgte_eval();
+                        else
+                        {
+                            // current mads bbe evaluation
+                            _stats.add_bb_eval();
+                        }
+                        
+                        // count the output stats (STAT_SUM and STAT_AVG):
+                        if ( _p.check_stat_sum() || _p.check_stat_avg() )
+                            count_output_stats(*(*it_eval));
+                    }
+                    
+                    check_stopping_criteria ( search , *it_count ,*(*it_eval) , stop , stop_reason );
+                    
+                    if ( *it_count )
+                        display_eval_result ( *x, display_degree, search, one_eval_success, success );
+                    
+                    break;
+                }
+            }
+            
+            
+            
+            // close the evaluation block:
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << NOMAD::close_block ();
+            
+            // stop the evaluations (opportunistic strategy) ?
+            if ( !stop_evals && stop_evaluations ( *x               ,
+                                                  search           ,
+                                                  k                ,
+                                                  nb_points        ,
+                                                  stop             ,
+                                                  display_degree   ,
+                                                  one_eval_success ,
+                                                  success          ,
+                                                  init_nb_eval     ,
+                                                  f0               ,
+                                                  barrier          ,
+                                                  nb_success       ,
+                                                  one_for_luck       ) )
+            {
+                _stats.add_interrupted_eval();
+                stop_evals = true;
+            }
+            
+            
+            ++k;
+            
+        }
+        
+        if ( block_size > 1 && display_degree == NOMAD::FULL_DISPLAY )
+            out << NOMAD::close_block ();
+        
+        
+        // force quit (by pressing ctrl-c):
+        if ( !stop && ( NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit()) )
+        {
+            stop        = true;
+            stop_reason = NOMAD::CTRL_C;
+        }
+        
+        list_x.clear();
+        list_eval.clear();
+        
+        ++block_nb;
+        
+    }// end of test for list evaluation
+    
+    // barriers update:
+    if ( !stop )
+    {
+        true_barrier.update_and_reset_success();
+        sgte_barrier.update_and_reset_success();
+    }
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out << std::endl << NOMAD::close_block ( "end of evaluations" )
+        << std::endl;
+    
+    // incumbents update:
+    const NOMAD::Eval_Point * bf = barrier.get_best_feasible  ();
+    const NOMAD::Eval_Point * bi = barrier.get_best_infeasible();
+    if ( bf && bf != old_feasible_incumbent )
+        new_feas_inc = bf;
+    if ( bi && bi != old_infeasible_incumbent )
+        new_infeas_inc = bi;
+    
+    // the list of eval. points is deleted (only points in the cache are kept):
+    clear_eval_lop();
+    
 } // end of eval_lop() scalar version
 
-
 #endif
 
 /*-------------------------------------------------*/
@@ -2470,6 +2479,7 @@ void NOMAD::Evaluator_Control::reduce_eval_lop ( int n )
     
     const NOMAD::Eval_Point * x;
     std::set<NOMAD::Priority_Eval_Point>::iterator it = _eval_lop.end();
+    
     for( int i=0;i<nb_eval_pts-n;i++)
     {
         --it;
@@ -2480,959 +2490,653 @@ void NOMAD::Evaluator_Control::reduce_eval_lop ( int n )
     _eval_lop.erase( it,_eval_lop.end());
 }
 
+
+
 /*-------------------------------------------------*/
-/*            TGP model ordering (private)         */
+/*         model_np1_quad_epsilon (private)      */
 /*-------------------------------------------------*/
-void NOMAD::Evaluator_Control::TGP_model_ordering ( NOMAD::dd_type   display_degree ,
-						    bool           & modified_list    )
+void NOMAD::Evaluator_Control::quad_model_ordering ( NOMAD::dd_type display_degree ,
+                                                    bool         & modified_list    )
 {
-  modified_list = false;
-
-  if ( _p.get_opt_only_sgte() )
-    return;
-
-#ifdef USE_TGP
-
-  // display:
-  const NOMAD::Display & out = _p.out();
-
-  // model stats:
-  NOMAD::Model_Stats model_stats;
-  NOMAD::Clock       clock;
-
-#ifdef TGP_DEBUG
-  out << std::endl << NOMAD::open_block ( "TGP model ordering") << std::endl;
-#endif
-  
-  const std::vector<NOMAD::bb_output_type> & bbot = _p.get_bb_output_type();
-  int i , j , n_XX = 0 , m = bbot.size();
-
-  // construct prediction set (XX):
-  // ------------------------------
-  std::vector<NOMAD::Eval_Point *> XX;
-  NOMAD::Point                     lb_XX , ub_XX;
-  
-  // save _eval_lop in XX and other_pts:
-  const NOMAD::Eval_Point            * x;
-  std::list<const NOMAD::Eval_Point *> other_pts;
-  const NOMAD::Signature             * signature = NULL;
-  int                                  n         = -1;
-
-  std::set<NOMAD::Priority_Eval_Point>::const_iterator it , end = _eval_lop.end();
-  for ( it = _eval_lop.begin() ; it != end ; ++it ) {
-    x = it->get_point();
-    if ( n < 0 ) {
-      signature = x->get_signature();
-      if ( !signature ) {
-#ifdef TGP_DEBUG
-	out << NOMAD::close_block ( "failure (no signature)" ) << std::endl;
-#endif
-	return;
-      }
-      n = signature->get_n();
-
-      lb_XX = ub_XX = NOMAD::Point(n);
-    }
-
-    if ( x->size           () == n            &&
-	 x->get_m          () == m            &&
-	 x->get_eval_type  () == NOMAD::TRUTH &&
-	 !x->get_bb_outputs().is_defined()       ) {
-
-      XX.push_back ( &NOMAD::Cache::get_modifiable_point ( *x ) );
-      
-      for ( i = 0 ; i < n ; ++i ) {
-	if ( !lb_XX[i].is_defined() || (*x)[i] < lb_XX[i] )
-	  lb_XX[i] = (*x)[i];
-	if ( !ub_XX[i].is_defined() || (*x)[i] > ub_XX[i] )
-	  ub_XX[i] = (*x)[i];
-      }
-    }
-    else
-      other_pts.push_back ( x );
-  }
-
-  n_XX = XX.size();
-
-  if ( n_XX <= 1 ) {
-#ifdef TGP_DEBUG
-    out << NOMAD::close_block ( "failure (size(XX) <= 1)" ) << std::endl;
+    const NOMAD::Display & out = _p.out();
+    
+#ifdef DEBUG
+    out << std::endl << NOMAD::open_block ( "model_np1_quad_epsilon") << std::endl;
 #endif
-    return;
-  }
-
-  // the TGP model:
-  NOMAD::TGP_Model * model;
-
-  // Reuse the last TGP model from the TGP model search:
-  if ( _last_TGP_model && _p.get_model_tgp_reuse_model() ) {
-
-    model = _last_TGP_model;
-    
-    // individual predictions for XX points:
-    for ( i = 0 ; i < n_XX ; ++i )
-      if ( !model->predict ( *XX[i] , false ) ) // pred_outside_bnds = false
-	for ( j = 0 ; j < m ; ++j )
-	  XX[i]->set_bb_output ( j , NOMAD::Double() );
-  }
-
-  // creation of a new TGP model:
-  else {
     
-    model = new NOMAD::TGP_Model ( n , bbot , out , _p.get_model_tgp_mode() );
-
-    NOMAD::Point center(n);
-    for ( i = 0 ; i < n ; ++i )
-      center[i] = ( lb_XX[i] + ub_XX[i] ) / 2.0;
-
-    // construct interpolation set (X):
-    // --------------------------------
-    if ( !model->set_X ( *_cache       ,
-			 &center       ,
-			 _p.get_seed() ,
-			 true            ) ) { // remove_fv = true
-      
-      if ( model->get_p() <= model->get_n() )
-	model_stats.add_not_enough_pts();
-#ifdef TGP_DEBUG
-      out << NOMAD::close_block ( "failure: " + model->get_error_str() )
-	  << std::endl;
+    // save _eval_lop in pts and other_pts:
+    // ------------------------------------
+    NOMAD::Point                         min , max , center , interpolation_radius;
+    const NOMAD::Eval_Point *            y;
+    std::list<const NOMAD::Eval_Point *> pts , other_pts;
+    const NOMAD::Signature  *            signature     = NULL;
+    const NOMAD::Double &                radius_factor = _p.get_model_quad_radius_factor();
+    NOMAD::eval_type                     ev_type       = NOMAD::TRUTH;
+    int                                  i , n = -1;
+    
+    std::set<NOMAD::Priority_Eval_Point>::const_iterator it , end = _eval_lop.end();
+    for ( it = _eval_lop.begin() ; it != end ; ++it )
+    {
+        y = it->get_point();
+        if ( n < 0 )
+        {
+            signature = y->get_signature();
+            if ( !signature )
+            {
+#ifdef DEBUG
+                out << NOMAD::close_block ( "failure (no signature)" ) << std::endl;
 #endif
-
-      delete model;
-
-      return;
+                modified_list = false;
+                return;
+            }
+            n       = signature->get_n();
+            ev_type = y->get_eval_type();
+            min.resize                  ( n );
+            max.resize                  ( n );
+            center.resize               ( n );
+            interpolation_radius.resize ( n );
+        }
+        
+        if ( y->size() == n && y->get_eval_type() == ev_type )
+        {
+            pts.push_back(y);
+            for ( i = 0 ; i < n ; ++i )
+            {
+                if ( !min[i].is_defined() || (*y)[i] < min[i] )
+                    min[i] = (*y)[i];
+                if ( !max[i].is_defined() || (*y)[i] > max[i] )
+                    max[i] = (*y)[i];
+            }
+        }
+        else
+            other_pts.push_back ( y );
     }
     
-    int p = model->get_p();
-
-    // display sets X and XX:
-    // ----------------------
-#ifdef TGP_DEBUG
+    for ( i = 0 ; i < n ; ++i )
     {
-      // max number of points displayed:
-      const int set_display_limit = 15; // set to -1 for no limit
-
-      // X:
-      model->display_X ( out ,  set_display_limit );
-
-      // XX:
-      out << NOMAD::open_block ( "prediction points (XX)");
-      for ( i = 0 ; i < n_XX ; ++i ) {
-	out << "#";
-	out.display_int_w ( i , n_XX );
-	out << " x=(";
-	XX[i]->NOMAD::Point::display ( out , " " , 15 , -1 );
-	out << " )" << std::endl;
-      }
-      std::ostringstream oss;
-      oss << "(size=" << n_XX << ")";
-      out << NOMAD::close_block ( oss.str() ) << std::endl;
+        center              [i] = ( min[i] + max[i] ) / 2.0;
+        interpolation_radius[i] = ( max[i] - min[i] ) * radius_factor / 2.0;
     }
+    
+#ifdef DEBUG
+    out << NOMAD::open_block ( "points used to define interpolation radius")
+    << "type of eval.   : " << ev_type    << std::endl
+    << "number of points: " << pts.size() << std::endl
+    << "min. coordinates: ( ";
+    min.display ( out , " " , 2 );
+    out << " )" << std::endl
+    << "max. coordinates: ( ";
+    max.display ( out , " " , 2 );
+    out << " )" << std::endl
+    << "center          : ( ";
+    center.display ( out , " " , 2 );
+    out << " )" << std::endl
+    << "interp. radius  : ( ";
+    interpolation_radius.display ( out , " " , 2 );
+    out << " )" << std::endl
+    << NOMAD::close_block() << std::endl;
 #endif
-
-    // TGP model construction:
-    // -----------------------
-#ifdef TGP_DEBUG
-    out << "TGP model construction ...";
-    out.flush();
-#endif
-
-    if ( !model->compute ( XX    ,
-			   false ,       // compute_Ds2x      = false
-			   false ,       // compute_improv    = false
-			   false   ) ) { // pred_outside_bnds = false
     
-      model_stats.add_construction_error();
-
-#ifdef TGP_DEBUG
-      out << "... error: " << model->get_error_str() << std::endl
-	  << NOMAD::close_block() << std::endl;
+    // create model:
+    // -------------
+    NOMAD::Clock       clock;
+    NOMAD::Model_Stats model_stats;
+    NOMAD::Quad_Model  model ( out                                              ,
+                              _p.get_bb_output_type()                          ,
+                              (ev_type==NOMAD::TRUTH) ? *_cache : *_sgte_cache ,
+                              *signature                                         );
+    
+    int  max_Y_size = _p.get_model_quad_max_Y_size();
+    int  min_Y_size = _p.get_model_quad_min_Y_size();
+    bool use_WP     = _p.get_model_quad_use_WP    ();
+    
+    // construct interpolation set Y:
+    model.construct_Y ( center               ,
+                       interpolation_radius ,
+                       max_Y_size             );
+    
+    int nY = model.get_nY();
+    
+#ifdef DEBUG
+    out << "number of points in Y: " << nY
+    << " (p=" << nY-1;
+    if ( nY < 2 ) out << ", not enough";
+    out << ")" << std::endl;
 #endif
-
-      // reset XX outputs:
-      for ( i = 0 ; i < n_XX ; ++i )
-	for ( j = 0 ; j < m ; ++j )
-	  XX[i]->set_bb_output ( j , NOMAD::Double() );
-      
-      delete model;
-
-      // check if ctrl-c has been pressed:
-      if ( NOMAD::TGP_Output_Model::get_force_quit() )
-	NOMAD::Evaluator_Control::_force_quit = true;
-
-      return;
+    
+    // not enough points:
+    if ( nY < 2 )
+    {
+        modified_list = false;
+        model_stats.add_not_enough_pts();
     }
-#ifdef TGP_DEBUG
-    out << "... OK" << std::endl << std::endl;
-#endif
-
-    // update model stats:
-    model_stats.add_construction_time ( clock.get_CPU_time() );
-    model_stats.update_nY             ( p                    );
-    model_stats.update_ES_stats       ( n_XX , n_XX          );
-    model_stats.add_nb_truth();
-    model_stats.add_nb_TGP();
-  }
-
-  // open display block for model predictions:
-#ifdef TGP_DEBUG
-  out << NOMAD::open_block ( "TGP predictions (XX+ZZ)"); 
-#endif
-
-  // clear then fill _eval_lop again:
-  // --------------------------------
-  NOMAD::Double         f_model , h_model;
-  const NOMAD::Double & h_min          = _p.get_h_min();
-  NOMAD::hnorm_type     h_norm         = _p.get_h_norm();
-  bool                  snap_to_bounds = _p.get_snap_to_bounds();
-
-  modified_list = true;
-  _eval_lop.clear();
-
-  for ( i = 0 ; i < n_XX ; ++i ) {
-
-    // compute model h and f values:
-    model->eval_hf ( XX[i]->get_bb_outputs() ,
-		     h_min                   ,
-		     h_norm                  ,
-		     h_model                 ,
-		     f_model                   );
-
-    // display model predictions:
-#ifdef TGP_DEBUG
-    out << "#";
-    out.display_int_w ( i , n_XX );
-    out << " x=(";
-    XX[i]->NOMAD::Point::display ( out , " " , 15 , -1 );
-    out << " ) m(x)=[";
-    XX[i]->get_bb_outputs().display ( out , " " , 15 , -1 );
-    out << " ]";
-	      
-    if ( h_model.is_defined() && f_model.is_defined() )
-      out << " hm=" << std::setw(15) << h_model
-	  << " fm=" << std::setw(15) << f_model;
     else
-      out << " no model value";
-    out << std::endl;
-#endif	    
-      
-    // add the evaluation point:
-    add_eval_point ( XX[i]           ,
-		     display_degree  ,
-		     snap_to_bounds  ,
-		     NOMAD::Double() ,
-		     NOMAD::Double() ,
-		     f_model         ,
-		     h_model           );
-
-#ifdef MODEL_STATS
-    if ( XX[i] && f_model.is_defined() && h_model.is_defined() ) {
-      XX[i]->set_mod_use  ( 2                ); // 2 for model ordering
-      XX[i]->set_Yw       ( model->get_Yw () );
-      XX[i]->set_nY       ( p                );
-      XX[i]->set_mh       ( h_model          );
-      XX[i]->set_mf       ( f_model          );
-    }
-#endif
-  }
-
-#ifdef TGP_DEBUG
-  {
-    // close display block for model predictions:
-    std::ostringstream oss;
-    oss << "(size=" << n_XX << ")";
-    out << NOMAD::close_block ( oss.str() ) << std::endl;
-  
-    // compute and display prediction errors:
-    out << NOMAD::open_block ( "prediction relative errors on X(%)" );
-    model->display_X_errors ( out );
-    out << NOMAD::close_block() << std::endl;
-  }
-#endif
-
-  // other points that have been previously discarded and have no model values:
-  NOMAD::Eval_Point * y;
-  std::list<const NOMAD::Eval_Point *>::const_iterator it2 , end2 = other_pts.end();
-  for ( it2 = other_pts.begin() ; it2 != end2 ; ++it2 ) {
-    y = &NOMAD::Cache::get_modifiable_point (**it2);
-    add_eval_point ( y               ,
-		     display_degree  ,
-		     snap_to_bounds  ,
-		     NOMAD::Double() ,
-		     NOMAD::Double() ,
-		     NOMAD::Double() ,
-		     NOMAD::Double()   );
-  }
-
-  _stats.update_model_stats    ( model_stats );
-  _model_ordering_stats.update ( model_stats );
-
-  if ( model != _last_TGP_model )
-    delete model;
-
-#ifdef TGP_DEBUG
-  out << NOMAD::close_block() << std::endl;
-#else
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    out << std::endl << "model ordering";
-    if ( !modified_list )
-      out << " (no modification)";
-    out << std::endl;
-  }
-#endif
-#endif
-}
-
-/*-------------------------------------------------*/
-/*         model_np1_quad_epsilon (private)      */
-/*-------------------------------------------------*/
-void NOMAD::Evaluator_Control::quad_model_ordering ( NOMAD::dd_type display_degree ,
-						     bool         & modified_list    )
-{
-	const NOMAD::Display & out = _p.out();
-	
-#ifdef DEBUG
-	out << std::endl << NOMAD::open_block ( "model_np1_quad_epsilon") << std::endl;
-#endif
-	
-	// save _eval_lop in pts and other_pts:
-	// ------------------------------------
-	NOMAD::Point                         min , max , center , interpolation_radius;
-	const NOMAD::Eval_Point *            y;
-	std::list<const NOMAD::Eval_Point *> pts , other_pts;
-	const NOMAD::Signature  *            signature     = NULL;
-	const NOMAD::Double &                radius_factor = _p.get_model_quad_radius_factor();
-	NOMAD::eval_type                     ev_type       = NOMAD::TRUTH;
-	int                                  i , n = -1;
-	
-	std::set<NOMAD::Priority_Eval_Point>::const_iterator it , end = _eval_lop.end();
-	for ( it = _eval_lop.begin() ; it != end ; ++it )
-	{
-		y = it->get_point();
-		if ( n < 0 )
-		{
-			signature = y->get_signature();
-			if ( !signature ) 
-			{
+    {
+        
 #ifdef DEBUG
-				out << NOMAD::close_block ( "failure (no signature)" ) << std::endl;
+        out << std::endl;
+        model.display_Y ( out , "unscaled interpolation set Y" );
 #endif
-				modified_list = false;
-				return;
-			}
-			n       = signature->get_n();
-			ev_type = y->get_eval_type();
-			min.resize                  ( n );
-			max.resize                  ( n );
-			center.resize               ( n );
-			interpolation_radius.resize ( n );
-		}
-		
-		if ( y->size() == n && y->get_eval_type() == ev_type ) {
-			pts.push_back(y);
-			for ( i = 0 ; i < n ; ++i ) {
-				if ( !min[i].is_defined() || (*y)[i] < min[i] )
-					min[i] = (*y)[i];
-				if ( !max[i].is_defined() || (*y)[i] > max[i] )
-					max[i] = (*y)[i];
-			}
-		}
-		else
-			other_pts.push_back ( y );  
-	}
-	
-	for ( i = 0 ; i < n ; ++i )
-	{
-		center              [i] = ( min[i] + max[i] ) / 2.0;
-		interpolation_radius[i] = ( max[i] - min[i] ) * radius_factor / 2.0;
-	}
-	
-#ifdef DEBUG
-	out << NOMAD::open_block ( "points used to define interpolation radius")
-	<< "type of eval.   : " << ev_type    << std::endl
-	<< "number of points: " << pts.size() << std::endl
-	<< "min. coordinates: ( ";
-	min.display ( out , " " , 2 );
-	out << " )" << std::endl
-	<< "max. coordinates: ( ";
-	max.display ( out , " " , 2 );
-	out << " )" << std::endl
-	<< "center          : ( ";
-	center.display ( out , " " , 2 );
-	out << " )" << std::endl
-	<< "interp. radius  : ( ";
-	interpolation_radius.display ( out , " " , 2 );
-	out << " )" << std::endl
-	<< NOMAD::close_block() << std::endl;
- #endif
-	
-	// create model:
-	// -------------
-	NOMAD::Clock       clock;
-	NOMAD::Model_Stats model_stats;
-	NOMAD::Quad_Model  model ( out                                              ,
-							  _p.get_bb_output_type()                          ,
-							  (ev_type==NOMAD::TRUTH) ? *_cache : *_sgte_cache ,
-							  *signature                                         );
-	
-	int  max_Y_size = _p.get_model_quad_max_Y_size();
-	int  min_Y_size = _p.get_model_quad_min_Y_size();
-	bool use_WP     = _p.get_model_quad_use_WP    ();
-	
-	// construct interpolation set Y:
-	model.construct_Y ( center               ,
-					   interpolation_radius ,
-					   max_Y_size             );
-	
-	int nY = model.get_nY();
-	
-#ifdef DEBUG
-	out << "number of points in Y: " << nY
-	<< " (p=" << nY-1;
-	if ( nY < 2 ) out << ", not enough";
-	out << ")" << std::endl;
- #endif
-	
-	// not enough points:
-	if ( nY < 2 )
-	{
-		modified_list = false;
-		model_stats.add_not_enough_pts();
-	}
-	else
-	{
-		
+        
+        // define scaling:
+        model.define_scaling ( radius_factor );
+        
 #ifdef DEBUG
-		out << std::endl;
-		model.display_Y ( out , "unscaled interpolation set Y" );
+        out << std::endl;
+        model.display_Y ( out , "scaled interpolation set Ys" );
 #endif
-		
-		// define scaling:
-		model.define_scaling ( radius_factor );
-		
+        
+        // model error flag:
+        if ( model.get_error_flag() )
+        {
+            model_stats.add_construction_error();
+            modified_list = false;
+        }
+        else
+        {
+            // not enough points:
+            if ( nY < 2 || ( min_Y_size < 0 && nY <= model.get_nfree() ) )
+            {
+                model_stats.add_not_enough_pts();
+                modified_list = false;
+            }
+            // enough points and no error:
+            else
+            {
+                
+                bool cautious         = _p.get_model_eval_sort_cautious();
+                int  nb_inside_radius = 0;
+                
+                // check that there is at least two trial points inside the trust radius
+                // (cautious strategy):
+                nb_inside_radius = 0;
+                std::list<const NOMAD::Eval_Point *>::const_iterator it2 , end2 = pts.end();
+                if ( cautious )
+                {
+                    for ( it2 = pts.begin() ; it2 != end2 ; ++it2 )
+                    {
+                        NOMAD::Point scaled_pt ( **it2 );
+                        model.scale ( scaled_pt );
+                        if ( model.is_within_trust_radius ( scaled_pt ) )
+                        {
+                            if ( ++nb_inside_radius == 2 )
+                                break;
+                        }
+                    }
+                }
+                
+                // not enough points inside trust radius:
+                if ( cautious && nb_inside_radius < 2 )
+                    modified_list = false;
+                
+                // at least two trial points are inside trust radius:
+                else
+                {
+                    // construct model:
+                    // ----------------
+                    model.construct ( use_WP , NOMAD::SVD_EPS , NOMAD::SVD_MAX_MPN , max_Y_size );
+                    model_stats.add_construction_time ( clock.get_CPU_time() );
+                    model_stats.update_nY ( model.get_nY() );
+                    
+                    // display model characteristics:
 #ifdef DEBUG
-		out << std::endl;
-		model.display_Y ( out , "scaled interpolation set Ys" );
+                    out << std::endl;
+                    model.display_model_coeffs ( out );
+                    out << std::endl;
+                    model.display_Y_error ( out );
 #endif
-		
-		// model error flag:
-		if ( model.get_error_flag() )
-		{
-			model_stats.add_construction_error();
-			modified_list = false;
-		}
-		else 
-		{
-			// not enough points:
-			if ( nY < 2 || ( min_Y_size < 0 && nY <= model.get_nfree() ) )
-			{
-				model_stats.add_not_enough_pts();
-				modified_list = false;
-			}
-			// enough points and no error:
-			else 
-			{
-				
-				bool cautious         = _p.get_model_eval_sort_cautious();
-				int  nb_inside_radius = 0;
-				
-				// check that there is at least two trial points inside the trust radius
-				// (cautious strategy):
-				nb_inside_radius = 0;
-				std::list<const NOMAD::Eval_Point *>::const_iterator it2 , end2 = pts.end();
-				if ( cautious ) 
-				{
-					for ( it2 = pts.begin() ; it2 != end2 ; ++it2 )
-					{
-						NOMAD::Point scaled_pt ( **it2 );
-						model.scale ( scaled_pt );
-						if ( model.is_within_trust_radius ( scaled_pt ) )
-						{
-							if ( ++nb_inside_radius == 2 )
-								break;
-						}
-					}
-				}
-				
-				// not enough points inside trust radius:
-				if ( cautious && nb_inside_radius < 2 )
-					modified_list = false;
-				
-				// at least two trial points are inside trust radius:
-				else
-				{
-					// construct model:
-					// ----------------
-					model.construct ( use_WP , NOMAD::SVD_EPS , NOMAD::SVD_MAX_MPN , max_Y_size );
-					model_stats.add_construction_time ( clock.get_CPU_time() );
-					model_stats.update_nY ( model.get_nY() );
-					
-					// display model characteristics:
+                    
+                    // count model:
+                    if ( ev_type == NOMAD::TRUTH )
+                        model_stats.add_nb_truth();
+                    else
+                        model_stats.add_nb_sgte();
+                    
+                    switch ( model.get_interpolation_type() )
+                    {
+                        case NOMAD::MFN:
+                            model_stats.add_nb_MFN();
+                            break;
+                        case NOMAD::WP_REGRESSION:
+                            model_stats.add_nb_WP_regression();
+                            break;
+                        case NOMAD::REGRESSION:
+                            model_stats.add_nb_regression();
+                            break;
+                        default:
+                            break;
+                    }
+                    
+                    // check model error flag:
+                    const NOMAD::Double & cond = model.get_cond();
+                    if ( model.get_error_flag()     ||
+                        !cond.is_defined()         ||
+                        cond > NOMAD::SVD_MAX_COND    )
+                    {
+                        modified_list = false;
+                        if ( model.get_error_flag() )
+                            model_stats.add_construction_error();
+                        else
+                            model_stats.add_bad_cond();
+                    }
+                    else
+                    {
+                        // clear then fill _eval_lop again:
+                        // --------------------------------
+                        NOMAD::Double         f_model , h_model;
+                        NOMAD::Eval_Point   * x;
+                        bool                  snap_to_bounds = _p.get_snap_to_bounds();
+                        
+                        modified_list = true;
+                        _eval_lop.clear();
+                        
+                        nb_inside_radius = 0;
+                        
 #ifdef DEBUG
-					out << std::endl;
-					model.display_model_coeffs ( out );
-					out << std::endl;
-					model.display_Y_error ( out );
+                        out << std::endl << NOMAD::open_block ( "original trial points" );
 #endif
-					
-					// count model:
-					if ( ev_type == NOMAD::TRUTH )
-						model_stats.add_nb_truth();
-					else
-						model_stats.add_nb_sgte();
-					
-					switch ( model.get_interpolation_type() ) 
-					{
-						case NOMAD::MFN:
-							model_stats.add_nb_MFN();
-							break;
-						case NOMAD::WP_REGRESSION:
-							model_stats.add_nb_WP_regression();
-							break;
-						case NOMAD::REGRESSION:
-							model_stats.add_nb_regression();
-							break;
-						default:
-							break;
-					}
-					
-					// check model error flag:
-					const NOMAD::Double & cond = model.get_cond();
-					if ( model.get_error_flag()     ||
-						!cond.is_defined()         ||
-						cond > NOMAD::SVD_MAX_COND    ) 
-					{
-						modified_list = false;
-						if ( model.get_error_flag() )
-							model_stats.add_construction_error();
-						else
-							model_stats.add_bad_cond();
-					}
-					else
-					{
-						// clear then fill _eval_lop again:
-						// --------------------------------
-						NOMAD::Double         f_model , h_model;
-						NOMAD::Eval_Point   * x;
-						bool                  snap_to_bounds = _p.get_snap_to_bounds();
-						
-						modified_list = true;
-						_eval_lop.clear();
-						
-						nb_inside_radius = 0;
-						
+                        
+                        NOMAD::Quad_Model_Evaluator *quad_model_ev=new NOMAD::Quad_Model_Evaluator(_p , model);
+                        
+                        for ( it2 = pts.begin() ; it2 != end2 ; ++it2 )
+                        {
+                            NOMAD::Point scaled_pt ( **it2 );
+                            model.scale ( scaled_pt );
+                            
+                            
+                            
+                            f_model.clear();
+                            h_model.clear();
+                            
+                            
+                            if ( !cautious || model.is_within_trust_radius ( scaled_pt ) )
+                            {
+                                
+                                int m  = static_cast<int>(_p.get_bb_output_type().size());
+                                NOMAD::Eval_Point x_eval(scaled_pt,m);
+                                for (int i = 0 ; i < x_eval.size() ; ++i )
+                                    x_eval[i] = scaled_pt[i].value() * 1000.0;
+                                
+                                bool count_eval;
+                                
+                                bool success=quad_model_ev->eval_x(x_eval,0.0,count_eval);
+                                if (success)
+                                {
+                                    _ev->compute_f(x_eval);
+                                    _ev->compute_h(x_eval);
+                                    
+                                    f_model=x_eval.get_f();
+                                    h_model=x_eval.get_h();
+                                }
+                                
+                                ++nb_inside_radius;
+                            }
+                            
+                            x = &NOMAD::Cache::get_modifiable_point (**it2);
+                            
 #ifdef DEBUG
-						out << std::endl << NOMAD::open_block ( "original trial points" );
+                            x->display_tag ( out );
+                            out << ": ( ";
+                            x->NOMAD::Point::display ( out , " " , 2 );
+                            out << " ) scaled: (";
+                            scaled_pt.NOMAD::Point::display ( out , " " , 2 );
+                            out << ") ";
+                            if ( h_model.is_defined() && f_model.is_defined() )
+                                out << "hm=" << h_model << " fm=" << f_model;
+                            else
+                                out << "no model value";
+                            out << std::endl;
 #endif
-
-						NOMAD::Quad_Model_Evaluator *quad_model_ev=new NOMAD::Quad_Model_Evaluator(_p , model);
-						
-						for ( it2 = pts.begin() ; it2 != end2 ; ++it2 ) 
-						{						  
-							NOMAD::Point scaled_pt ( **it2 );
-							model.scale ( scaled_pt );
-
-							
-							
-							f_model.clear();
-							h_model.clear();
-
-
-							if ( !cautious || model.is_within_trust_radius ( scaled_pt ) )
-							{							
-								
-								int m  = static_cast<int>(_p.get_bb_output_type().size());
-								NOMAD::Eval_Point x_eval(scaled_pt,m);
-								for (int i = 0 ; i < x_eval.size() ; ++i )
-									x_eval[i] = scaled_pt[i].value() * 1000.0;
-								
-								bool count_eval;
-								
-								bool success=quad_model_ev->eval_x(x_eval,0.0,count_eval);
-								if (success)
-								{	
-									_ev->compute_f(x_eval);
-									_ev->compute_h(x_eval);
-									
-									f_model=x_eval.get_f();
-									h_model=x_eval.get_h();
-								}
-
-								++nb_inside_radius;
-							}
-							
-							x = &NOMAD::Cache::get_modifiable_point (**it2);
-							
-#ifdef DEBUG
-							x->display_tag ( out );
-							out << ": ( ";
-							x->NOMAD::Point::display ( out , " " , 2 );
-							out << " ) scaled: (";     
-							scaled_pt.NOMAD::Point::display ( out , " " , 2 );
-							out << ") ";
-							if ( h_model.is_defined() && f_model.is_defined() )
-								out << "hm=" << h_model << " fm=" << f_model;
-							else
-								out << "no model value";
-							out << std::endl;
-#endif	    
-							
-							// add the evaluation point:
-							add_eval_point ( x               ,
-											display_degree  ,
-											snap_to_bounds  ,
-											NOMAD::Double() ,
-											NOMAD::Double() ,
-											f_model         ,
-											h_model           );
-							
+                            
+                            // add the evaluation point:
+                            add_eval_point ( x               ,
+                                            display_degree  ,
+                                            snap_to_bounds  ,
+                                            NOMAD::Double() ,
+                                            NOMAD::Double() ,
+                                            f_model         ,
+                                            h_model           );
+                            
 #ifdef MODEL_STATS
-							if ( x && f_model.is_defined() && h_model.is_defined() ) 
-							{
-								x->set_mod_use  ( 2                ); // 2 for model ordering
-								x->set_cond     ( model.get_cond() );
-								x->set_Yw       ( model.get_Yw  () );
-								x->set_nY       ( model.get_nY  () );
-								x->set_mh       ( h_model          );
-								x->set_mf       ( f_model          );
-							}
+                            if ( x && f_model.is_defined() && h_model.is_defined() )
+                            {
+                                x->set_mod_use  ( 2                ); // 2 for model ordering
+                                x->set_cond     ( model.get_cond() );
+                                x->set_Yw       ( model.get_Yw  () );
+                                x->set_nY       ( model.get_nY  () );
+                                x->set_mh       ( h_model          );
+                                x->set_mf       ( f_model          );
+                            }
 #endif
-						}
-						
-						delete quad_model_ev;
-						
-						// other points that have been previously discarded
-						// and have no model values:
-						end2 = other_pts.end();
-						for ( it2 = other_pts.begin() ; it2 != end2 ; ++it2 )
-						{
-							
-							x = &NOMAD::Cache::get_modifiable_point (**it2);
+                        }
+                        
+                        delete quad_model_ev;
+                        
+                        // other points that have been previously discarded
+                        // and have no model values:
+                        end2 = other_pts.end();
+                        for ( it2 = other_pts.begin() ; it2 != end2 ; ++it2 )
+                        {
+                            
+                            x = &NOMAD::Cache::get_modifiable_point (**it2);
 #ifdef DEBUG
-							x->display_tag ( out );
-							out << ": ( ";
-							x->NOMAD::Point::display ( out , " " , 2 );
-							out << " ) no model value" << std::endl;
-#endif	    
-							add_eval_point ( x               ,
-											display_degree  ,
-											snap_to_bounds  ,
-											NOMAD::Double() ,
-											NOMAD::Double() ,
-											NOMAD::Double() ,
-											NOMAD::Double()   );
-						}
+                            x->display_tag ( out );
+                            out << ": ( ";
+                            x->NOMAD::Point::display ( out , " " , 2 );
+                            out << " ) no model value" << std::endl;
+#endif
+                            add_eval_point ( x               ,
+                                            display_degree  ,
+                                            snap_to_bounds  ,
+                                            NOMAD::Double() ,
+                                            NOMAD::Double() ,
+                                            NOMAD::Double() ,
+                                            NOMAD::Double()   );
+                        }
 #ifdef DEBUG
-						out.close_block();
+                        out.close_block();
 #endif
-					}
-				}
-				model_stats.update_ES_stats ( nb_inside_radius , static_cast<int>(pts.size()) );
-			}
-		}
-	}
-	
-	_stats.update_model_stats    ( model_stats );
-	_model_ordering_stats.update ( model_stats );
-	
+                    }
+                }
+                model_stats.update_ES_stats ( nb_inside_radius , static_cast<int>(pts.size()) );
+            }
+        }
+    }
+    
+    _stats.update_model_stats    ( model_stats );
+    _model_ordering_stats.update ( model_stats );
+    
 #ifdef DEBUG
-	out << NOMAD::close_block() << std::endl;
+    out << NOMAD::close_block() << std::endl;
 #else
-	if ( display_degree == NOMAD::FULL_DISPLAY ) 
-	{
-		out << std::endl << "model ordering";
-		if ( !modified_list )
-			out << " (no modification)";
-		out << std::endl;
-	}
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
+        out << std::endl << "model ordering";
+        if ( !modified_list )
+            out << " (no modification)";
+        out << std::endl;
+    }
 #endif
 }
 
+
 /*----------------------------------------------------------------------------------*/
 /*  evaluation of a list of points (public version that calls the private version)  */
 /*----------------------------------------------------------------------------------*/
-void NOMAD::Evaluator_Control::eval_list_of_points
-( NOMAD::search_type              search             , // IN    : search type
-  NOMAD::Barrier                & true_barrier       , // IN/OUT: truth barrier
-  NOMAD::Barrier                & sgte_barrier       , // IN/OUT: surrogate barrier
-  NOMAD::Pareto_Front           * pareto_front       , // IN/OUT: Pareto front
-                                                       //         (can be NULL)
-  bool                          & stop               , // IN/OUT: stopping criterion
-  NOMAD::stop_type              & stop_reason        , // OUT   : stopping reason
-  const NOMAD::Eval_Point      *& new_feas_inc       , // OUT   : new feas. incumbent
-  const NOMAD::Eval_Point      *& new_infeas_inc     , // OUT   : new infeas. incumb.
-  NOMAD::success_type           & success            , // OUT   : type of success
-  std::list<const NOMAD::Eval_Point *>
-                                * evaluated_pts   )    // OUT   : list of processed
-                                                       //         pts (can be NULL)
+void NOMAD::Evaluator_Control::eval_list_of_points ( NOMAD::search_type              search             , // IN    : search type
+                                                    NOMAD::Barrier                & true_barrier       , // IN/OUT: truth barrier
+                                                    NOMAD::Barrier                & sgte_barrier       , // IN/OUT: surrogate barrier
+                                                    NOMAD::Pareto_Front           * pareto_front       , // IN/OUT: Pareto front
+                                                    //         (can be NULL)
+                                                    bool                          & stop               , // IN/OUT: stopping criterion
+                                                    NOMAD::stop_type              & stop_reason        , // OUT   : stopping reason
+                                                    const NOMAD::Eval_Point      *& new_feas_inc       , // OUT   : new feas. incumbent
+                                                    const NOMAD::Eval_Point      *& new_infeas_inc     , // OUT   : new infeas. incumb.
+                                                    NOMAD::success_type           & success            , // OUT   : type of success
+                                                    std::list<const NOMAD::Eval_Point *>
+                                                    * evaluated_pts   )    // OUT   : list of processed //         pts (can be NULL)
 {
-
-  bool del_evaluated_pts = false;
-  if ( !evaluated_pts )
-  {
-    evaluated_pts     = new std::list<const NOMAD::Eval_Point *>;
-    del_evaluated_pts = true;
-  }
-
-  bool sgte_eval_sort = _p.get_sgte_eval_sort() && _eval_lop.size() > 1;
-  bool opt_only_sgte  = _p.get_opt_only_sgte ();
-  bool snap_to_bounds = _p.get_snap_to_bounds();
-  bool modified_list  = false;
-
-  const NOMAD::Display    & out = _p.out();
-  NOMAD::dd_type display_degree = out.get_display_degree ( search );
-
-  // reset the success type:
-  true_barrier.reset_success();
-  sgte_barrier.reset_success();
-
-  // define all points as surrogates:
-  if ( opt_only_sgte || sgte_eval_sort ) 
-  {
-    for ( std::set<NOMAD::Priority_Eval_Point>::iterator it = _eval_lop.begin() ;
-	  it != _eval_lop.end() ; ++it )
-      NOMAD::Cache::get_modifiable_point(*it->get_point()).set_eval_type(NOMAD::SGTE);
-  }
-
-  // use the surrogates to sort the eval. points:
-	if ( !opt_only_sgte && sgte_eval_sort ) 
-	{
-		
-		// evaluate the surrogate:
-		private_eval_list_of_points ( search         ,
-									 true_barrier   ,
-									 sgte_barrier   ,
-									 NULL           , // Pareto front = NULL
-									 stop           ,
-									 stop_reason    ,
-									 new_feas_inc   ,
-									 new_infeas_inc ,
-									 success        ,
-									 *evaluated_pts   );
-		if ( stop )
-		{
-			if ( del_evaluated_pts )
-				delete evaluated_pts;
-			return;
-		}
-		
-		NOMAD::Eval_Point * x;
-		
-		// construct a new list of trial points that will be
-		// ordered using surrogate values:   
-		std::list<const NOMAD::Eval_Point *>::const_iterator
-		end = evaluated_pts->end() , it2;
-		for ( it2 = evaluated_pts->begin() ; it2 != end ; ++it2 ) {
-			
-			// Eval_Point construction:
-			x = new NOMAD::Eval_Point;
-			x->set ( (*it2)->size() , _p.get_bb_nb_outputs() );
-			x->set_signature  ( (*it2)->get_signature () );
-			x->set_direction  ( (*it2)->get_direction () );
-			x->Point::operator = ( **it2 );
-			
-			modified_list = true;
-			
-			// add the new point to the ordered list of trial points:
-			add_eval_point ( x               ,
-							display_degree  ,
-							snap_to_bounds  ,
-							(*it2)->get_f() ,
-							(*it2)->get_h() ,
-							NOMAD::Double() ,
-							NOMAD::Double()   );
-		}
-	}
-  
-	if ( stop ) {
-		if ( del_evaluated_pts )
-			delete evaluated_pts;
-		return;
-	}
-
-	// model ordering:
-	// ---------------
-	if ( !modified_list && _model_eval_sort && _eval_lop.size() > 1 )
-    {
-		switch ( _p.get_model_eval_sort() ) {
-			case NOMAD::TGP_MODEL:
-				TGP_model_ordering ( display_degree , modified_list );
-				if ( NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit() )
-                {
-					stop        = true;
-					stop_reason = NOMAD::CTRL_C;
-				}
-				break;
-			case NOMAD::QUADRATIC_MODEL:
-				quad_model_ordering ( display_degree , modified_list );
-				break;
-			case NOMAD::NO_MODEL:;
-		}
-	}
-	
-  // this test is true if ctrl-c has been pressed:
-  if ( stop ) {
-    if ( del_evaluated_pts )
-      delete evaluated_pts;
-    return;
-  }
-
-  // display the re-ordered list of trial points:
-  if ( modified_list && display_degree == NOMAD::FULL_DISPLAY ) {
-
-    const NOMAD::Eval_Point * y;
-
-    std::ostringstream oss;
-    oss << "re-ordered list of " << _eval_lop.size()
-	<< " " << search << " trial points";
-
-    out << NOMAD::open_block ( oss.str() ) << std::endl;
-
-    std::set<NOMAD::Priority_Eval_Point>::const_iterator
-      end = _eval_lop.end() , it;
-    for ( it = _eval_lop.begin() ; it != end ; ++it ) {
-      y =  it->get_point();
-      y->display_tag ( out );
-      out << ": ( ";
-      y->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-      out << " )";
-      if ( y->get_direction() )
-	out << " (dir " << y->get_direction()->get_index() << ")";
-      out << std::endl;
+    
+    bool del_evaluated_pts = false;
+    if ( !evaluated_pts )
+    {
+        evaluated_pts     = new std::list<const NOMAD::Eval_Point *>;
+        del_evaluated_pts = true;
     }
-    out.close_block();
-  }
-
-  // evaluate the list of points on the 'true' function:
-  private_eval_list_of_points ( search         ,
-				true_barrier   ,
-				sgte_barrier   ,
-				pareto_front   ,
-				stop           ,
-				stop_reason    ,
-				new_feas_inc   ,
-				new_infeas_inc ,
-				success        ,
-				*evaluated_pts   ); 
-
+    
+    bool sgte_eval_sort = _p.get_sgte_eval_sort() && _eval_lop.size() > 1;
+    bool opt_only_sgte  = _p.get_opt_only_sgte ();
+    bool snap_to_bounds = _p.get_snap_to_bounds();
+    bool modified_list  = false;
+    
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_display_degree ( search );
+    
+    // reset the success type:
+    true_barrier.reset_success();
+    sgte_barrier.reset_success();
+    
+    // define all points as surrogates:
+    if ( opt_only_sgte || sgte_eval_sort )
+    {
+        for ( std::set<NOMAD::Priority_Eval_Point>::iterator it = _eval_lop.begin() ;
+             it != _eval_lop.end() ; ++it )
+            NOMAD::Cache::get_modifiable_point(*it->get_point()).set_eval_type(NOMAD::SGTE);
+    }
+    
+    // use the surrogates to sort the eval. points:
+    if ( !opt_only_sgte && sgte_eval_sort )
+    {
+        
+        // evaluate the surrogate:
+        private_eval_list_of_points ( search         ,
+                                     true_barrier   ,
+                                     sgte_barrier   ,
+                                     NULL           , // Pareto front = NULL
+                                     stop           ,
+                                     stop_reason    ,
+                                     new_feas_inc   ,
+                                     new_infeas_inc ,
+                                     success        ,
+                                     *evaluated_pts   );
+        if ( stop )
+        {
+            if ( del_evaluated_pts )
+                delete evaluated_pts;
+            return;
+        }
+        
+        NOMAD::Eval_Point * x;
+        
+        // construct a new list of trial points that will be
+        // ordered using surrogate values:
+        std::list<const NOMAD::Eval_Point *>::const_iterator
+        end = evaluated_pts->end() , it2;
+        for ( it2 = evaluated_pts->begin() ; it2 != end ; ++it2 )
+        {
+            
+            // Eval_Point construction:
+            x = new NOMAD::Eval_Point;
+            x->set ( (*it2)->size() , _p.get_bb_nb_outputs() );
+            x->set_signature  ( (*it2)->get_signature () );
+            x->set_direction  ( (*it2)->get_direction () );
+            x->Point::operator = ( **it2 );
+            
+            modified_list = true;
+            
+            // add the new point to the ordered list of trial points:
+            add_eval_point ( x               ,
+                            display_degree  ,
+                            snap_to_bounds  ,
+                            (*it2)->get_f() ,
+                            (*it2)->get_h() ,
+                            NOMAD::Double() ,
+                            NOMAD::Double()   );
+        }
+    }
+    
+    if ( stop )
+    {
+        if ( del_evaluated_pts )
+            delete evaluated_pts;
+        return;
+    }
+    
+    // model ordering:
+    // ---------------
+    if ( !modified_list && _model_eval_sort && _eval_lop.size() > 1 )
+    {
+        switch ( _p.get_model_eval_sort() )
+        {
+            case NOMAD::QUADRATIC_MODEL:
+                quad_model_ordering ( display_degree , modified_list );
+                break;
+            case NOMAD::NO_MODEL:;
+        }
+    }
+    
+    // this test is true if ctrl-c has been pressed:
+    if ( stop )
+    {
+        if ( del_evaluated_pts )
+            delete evaluated_pts;
+        return;
+    }
+    
+    // display the re-ordered list of trial points:
+    if ( modified_list && display_degree == NOMAD::FULL_DISPLAY )
+    {
+        
+        const NOMAD::Eval_Point * y;
+        
+        std::ostringstream oss;
+        oss << "re-ordered list of " << _eval_lop.size()
+        << " " << search << " trial points";
+        
+        out << NOMAD::open_block ( oss.str() ) << std::endl;
+        
+        std::set<NOMAD::Priority_Eval_Point>::const_iterator
+        end = _eval_lop.end() , it;
+        for ( it = _eval_lop.begin() ; it != end ; ++it )
+        {
+            y =  it->get_point();
+            y->display_tag ( out );
+            out << ": ( ";
+            y->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
+            out << " )";
+            if ( y->get_direction() )
+                out << " (dir " << y->get_direction()->get_index() << ")";
+            out << std::endl;
+        }
+        out.close_block();
+    }
+    
+    // evaluate the list of points on the 'true' function:
+    private_eval_list_of_points ( search         ,
+                                 true_barrier   ,
+                                 sgte_barrier   ,
+                                 pareto_front   ,
+                                 stop           ,
+                                 stop_reason    ,
+                                 new_feas_inc   ,
+                                 new_infeas_inc ,
+                                 success        ,
+                                 *evaluated_pts   );
+    
 #ifdef MODEL_STATS
-  display_model_stats ( *evaluated_pts );
+    display_model_stats ( *evaluated_pts );
 #endif
-
-  if ( del_evaluated_pts )
-    delete evaluated_pts;
+    
+    if ( del_evaluated_pts )
+        delete evaluated_pts;
 }
 
 /*------------------------------------------------------------------------------------*/
 /*  ordering of a list of points based on surrogate (1st) or model (2nd) evaluations  */
 /*------------------------------------------------------------------------------------*/
-
 void NOMAD::Evaluator_Control::ordering_lop ( NOMAD::search_type             search             , // IN    : search type
-											 bool                          & stop               , // IN/OUT: stopping criterion
-											 NOMAD::stop_type              & stop_reason        , // OUT   : stopping reason
-											 NOMAD::Barrier                & true_barrier       , // IN/OUT: truth barrier
-											 NOMAD::Barrier                & sgte_barrier        // IN/OUT: surrogate barrier
-											 )
-
+                                             bool                          & stop               , // IN/OUT: stopping criterion
+                                             NOMAD::stop_type              & stop_reason        , // OUT   : stopping reason
+                                             NOMAD::Barrier                & true_barrier       , // IN/OUT: truth barrier
+                                             NOMAD::Barrier                & sgte_barrier        // IN/OUT: surrogate barrier
+)
 {
-	std::list<const NOMAD::Eval_Point *> * evaluated_pts     = new std::list<const NOMAD::Eval_Point *>;
-	
-	bool sgte_eval_sort = _p.get_sgte_eval_sort() && _eval_lop.size() > 1;
-	bool opt_only_sgte  = _p.get_opt_only_sgte ();
-	bool snap_to_bounds = _p.get_snap_to_bounds();
-	bool modified_list  = false;
-	
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_display_degree ( search );
-
-	NOMAD::success_type success ;
-	const NOMAD::Eval_Point *new_feas_inc ; 
-	const NOMAD::Eval_Point *new_infeas_inc;
-	
-	
-	// reset the success type:
-	true_barrier.reset_success();
-	sgte_barrier.reset_success();
-	
-
-	// use the surrogates to sort the eval. points:
-	if ( !opt_only_sgte && sgte_eval_sort ) 
-	{
-		
-		for ( std::set<NOMAD::Priority_Eval_Point>::iterator it = _eval_lop.begin() ; it != _eval_lop.end() ; ++it )
-			NOMAD::Cache::get_modifiable_point(*it->get_point()).set_eval_type(NOMAD::SGTE);
-		
-		
-		// evaluate the surrogate:
-		private_eval_list_of_points ( search         ,
-									 true_barrier   ,
-									 sgte_barrier   ,
-									 NULL           , // Pareto front = NULL
-									 stop           ,
-									 stop_reason    ,
-									 new_feas_inc   ,
-									 new_infeas_inc ,
-									 success        ,
-									 *evaluated_pts   );
-		if ( stop )	
-		{
-			delete evaluated_pts;
-			return;
-		}
-		
-		NOMAD::Eval_Point * x;
-		
-		// construct a new list of trial points that will be
-		// ordered using surrogate values:   
-		std::list<const NOMAD::Eval_Point *>::const_iterator
-		end = evaluated_pts->end() , it2;
-		for ( it2 = evaluated_pts->begin() ; it2 != end ; ++it2 ) 
-		{
-			
-			// Eval_Point construction:
-			x = new NOMAD::Eval_Point;
-			x->set ( (*it2)->size() , _p.get_bb_nb_outputs() );
-			x->set_signature  ( (*it2)->get_signature () );
-			x->set_direction  ( (*it2)->get_direction () );
-			x->set_poll_center( (*it2)->get_poll_center () );  // Poll center is needed for further testing (not needed when evaluating points)
-			x->set_poll_center_type ( (*it2)->get_poll_center_type ()   );
-			x->Point::operator = ( **it2 );
-			
-			modified_list = true;
-			
-			// add the new point to the ordered list of trial points:
-			add_eval_point ( x               ,
-							display_degree  ,
-							snap_to_bounds  ,
-							(*it2)->get_f() ,
-							(*it2)->get_h() ,
-							NOMAD::Double() ,
-							NOMAD::Double()   );
-		}
-	}
-	
-	// model ordering:
-	// ---------------
-	if ( !modified_list && _model_eval_sort && _eval_lop.size() > 1 ) {
-		switch ( _p.get_model_eval_sort() ) {
-			case NOMAD::TGP_MODEL:
-				TGP_model_ordering ( display_degree , modified_list );
-				break;
-			case NOMAD::QUADRATIC_MODEL:
-				quad_model_ordering ( display_degree , modified_list );
-				break;
-			case NOMAD::NO_MODEL:;
-		}
-	}
-
-	if ( NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit() )
-	{
-		stop        = true;
-		stop_reason = NOMAD::CTRL_C;
-	}
-	
-	delete evaluated_pts;
+    std::list<const NOMAD::Eval_Point *> * evaluated_pts     = new std::list<const NOMAD::Eval_Point *>;
+    
+    bool sgte_eval_sort = _p.get_sgte_eval_sort() && _eval_lop.size() > 1;
+    bool opt_only_sgte  = _p.get_opt_only_sgte ();
+    bool snap_to_bounds = _p.get_snap_to_bounds();
+    bool modified_list  = false;
+    
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_display_degree ( search );
+    
+    NOMAD::success_type success ;
+    const NOMAD::Eval_Point *new_feas_inc ;
+    const NOMAD::Eval_Point *new_infeas_inc;
+    
+    
+    // reset the success type:
+    true_barrier.reset_success();
+    sgte_barrier.reset_success();
+    
+    
+    // use the surrogates to sort the eval. points:
+    if ( !opt_only_sgte && sgte_eval_sort )
+    {
+        
+        for ( std::set<NOMAD::Priority_Eval_Point>::iterator it = _eval_lop.begin() ; it != _eval_lop.end() ; ++it )
+            NOMAD::Cache::get_modifiable_point(*it->get_point()).set_eval_type(NOMAD::SGTE);
+        
+        
+        // evaluate the surrogate:
+        private_eval_list_of_points ( search         ,
+                                     true_barrier   ,
+                                     sgte_barrier   ,
+                                     NULL           , // Pareto front = NULL
+                                     stop           ,
+                                     stop_reason    ,
+                                     new_feas_inc   ,
+                                     new_infeas_inc ,
+                                     success        ,
+                                     *evaluated_pts   );
+        if ( stop )
+        {
+            delete evaluated_pts;
+            return;
+        }
+        
+        NOMAD::Eval_Point * x;
+        
+        // construct a new list of trial points that will be
+        // ordered using surrogate values:
+        std::list<const NOMAD::Eval_Point *>::const_iterator
+        end = evaluated_pts->end() , it2;
+        for ( it2 = evaluated_pts->begin() ; it2 != end ; ++it2 )
+        {
+            
+            // Eval_Point construction:
+            x = new NOMAD::Eval_Point;
+            x->set ( (*it2)->size() , _p.get_bb_nb_outputs() );
+            x->set_signature  ( (*it2)->get_signature () );
+            x->set_direction  ( (*it2)->get_direction () );
+            x->set_poll_center( (*it2)->get_poll_center () );  // Poll center is needed for further testing (not needed when evaluating points)
+            x->set_poll_center_type ( (*it2)->get_poll_center_type ()   );
+            x->Point::operator = ( **it2 );
+            
+            modified_list = true;
+            
+            // add the new point to the ordered list of trial points:
+            add_eval_point ( x               ,
+                            display_degree  ,
+                            snap_to_bounds  ,
+                            (*it2)->get_f() ,
+                            (*it2)->get_h() ,
+                            NOMAD::Double() ,
+                            NOMAD::Double()   );
+        }
+    }
+    
+    // model ordering:
+    // ---------------
+    if ( !modified_list && _model_eval_sort && _eval_lop.size() > 1 )
+    {
+        switch ( _p.get_model_eval_sort() )
+        {
+            case NOMAD::QUADRATIC_MODEL:
+                quad_model_ordering ( display_degree , modified_list );
+                break;
+            case NOMAD::NO_MODEL:;
+        }
+    }
+    
+    if ( NOMAD::Evaluator_Control::_force_quit || NOMAD::Evaluator::get_force_quit() )
+    {
+        stop        = true;
+        stop_reason = NOMAD::CTRL_C;
+    }
+    
+    delete evaluated_pts;
 }
 
 
@@ -3443,17 +3147,18 @@ void NOMAD::Evaluator_Control::ordering_lop ( NOMAD::search_type             sea
 /*--------------------------------------------------------------*/
 bool NOMAD::Evaluator_Control::is_opportunistic ( NOMAD::search_type t ) const
 {
-  switch ( t ) {
-  case NOMAD::X0_EVAL:
+    switch ( t )
+    {
+        case NOMAD::X0_EVAL:
+            return false;
+        case NOMAD::LH_SEARCH:
+            return _p.get_opportunistic_LH();
+        case NOMAD::CACHE_SEARCH:
+            return _p.get_opportunistic_cache_search();
+        default:
+            return _p.get_opportunistic_eval();
+    }
     return false;
-  case NOMAD::LH_SEARCH:
-    return _p.get_opportunistic_LH();
-  case NOMAD::CACHE_SEARCH:
-    return _p.get_opportunistic_cache_search();
-  default:
-    return _p.get_opportunistic_eval();
-  }
-  return false;
 }
 
 /*----------------------------------------------------------------*/
@@ -3462,54 +3167,54 @@ bool NOMAD::Evaluator_Control::is_opportunistic ( NOMAD::search_type t ) const
 /* . check the opportunistic strategy stopping criterion          */
 /* . private method                                               */
 /*----------------------------------------------------------------*/
-bool NOMAD::Evaluator_Control::stop_evaluations
-( const NOMAD::Eval_Point & x                ,
-  NOMAD::search_type        search           ,
-  int                       k                ,
-  int                       nb_points        ,
-  bool                      stop             ,
-  NOMAD::dd_type            display_degree   ,
-  NOMAD::success_type       one_eval_success ,
-  NOMAD::success_type       success          ,
-  int                       init_nb_eval     ,
-  const NOMAD::Double     & f0               ,
-  const NOMAD::Barrier    & barrier          ,
-  int                     & nb_success       ,
-  bool                    & one_for_luck       ) const
+bool NOMAD::Evaluator_Control::stop_evaluations ( const NOMAD::Eval_Point & x                ,
+                                                 NOMAD::search_type        search           ,
+                                                 int                       k                ,
+                                                 int                       nb_points        ,
+                                                 bool                      stop             ,
+                                                 NOMAD::dd_type            display_degree   ,
+                                                 NOMAD::success_type       one_eval_success ,
+                                                 NOMAD::success_type       success          ,
+                                                 int                       init_nb_eval     ,
+                                                 const NOMAD::Double     & f0               ,
+                                                 const NOMAD::Barrier    & barrier          ,
+                                                 int                     & nb_success       ,
+                                                 bool                    & one_for_luck       ) const
 {
-	// opportunistic evaluation ?
-	bool opportunistic = is_opportunistic ( search );
-	
-	if ( k < nb_points - 1 ) {
-		
-		if ( stop )
-			return true;
-		
-		if ( opportunistic &&
-			( x.get_eval_type() == NOMAD::TRUTH || _p.get_opt_only_sgte() ) )
-		{
-			
-			if ( one_for_luck && one_eval_success != NOMAD::FULL_SUCCESS ) 
-			{
-				if ( display_degree == NOMAD::FULL_DISPLAY )
-					_p.out() << std::endl
-					<< "opportunistic termination of evaluations (lucky eval)"
-					<< std::endl;
-				return true;
-			}
-			
-			if ( success == NOMAD::FULL_SUCCESS &&
-				check_opportunistic_criterion ( display_degree   ,
-											   one_eval_success ,
-											   init_nb_eval     ,
-											   f0               ,
-											   barrier          ,
-											   nb_success       ,
-											   one_for_luck       ) )
-				return true;
-		}
-	}
-	return false;
+    // opportunistic evaluation ?
+    bool opportunistic = is_opportunistic ( search );
+    
+    if ( k < nb_points - 1 )
+    {
+        
+        if ( stop )
+            return true;
+        
+        if ( opportunistic &&
+            ( x.get_eval_type() == NOMAD::TRUTH || _p.get_opt_only_sgte() ) )
+        {
+            
+            if ( one_for_luck && one_eval_success != NOMAD::FULL_SUCCESS )
+            {
+                if ( display_degree == NOMAD::FULL_DISPLAY )
+                    _p.out() << std::endl
+                    << "opportunistic termination of evaluations (lucky eval)"
+                    << std::endl;
+                return true;
+            }
+            
+            if ( success == NOMAD::FULL_SUCCESS &&
+                check_opportunistic_criterion ( display_degree   ,
+                                               one_eval_success ,
+                                               init_nb_eval     ,
+                                               f0               ,
+                                               barrier          ,
+                                               nb_success       ,
+                                               one_for_luck       ) )
+                return true;
+        }
+    }
+    return false;
 }
 
 /*-----------------------------------------------------------------*/
@@ -3517,114 +3222,113 @@ bool NOMAD::Evaluator_Control::stop_evaluations
 /*            return true to stop the evaluations                  */
 /*            return false to continue the evaluations             */
 /*-----------------------------------------------------------------*/
-bool NOMAD::Evaluator_Control::check_opportunistic_criterion
-( NOMAD::dd_type         display_degree   ,
-  NOMAD::success_type    one_eval_success ,
-  int                    init_nb_eval     ,
-  const NOMAD::Double  & f0               ,
-  const NOMAD::Barrier & barrier          ,
-  int                  & nb_success       ,
-  bool                 & one_for_luck       ) const
+bool NOMAD::Evaluator_Control::check_opportunistic_criterion ( NOMAD::dd_type         display_degree   ,
+                                                              NOMAD::success_type    one_eval_success ,
+                                                              int                    init_nb_eval     ,
+                                                              const NOMAD::Double  & f0               ,
+                                                              const NOMAD::Barrier & barrier          ,
+                                                              int                  & nb_success       ,
+                                                              bool                 & one_for_luck       ) const
 {
-	
-	int                    min_nb_success = _p.get_opportunistic_min_nb_success();
-	int                    min_eval       = _p.get_opportunistic_min_eval();
-	NOMAD::Double          min_f_imprvmt  = _p.get_opportunistic_min_f_imprvmt();
-	bool                   lucky_eval     = _p.get_opportunistic_lucky_eval();
-	const NOMAD::Display & out            = _p.out();
-	
-	// min_nb_success:
-	if ( min_nb_success > 0 )
-	{
-		
-		if ( one_eval_success == NOMAD::FULL_SUCCESS )
-			++nb_success;
-		
-		if ( nb_success < min_nb_success ) 
-		{
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out << std::endl
-				<< "opport. strategy (nb_success=" << nb_success
-				<< " < min_nb_success=" << min_nb_success
-				<< "): continue evaluations"
-				<< std::endl;
-			
-			return false;
-		}
-	}
-	
-	// min_eval:
-	if ( min_eval > 0 )
-	{
-		
-		int eval = _stats.get_eval() - init_nb_eval;
-		
-		if ( eval < min_eval )
-		{
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out << std::endl
-				<< "opport. strategy (eval=" << eval
-				<< " < min_eval=" << min_eval
-				<< "): continue evaluations" << std::endl;
-			return false;
-		}
-	}
-	
-	// min_f_imprvmt:
-	if ( min_f_imprvmt.is_defined() ) 
-	{
-		
-		const NOMAD::Eval_Point * bf = barrier.get_best_feasible();
-		
-		if ( f0.is_defined() && bf ) 
-		{
-			
-			NOMAD::Double f = bf->get_f();
-			
-			if ( f.is_defined() ) 
-			{
-				
-				NOMAD::Double f_imprvmt = f0.rel_err(f) * 100.0;
-				
-				if ( f_imprvmt < min_f_imprvmt )
-				{
-					
-					if ( display_degree == NOMAD::FULL_DISPLAY )
-						out << std::endl
-						<< "opport. strategy (f_improvement="
-						<< f_imprvmt << " < min_f_imprvmt=" << min_f_imprvmt
-						<< "): continue evaluations" << std::endl;
-					
-					return false;
-				}
-			}
-		}
-	}
-	
-	// lucky_eval:
-	if ( lucky_eval && one_eval_success == NOMAD::FULL_SUCCESS )
-	{
-		one_for_luck = true;
-		
-		if ( display_degree == NOMAD::FULL_DISPLAY )
-			out << std::endl
-			<< "opport. strategy: one more evaluation for luck"
-			<< std::endl;
-		
-		return false;
-	}
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-	{
-		out << std::endl << "opport. strategy: stop evaluations" ;
-		if (_p.get_bb_max_block_size() > 1)
-			out << " at the end of the block evaluation";
-		out << std::endl;
-	}
-	
-	return true;
+    
+    int                    min_nb_success = _p.get_opportunistic_min_nb_success();
+    int                    min_eval       = _p.get_opportunistic_min_eval();
+    NOMAD::Double          min_f_imprvmt  = _p.get_opportunistic_min_f_imprvmt();
+    bool                   lucky_eval     = _p.get_opportunistic_lucky_eval();
+    const NOMAD::Display & out            = _p.out();
+    
+    // min_nb_success:
+    if ( min_nb_success > 0 )
+    {
+        
+        if ( one_eval_success == NOMAD::FULL_SUCCESS )
+            ++nb_success;
+        
+        if ( nb_success < min_nb_success )
+        {
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << std::endl
+                << "opport. strategy (nb_success=" << nb_success
+                << " < min_nb_success=" << min_nb_success
+                << "): continue evaluations"
+                << std::endl;
+            
+            return false;
+        }
+    }
+    
+    // min_eval:
+    if ( min_eval > 0 )
+    {
+        
+        int eval = _stats.get_eval() - init_nb_eval;
+        
+        if ( eval < min_eval )
+        {
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << std::endl
+                << "opport. strategy (eval=" << eval
+                << " < min_eval=" << min_eval
+                << "): continue evaluations" << std::endl;
+            return false;
+        }
+    }
+    
+    // min_f_imprvmt:
+    if ( min_f_imprvmt.is_defined() )
+    {
+        
+        const NOMAD::Eval_Point * bf = barrier.get_best_feasible();
+        
+        if ( f0.is_defined() && bf )
+        {
+            
+            NOMAD::Double f = bf->get_f();
+            
+            if ( f.is_defined() )
+            {
+                
+                NOMAD::Double f_imprvmt = f0.rel_err(f) * 100.0;
+                
+                if ( f_imprvmt < min_f_imprvmt )
+                {
+                    
+                    if ( display_degree == NOMAD::FULL_DISPLAY )
+                        out << std::endl
+                        << "opport. strategy (f_improvement="
+                        << f_imprvmt << " < min_f_imprvmt=" << min_f_imprvmt
+                        << "): continue evaluations" << std::endl;
+                    
+                    return false;
+                }
+            }
+        }
+    }
+    
+    // lucky_eval:
+    if ( lucky_eval && one_eval_success == NOMAD::FULL_SUCCESS )
+    {
+        one_for_luck = true;
+        
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+            out << std::endl
+            << "opport. strategy: one more evaluation for luck"
+            << std::endl;
+        
+        return false;
+    }
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
+        out << std::endl << "opport. strategy: stop evaluations" ;
+        if (_p.get_bb_max_block_size() > 1)
+            out << " at the end of the block evaluation";
+        out << std::endl;
+    }
+    
+    return true;
 }
 
 /*---------------------------------------------------------------*/
@@ -3632,38 +3336,40 @@ bool NOMAD::Evaluator_Control::check_opportunistic_criterion
 /*---------------------------------------------------------------*/
 void NOMAD::Evaluator_Control::display_eval_lop ( NOMAD::search_type t ) const
 {
-  const NOMAD::Display & out = _p.out();
-  int cnt = 0 , nb = static_cast<int>(_eval_lop.size());
-
-  if ( nb == 0 ) {
-    out << std::endl << "no evaluation point" << std::endl;
-    return;
-  }
-
-  // open indented block:
-  std::ostringstream oss;
-  if ( t != NOMAD::UNDEFINED_SEARCH )
-    oss << t << " ";
-  oss << "evaluation point";
-  if ( nb > 1 )
-    oss << "s";
-  out << std::endl << NOMAD::open_block ( oss.str() ) << std::endl;
-
-  // display the points:
-  std::set<NOMAD::Priority_Eval_Point>::const_iterator it , end = _eval_lop.end();
-  for ( it = _eval_lop.begin() ; it != end ; ++it ) {
-    out << "point ";
-    out.display_int_w ( ++cnt , nb );
-    out << "/" << nb << ": ( ";
-    it->get_point()->Point::display ( out                               ,
-				      " "                               ,
-				      2                                 ,
-				      NOMAD::Point::get_display_limit()   );
-    out << " )" << std::endl;
-  }
-
-  // close indented block:
-  out.close_block();
+    const NOMAD::Display & out = _p.out();
+    int cnt = 0 , nb = static_cast<int>(_eval_lop.size());
+    
+    if ( nb == 0 )
+    {
+        out << std::endl << "no evaluation point" << std::endl;
+        return;
+    }
+    
+    // open indented block:
+    std::ostringstream oss;
+    if ( t != NOMAD::UNDEFINED_SEARCH )
+        oss << t << " ";
+    oss << "evaluation point";
+    if ( nb > 1 )
+        oss << "s";
+    out << std::endl << NOMAD::open_block ( oss.str() ) << std::endl;
+    
+    // display the points:
+    std::set<NOMAD::Priority_Eval_Point>::const_iterator it , end = _eval_lop.end();
+    for ( it = _eval_lop.begin() ; it != end ; ++it )
+    {
+        out << "point ";
+        out.display_int_w ( ++cnt , nb );
+        out << "/" << nb << ": ( ";
+        it->get_point()->Point::display ( out                               ,
+                                         " "                               ,
+                                         2                                 ,
+                                         NOMAD::Point::get_display_limit()   );
+        out << " )" << std::endl;
+    }
+    
+    // close indented block:
+    out.close_block();
 }
 
 /*--------------------------------------------------------------*/
@@ -3675,118 +3381,118 @@ void NOMAD::Evaluator_Control::display_eval_lop ( NOMAD::search_type t ) const
 /*  . periodic variables are checked                            */
 /*--------------------------------------------------------------*/
 void NOMAD::Evaluator_Control::add_eval_point( NOMAD::Eval_Point  *& x              ,
-											  NOMAD::dd_type        display_degree ,
-											  bool                  snap_to_bounds ,
-											  const NOMAD::Double & f_sgte         ,
-											  const NOMAD::Double & h_sgte         ,
-											  const NOMAD::Double & f_model        ,
-											  const NOMAD::Double & h_model         )
+                                              NOMAD::dd_type        display_degree ,
+                                              bool                  snap_to_bounds ,
+                                              const NOMAD::Double & f_sgte         ,
+                                              const NOMAD::Double & h_sgte         ,
+                                              const NOMAD::Double & f_model        ,
+                                              const NOMAD::Double & h_model         )
 {
-	if ( !x )
-		return;
-	
-	const NOMAD::Display & out = _p.out();
-	
-	// treat the periodic variables:
-	NOMAD::Direction * new_dir = NULL;
-	
-	if ( _p.has_periodic_variables() &&
-		x->treat_periodic_variables ( new_dir ) ) 
-	{
-		
-		if ( new_dir && new_dir->norm() == 0.0 ) 
-		{
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out << "point #" << x->get_tag()
-				<< " is flushed (||dir||==0)"
-				<< std::endl;
-			
-			delete x;
-			x = NULL;
-			
-			delete new_dir;
-			
-			return;
-		}
-	}
-	delete new_dir;
-	
-	if ( snap_to_bounds && x->snap_to_bounds() )
-	{
-		
-		if ( display_degree == NOMAD::FULL_DISPLAY ) 
-		{
-			out << std::endl << "point #" << x->get_tag() << " ";
-			if ( x->get_direction() && x->get_direction()->get_index() >= 0 )
-				out << "(dir " << x->get_direction()->get_index() << ") ";
-			out << "has been snapped to bounds" << std::endl;
-		}
-		
-		if ( x->get_direction() && x->get_direction()->norm() == 0.0 )
-		{
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out << "point #" << x->get_tag()
-				<< " is flushed (||dir||==0)"
-				<< std::endl;
-			delete x;
-			x = NULL;
-			
-			return;
-		}
-	}
-	
-	// creation of the Priority_Eval_Point:
-	NOMAD::Priority_Eval_Point pep ( x , _p.get_h_min() );
-	
-	// ordering elements of Priority_Eval_Point's:
-	// -------------------------------------------
-	
-	// 1. surrogate values for f and h:
-	pep.set_f_sgte ( f_sgte );
-	pep.set_h_sgte ( h_sgte );
-	
-	// 2. model values for f and h:
-	pep.set_f_model ( f_model );
-	pep.set_h_model ( h_model );
-	
-	if ( x->get_direction() )
-	{
-		
-		// get the signature:
-		NOMAD::Signature * signature = x->get_signature();
-		if ( !signature )
-			throw NOMAD::Exception ( "Evaluator_Control.cpp" , __LINE__ ,
-									"Evaluator_Control::add_eval_point(): the point has no signature" );
-		
-		// angle with last successful directions (feasible)
-		const NOMAD::Direction & feas_success_dir = signature->get_feas_success_dir();
-		if ( feas_success_dir.is_defined() &&
-			x->get_poll_center_type() == NOMAD::FEASIBLE  )  
-			pep.set_angle_success_dir ( feas_success_dir.get_angle ( *x->get_direction() ) );
-		
-		// angle with last infeasible success direction:
-		const NOMAD::Direction & infeas_success_dir = signature->get_infeas_success_dir();
-		if ( infeas_success_dir.is_defined() &&
-			x->get_poll_center_type() == NOMAD::INFEASIBLE  )
-			pep.set_angle_success_dir ( infeas_success_dir.get_angle ( *x->get_direction() ) );
-
-	}
-	
-	
-	
-	// insertion of the point in _eval_lop:
-	// ------------------------------------
-	size_t size_before = _eval_lop.size();
-	
-	_eval_lop.insert ( pep );
-	
-	if ( _eval_lop.size() == size_before )
-	{
-		delete x;
-		x = NULL;
-	}
+    if ( !x )
+        return;
+    
+    const NOMAD::Display & out = _p.out();
+    
+    // treat the periodic variables:
+    NOMAD::Direction * new_dir = NULL;
+    
+    if ( _p.has_periodic_variables() &&
+        x->treat_periodic_variables ( new_dir ) )
+    {
+        
+        if ( new_dir && new_dir->norm() == 0.0 )
+        {
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << "point #" << x->get_tag()
+                << " is flushed (||dir||==0)"
+                << std::endl;
+            
+            delete x;
+            x = NULL;
+            
+            delete new_dir;
+            
+            return;
+        }
+    }
+    delete new_dir;
+    
+    if ( snap_to_bounds && x->snap_to_bounds() )
+    {
+        
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
+            out << std::endl << "point #" << x->get_tag() << " ";
+            if ( x->get_direction() && x->get_direction()->get_index() >= 0 )
+                out << "(dir " << x->get_direction()->get_index() << ") ";
+            out << "has been snapped to bounds" << std::endl;
+        }
+        
+        if ( x->get_direction() && x->get_direction()->norm() == 0.0 )
+        {
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << "point #" << x->get_tag()
+                << " is flushed (||dir||==0)"
+                << std::endl;
+            delete x;
+            x = NULL;
+            
+            return;
+        }
+    }
+    
+    // creation of the Priority_Eval_Point:
+    NOMAD::Priority_Eval_Point pep ( x , _p.get_h_min() );
+    
+    // ordering elements of Priority_Eval_Point's:
+    // -------------------------------------------
+    
+    // 1. surrogate values for f and h:
+    pep.set_f_sgte ( f_sgte );
+    pep.set_h_sgte ( h_sgte );
+    
+    // 2. model values for f and h:
+    pep.set_f_model ( f_model );
+    pep.set_h_model ( h_model );
+    
+    if ( x->get_direction() )
+    {
+        
+        // get the signature:
+        NOMAD::Signature * signature = x->get_signature();
+        if ( !signature )
+            throw NOMAD::Exception ( "Evaluator_Control.cpp" , __LINE__ ,
+                                    "Evaluator_Control::add_eval_point(): the point has no signature" );
+        
+        // angle with last successful directions (feasible)
+        const NOMAD::Direction & feas_success_dir = signature->get_feas_success_dir();
+        if ( feas_success_dir.is_defined() &&
+            x->get_poll_center_type() == NOMAD::FEASIBLE  )
+            pep.set_angle_success_dir ( feas_success_dir.get_angle ( *x->get_direction() ) );
+        
+        // angle with last infeasible success direction:
+        const NOMAD::Direction & infeas_success_dir = signature->get_infeas_success_dir();
+        if ( infeas_success_dir.is_defined() &&
+            x->get_poll_center_type() == NOMAD::INFEASIBLE  )
+            pep.set_angle_success_dir ( infeas_success_dir.get_angle ( *x->get_direction() ) );
+        
+    }
+    
+    
+    
+    // insertion of the point in _eval_lop:
+    // ------------------------------------
+    size_t size_before = _eval_lop.size();
+    
+    _eval_lop.insert ( pep );
+    
+    if ( _eval_lop.size() == size_before )
+    {
+        delete x;
+        x = NULL;
+    }
 }
 
 #ifdef MODEL_STATS
@@ -3807,50 +3513,55 @@ void NOMAD::Evaluator_Control::add_eval_point( NOMAD::Eval_Point  *& x
 void NOMAD::Evaluator_Control::display_model_stats
 ( const std::list<const NOMAD::Eval_Point *> & evaluated_pts ) const
 {
-  const NOMAD::Display & out = _p.out();
-
-  NOMAD::Double h , mh , eh , f , mf , ef;
-
-  std::list<const NOMAD::Eval_Point *>::const_iterator it , end = evaluated_pts.end();
-  for ( it = evaluated_pts.begin() ; it != end ; ++it ) {
-    if ( *it && (*it)->get_mod_use() >= 0 ) {
-
-      if ( _p.has_constraints() ) {
-	h  = (*it)->get_h ();
-	mh = (*it)->get_mh();
-      }
-      else
-	h = mh = 0.0;
-
-      f  = (*it)->get_f ();
-      mf = (*it)->get_mf();
-
-      if ( h.is_defined() && mh.is_defined() && f.is_defined() && mf.is_defined() ) {
-
-	ef = f.rel_err ( mf ) * 100.0;
-
-	out << (*it)->get_mod_use()
-	    << " " << std::setw(3) << NOMAD::Mesh::get_mesh_index()
-	    << " " << std::setw(4) << (*it)->get_nY()
-	    << " ";
-
-	(*it)->get_Yw  ().display ( out , "%12.3g" ); out << " ";
-	(*it)->get_cond().display ( out , "%12.3g" ); out << " ";
-	if ( _p.has_constraints() ) {
-	  eh = h.rel_err ( mh ) * 100.0;
-	  h.display  ( out , "%14.3g" ); out << " ";
-	  mh.display ( out , "%14.3g" ); out << " ";
-	  eh.display ( out , "%14.3g" ); out << " ";
-	}
-	f.display  ( out , "%14.3g" ); out << " ";
-	mf.display ( out , "%14.3g" ); out << " ";
-	ef.display ( out , "%14.3g" );
-	
-	out << std::endl;
-      }
-
-      (*it)->clear_model_data();
+    const NOMAD::Display & out = _p.out();
+    
+    NOMAD::Double h , mh , eh , f , mf , ef;
+    
+    std::list<const NOMAD::Eval_Point *>::const_iterator it , end = evaluated_pts.end();
+    for ( it = evaluated_pts.begin() ; it != end ; ++it )
+    {
+        if ( *it && (*it)->get_mod_use() >= 0 )
+        {
+            
+            if ( _p.has_constraints() )
+            {
+                h  = (*it)->get_h ();
+                mh = (*it)->get_mh();
+            }
+            else
+                h = mh = 0.0;
+            
+            f  = (*it)->get_f ();
+            mf = (*it)->get_mf();
+            
+            if ( h.is_defined() && mh.is_defined() && f.is_defined() && mf.is_defined() )
+            {
+                
+                ef = f.rel_err ( mf ) * 100.0;
+                
+                out << (*it)->get_mod_use()
+                << " " << std::setw(3) << NOMAD::Mesh::get_mesh_index()
+                << " " << std::setw(4) << (*it)->get_nY()
+                << " ";
+                
+                (*it)->get_Yw  ().display ( out , "%12.3g" ); out << " ";
+                (*it)->get_cond().display ( out , "%12.3g" ); out << " ";
+                if ( _p.has_constraints() )
+                {
+                    eh = h.rel_err ( mh ) * 100.0;
+                    h.display  ( out , "%14.3g" ); out << " ";
+                    mh.display ( out , "%14.3g" ); out << " ";
+                    eh.display ( out , "%14.3g" ); out << " ";
+                }
+                f.display  ( out , "%14.3g" ); out << " ";
+                mf.display ( out , "%14.3g" ); out << " ";
+                ef.display ( out , "%14.3g" );
+                
+                out << std::endl;
+            }
+            
+            (*it)->clear_model_data();
+        }
     }
-  }
 }
 #endif
diff --git a/src/Evaluator_Control.hpp b/src/Evaluator_Control.hpp
index d0bfb6f..7ec88a0 100644
--- a/src/Evaluator_Control.hpp
+++ b/src/Evaluator_Control.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -48,10 +55,6 @@
 #include "Slave.hpp"
 #include "Quad_Model.hpp"
 
-#ifdef USE_TGP
-#include "TGP_Model.hpp"
-#endif
-
 #ifdef R_VERSION
 extern "C" {
 #include <Rinternals.h>
@@ -112,10 +115,6 @@ namespace NOMAD {
         NOMAD::Slave * _slave; // Slave object for master process
 #endif
         
-#ifdef USE_TGP
-        NOMAD::TGP_Model   * _last_TGP_model;       ///< Last TGP model from the model search.
-#endif
-        
         NOMAD::Model_Stats   _model_ordering_stats; ///< Model ordering stats.
         NOMAD::Stats       & _stats;                ///< Algorithm stats.
         
@@ -145,11 +144,11 @@ namespace NOMAD {
         
         /// Save the solution file or update the history file.
         /**
-         \param file_name		Name of the file -- \b IN.
-         \param x				Lattest solution -- \b IN.
-         \param is_sol		Flag equal to \c true if the file is
-         a solution file; otherwise it is a history file.
-         \param display_bimv	Display best infeasible (min. viol.) if \c true
+         \param file_name       Name of the file                        -- \b IN.
+         \param x               Lattest solution                        -- \b IN.
+         \param is_sol          Flag equal to \c true if the file is
+         a solution file; otherwise it is a history file.               -- \b IN.
+         \param display_bimv    Display best infeasible (min. viol.)(optional) if \c true
          */
         void write_sol_or_his_file ( const std::string        & file_name ,
                                     const NOMAD::Eval_Point  & x         ,
@@ -235,13 +234,7 @@ namespace NOMAD {
         void quad_model_ordering ( NOMAD::dd_type   display_degree ,
                                   bool           & modified_list    );
         
-        /// TGP model ordering (parameter \c MODEL_EVAL_SORT).
-        /**
-         \param display_degree Display degree                              -- \b IN.
-         \param modified_list  To indicate a change in the evaluation list -- \b OUT.
-         */
-        void TGP_model_ordering ( NOMAD::dd_type   display_degree ,
-                                 bool           & modified_list    );
+        
         
         /// Count the output stats (STAT_SUM and STAT_AVG).
         /**
@@ -294,24 +287,24 @@ namespace NOMAD {
         
         /// Evaluate points.
         /*
-         \param list_x			The list of points						-- \b IN/OUT.
-         \param true_barrier		Barrier for true evaluations			-- \b IN/OUT.
-         \param sgte_barrier		Barrier for surrogate evaluations		-- \b IN/OUT.
-         \param pareto_front		A pointer to the Pareto front			-- \b IN/OUT
+         \param list_x              The list of points                          -- \b IN/OUT.
+         \param true_barrier        Barrier for true evaluations                -- \b IN/OUT.
+         \param sgte_barrier        Barrier for surrogate evaluations           -- \b IN/OUT.
+         \param pareto_front        A pointer to the Pareto front               -- \b IN/OUT
          (may be \c NULL).
-         \param list_count_eval	A list of bool for counted evaluations	-- \b OUT.
-         \param stop				Stop flag								-- \b IN/OUT.
-         \param stop_reason		Stop reason								-- \b OUT.
-         \param h_max				Maximal feasibility value				-- \b IN.
+         \param list_count_eval     A list of bool for counted evaluations      -- \b OUT.
+         \param stop                Stop flag                                   -- \b IN/OUT.
+         \param stop_reason         Stop reason                                 -- \b OUT.
+         \param h_max               Maximal feasibility value                   -- \b IN.
          */
-        void eval_points ( std::list<NOMAD::Eval_Point *>	& list_x            ,
-                          NOMAD::Barrier					& true_barrier ,
-                          NOMAD::Barrier					& sgte_barrier ,
-                          NOMAD::Pareto_Front				* pareto_front ,
-                          std::list<bool>					& list_count_eval   ,
-                          bool							& stop         ,
-                          NOMAD::stop_type				& stop_reason  ,
-                          const NOMAD::Double				& h_max          );
+        void eval_points ( std::list<NOMAD::Eval_Point *>   & list_x            ,
+                          NOMAD::Barrier                    & true_barrier      ,
+                          NOMAD::Barrier                    & sgte_barrier      ,
+                          NOMAD::Pareto_Front               * pareto_front      ,
+                          std::list<bool>                   & list_count_eval   ,
+                          bool                              & stop              ,
+                          NOMAD::stop_type                  & stop_reason       ,
+                          const NOMAD::Double               & h_max             );
         
         
         
@@ -388,17 +381,16 @@ namespace NOMAD {
          \param success        Success for these evaluations           -- \b OUT.
          \param evaluated_pts  List of processed points                -- \b OUT.
          */
-        void private_eval_list_of_points
-        ( NOMAD::search_type                     search         ,
-         NOMAD::Barrier                       & true_barrier   ,
-         NOMAD::Barrier                       & sgte_barrier   ,
-         NOMAD::Pareto_Front                  * pareto_front   ,
-         bool                                 & stop           ,
-         NOMAD::stop_type                     & stop_reason    ,
-         const NOMAD::Eval_Point             *& new_feas_inc   ,
-         const NOMAD::Eval_Point             *& new_infeas_inc ,
-         NOMAD::success_type                  & success        ,
-         std::list<const NOMAD::Eval_Point *> & evaluated_pts    );
+        void private_eval_list_of_points ( NOMAD::search_type                     search         ,
+                                          NOMAD::Barrier                       & true_barrier   ,
+                                          NOMAD::Barrier                       & sgte_barrier   ,
+                                          NOMAD::Pareto_Front                  * pareto_front   ,
+                                          bool                                 & stop           ,
+                                          NOMAD::stop_type                     & stop_reason    ,
+                                          const NOMAD::Eval_Point             *& new_feas_inc   ,
+                                          const NOMAD::Eval_Point             *& new_infeas_inc ,
+                                          NOMAD::success_type                  & success        ,
+                                          std::list<const NOMAD::Eval_Point *> & evaluated_pts    );
         
         
 #ifdef MODEL_STATS
@@ -435,7 +427,7 @@ namespace NOMAD {
             Evaluator_Control::_force_quit = true;
         }
         
-        /// Force evaluation failure.
+        /// Force evaluation failure!
         static void force_evaluation_failure ( void )
         {
             Evaluator_Control::_force_evaluation_failure = true;
@@ -539,8 +531,8 @@ namespace NOMAD {
         
         /// Update the solution file.
         /**
-         \param x				The lattest solution									-- \b IN.
-         \param display_bimv	Required to display least infeasible (default=false)	-- \b IN
+         \param x                The lattest solution                                   -- \b IN.
+         \param display_bimv    Required to display least infeasible (default=false)    -- \b IN
          */
         void write_solution_file ( const NOMAD::Eval_Point & x , bool display_bimv=false) const;
         
@@ -613,13 +605,6 @@ namespace NOMAD {
          */
         void set_evaluator ( NOMAD::Evaluator * e ) { _ev = e; }
         
-#ifdef USE_TGP
-        /// Set the last TGP model from the model search.
-        /**
-         \param m The last TGP model -- \b IN.
-         */
-        void set_last_TGP_model ( NOMAD::TGP_Model * m ) { _last_TGP_model = m; }
-#endif
         
         /// Reset.
         void reset ( void );
@@ -633,13 +618,12 @@ namespace NOMAD {
          \param true_barrier   Barrier for true evaluations            -- \b IN/OUT.
          \param sgte_barrier   Barrier for surrogate evaluations       -- \b IN/OUT.
          */
-        void ordering_lop
-        ( NOMAD::search_type              search             , // IN    : search type
-         bool                                 & stop           ,
-         NOMAD::stop_type                     & stop_reason    ,
-         NOMAD::Barrier                & true_barrier       , // IN/OUT: truth barrier
-         NOMAD::Barrier                & sgte_barrier        // IN/OUT: surrogate barrier
-        );
+        void ordering_lop ( NOMAD::search_type              search             , // IN    : search type
+                           bool                                 & stop           ,
+                           NOMAD::stop_type                     & stop_reason    ,
+                           NOMAD::Barrier                & true_barrier       , // IN/OUT: truth barrier
+                           NOMAD::Barrier                & sgte_barrier );       // IN/OUT: surrogate barrier
+        
         
         
         
@@ -658,17 +642,16 @@ namespace NOMAD {
          \param success        Success for this series of evaluations  -- \b OUT.
          \param evaluated_pts  List of processed points                -- \b OUT.
          */
-        void eval_list_of_points
-        ( NOMAD::search_type                     search         ,
-         NOMAD::Barrier                       & true_barrier   ,
-         NOMAD::Barrier                       & sgte_barrier   ,
-         NOMAD::Pareto_Front                  * pareto_front   ,
-         bool                                 & stop           ,
-         NOMAD::stop_type                     & stop_reason    ,
-         const NOMAD::Eval_Point             *& new_feas_inc   ,
-         const NOMAD::Eval_Point             *& new_infeas_inc ,
-         NOMAD::success_type                  & success        ,
-         std::list<const NOMAD::Eval_Point *> * evaluated_pts = NULL );
+        void eval_list_of_points ( NOMAD::search_type                     search         ,
+                                  NOMAD::Barrier                       & true_barrier   ,
+                                  NOMAD::Barrier                       & sgte_barrier   ,
+                                  NOMAD::Pareto_Front                  * pareto_front   ,
+                                  bool                                 & stop           ,
+                                  NOMAD::stop_type                     & stop_reason    ,
+                                  const NOMAD::Eval_Point             *& new_feas_inc   ,
+                                  const NOMAD::Eval_Point             *& new_infeas_inc ,
+                                  NOMAD::success_type                  & success        ,
+                                  std::list<const NOMAD::Eval_Point *> * evaluated_pts = NULL );
         
         /// Add a point to the list of points to be evaluated.
         /**
@@ -765,8 +748,7 @@ namespace NOMAD {
                                    bool                          & stop           ,
                                    NOMAD::stop_type              & stop_reason    ,
                                    NOMAD::success_type           & success        ,
-                                   std::list<const NOMAD::Eval_Point *>
-                                   & evaluated_pts    );
+                                   std::list<const NOMAD::Eval_Point *> & evaluated_pts    );
 #endif
     };
 }
diff --git a/src/Exception.cpp b/src/Exception.cpp
index cd72299..b455c0d 100644
--- a/src/Exception.cpp
+++ b/src/Exception.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Exception.cpp
-  \brief  custom class for exceptions (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-03-29
-  \see    Exception.hpp
-*/
+ \file   Exception.cpp
+ \brief  custom class for exceptions (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-03-29
+ \see    Exception.hpp
+ */
 #include "Exception.hpp"
 
 /*----------------------------------------------------------------*/
@@ -47,10 +54,10 @@
 /*----------------------------------------------------------------*/
 const char * NOMAD::Exception::what ( void ) const throw()
 {
-  std::ostringstream oss;
-  oss << "NOMAD::Exception thrown (" << _file << ", " << _line << ")";
-  if ( !_what.empty() )
-    oss << " " << _what;
-  _what = oss.str();
-  return _what.c_str();
+    std::ostringstream oss;
+    oss << "NOMAD::Exception thrown (" << _file << ", " << _line << ")";
+    if ( !_what.empty() )
+        oss << " " << _what;
+    _what = oss.str();
+    return _what.c_str();
 }
diff --git a/src/Exception.hpp b/src/Exception.hpp
index 5e32917..84f0c7f 100644
--- a/src/Exception.hpp
+++ b/src/Exception.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,62 +41,62 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Exception.hpp
-  \brief  Custom class for exceptions (headers)
-  \author Sebastien Le Digabel
-  \date   2010-03-29
-  \see    Exception.cpp
-*/
+ \file   Exception.hpp
+ \brief  Custom class for exceptions (headers)
+ \author Sebastien Le Digabel
+ \date   2010-03-29
+ \see    Exception.cpp
+ */
 #ifndef __NOMAD_EXCEPTION__
 #define __NOMAD_EXCEPTION__
 
 #include <sstream>
 
 namespace NOMAD {
-
-  /// Custom class for exceptions.
-  /**
+    
+    /// Custom class for exceptions.
+    /**
      NOMAD uses this type of exceptions.
      It indicates the file and line number at which a throw is made.
-
+     
      \b Example
-
+     
      \code
      throw NOMAD::Exception ( __FILE__ , __LINE__ , "an error message" );
      \endcode
-   */
-  class Exception : public std::exception {
-
-  private:
-
-    mutable std::string _what;  ///< Error message.
-    std::string         _file;  ///< File where the exception is thrown.
-    int                 _line;  ///< Line number at which the exception is thrown.
-
-  public:
-
-    /// Constructor.
-    /**
-       \param file A string corresponding to the file where the
-                     exception is thrown -- \b IN
-       \param line An integer corresponding to the line number
-                     at which the exception is thrown -- \b IN.
-       \param msg  A string corresponding to the error message -- \b IN.
      */
-    Exception ( const std::string & file , int line , const std::string & msg )
-      : _what ( msg  ) ,
-	_file ( file ) ,
-	_line ( line )   {}
-
-    /// Destructor.
-    virtual ~Exception ( void ) throw() {}
-
-    /// Access to the error message.
-    /**
-       \return A string with the error message.
-    */
-    const char * what ( void ) const throw();
-  };
+    class Exception : public std::exception {
+        
+    private:
+        
+        mutable std::string _what;  ///< Error message.
+        std::string         _file;  ///< File where the exception is thrown.
+        int                 _line;  ///< Line number at which the exception is thrown.
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param file A string corresponding to the file where the
+         exception is thrown -- \b IN
+         \param line An integer corresponding to the line number
+         at which the exception is thrown -- \b IN.
+         \param msg  A string corresponding to the error message -- \b IN.
+         */
+        Exception ( const std::string & file , int line , const std::string & msg )
+        : _what ( msg  ) ,
+        _file ( file ) ,
+        _line ( line )   {}
+        
+        /// Destructor.
+        virtual ~Exception ( void ) throw() {}
+        
+        /// Access to the error message.
+        /**
+         \return A string with the error message.
+         */
+        const char * what ( void ) const throw();
+    };
 }
 
 #endif
diff --git a/src/Extended_Poll.cpp b/src/Extended_Poll.cpp
index 4344e92..f09390f 100644
--- a/src/Extended_Poll.cpp
+++ b/src/Extended_Poll.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -126,12 +133,13 @@ void NOMAD::Extended_Poll::add_extended_poll_point ( NOMAD::Point     & ep ,
     // new eval point:
     // ---------------
     NOMAD::Eval_Point * pt  = new NOMAD::Eval_Point;
-    pt->set				 ( ep , _p.get_bb_nb_outputs() );
-    pt->set_signature	 ( new_s                       );
+    pt->set ( ep , _p.get_bb_nb_outputs() );
+    pt->set_signature ( new_s );
+    
     
     for ( int i = 0 ; i < pt->get_n() ; ++i )
     {
-        if (  (pt->get_signature()->get_input_type())[i] != NOMAD::CONTINUOUS && ! (*pt)[i].is_integer() )
+        if (  (pt->get_signature()->get_input_types())[i] != NOMAD::CONTINUOUS && ! (*pt)[i].is_integer() )
             
             throw NOMAD::Exception ( "Extended_Poll.cpp" , __LINE__ ,
                                     "NOMAD::Extended_Poll::add_extended_points(): the categorical variables of the added point must be an integer." );
@@ -292,8 +300,8 @@ void NOMAD::Extended_Poll::descent ( const NOMAD::Eval_Point  * y
     
     
     // Set mesh indices to 0
-    NOMAD::Point delta( signature->get_n(), 0 );
-    descent_p.get_signature()->get_mesh()->set_mesh_indices( delta );
+    NOMAD::Point zero_mesh_indices( signature->get_n(), 0 );
+    descent_p.get_signature()->get_mesh()->set_mesh_indices( zero_mesh_indices );
     
     // Use best_feasible or best_infeasible limit mesh index as a termination criterion for descent
     const NOMAD::Eval_Point * old_bf = mads.get_best_feasible();
@@ -303,9 +311,10 @@ void NOMAD::Extended_Poll::descent ( const NOMAD::Eval_Point  * y
         l1 = static_cast<int>((old_bf->get_signature()->get_mesh()->get_min_mesh_indices())[0].value());  // index same for all variables when using categorical variable
     else if ( old_bi )
         l2 = static_cast<int>((old_bi->get_signature()->get_mesh()->get_min_mesh_indices())[0].value());
-    descent_p.get_signature()->get_mesh()->set_limit_mesh_index( min( l1, l2) );
     
     
+    descent_p.get_signature()->get_mesh()->set_limit_mesh_index( std::min( l1, l2) );    
+    
     
     // Evaluator_Control object:
     NOMAD::Evaluator_Control & ev_control = mads.get_evaluator_control();
@@ -508,10 +517,9 @@ void NOMAD::Extended_Poll::descent ( const NOMAD::Eval_Point  * y
 /*----------------------------------------------------------------*/
 /*               create the descent parameters (private)          */
 /*----------------------------------------------------------------*/
-void NOMAD::Extended_Poll::set_descent_parameters
-( const NOMAD::Eval_Point * y         ,
- const NOMAD::Stats      & stats     ,
- NOMAD::Parameters       & descent_p   ) const
+void NOMAD::Extended_Poll::set_descent_parameters ( const NOMAD::Eval_Point * y         ,
+                                                   const NOMAD::Stats      & stats     ,
+                                                   NOMAD::Parameters       & descent_p   ) const
 {
     
     // extended poll center signature
@@ -527,6 +535,7 @@ void NOMAD::Extended_Poll::set_descent_parameters
     descent_p.set_LOWER_BOUND       ( epc_signature->get_lb()                 );
     descent_p.set_UPPER_BOUND       ( epc_signature->get_ub()                 );
     descent_p.set_FIXED_VARIABLE    ( epc_signature->get_fixed_variables()    );
+    descent_p.set_GRANULARITY       ( epc_signature->get_granularity()        );
     descent_p.set_PERIODIC_VARIABLE ( epc_signature->get_periodic_variables() );
     descent_p.set_VARIABLE_GROUP    ( epc_signature->get_var_groups()         );
     descent_p.set_BB_OUTPUT_TYPE    ( _p.get_bb_output_type() );
@@ -565,9 +574,9 @@ void NOMAD::Extended_Poll::set_descent_parameters
         descent_p.set_MODEL_EVAL_SORT ( _p.get_model_eval_sort());
         descent_p.set_MODEL_SEARCH (_p.has_model_search());
         
-        
     }
     
+    
     descent_p.set_LH_SEARCH   ( 0 , 0 );
     
     int bbe       = stats.get_bb_eval();
@@ -619,8 +628,8 @@ void NOMAD::Extended_Poll::set_descent_parameters
     descent_p.set_OPPORTUNISTIC_MIN_F_IMPRVMT  ( _p.get_opportunistic_min_f_imprvmt()  );
     descent_p.set_OPPORTUNISTIC_MIN_NB_SUCCESS ( _p.get_opportunistic_min_nb_success() );
     
-    if (_p.eval_points_as_block())
-        descent_p.set_BB_MAX_BLOCK_SIZE(	_p.get_bb_max_block_size()		);
+    if ( _p.eval_points_as_block() )
+        descent_p.set_BB_MAX_BLOCK_SIZE( _p.get_bb_max_block_size() );
     
     
     descent_p.set_CACHE_FILE        ( _p.get_cache_file()        );
@@ -632,7 +641,7 @@ void NOMAD::Extended_Poll::set_descent_parameters
     descent_p.set_DISPLAY_ALL_EVAL(_p.get_display_all_eval());
     if ( _p.out().get_poll_dd() == NOMAD::FULL_DISPLAY )
         descent_p.set_DISPLAY_DEGREE ( NOMAD::NORMAL_DISPLAY );
-    else if (_p.out().get_poll_dd() == NOMAD::NORMAL_DISPLAY )
+    else if ( _p.out().get_poll_dd() == NOMAD::NORMAL_DISPLAY )
         descent_p.set_DISPLAY_DEGREE ( NOMAD::MINIMAL_DISPLAY );
     else
         descent_p.set_DISPLAY_DEGREE ( _p.out().get_poll_dd());
@@ -680,8 +689,7 @@ void NOMAD::Extended_Poll::set_descent_parameters
         const OrthogonalMesh * mesh = epc_signature->get_mesh();
         descent_p.set_MIN_MESH_SIZE ( mesh->get_min_mesh_size() );
         descent_p.set_MIN_POLL_SIZE ( mesh->get_min_poll_size() );
-        descent_p.set_INITIAL_POLL_SIZE ( mesh->get_initial_poll_size() , false );
-        
+        descent_p.set_INITIAL_POLL_SIZE ( mesh->get_initial_poll_size() , false );        
     }
     
     // check the parameters:
@@ -703,14 +711,13 @@ void NOMAD::Extended_Poll::set_descent_parameters
 /*----------------------------------------------------------------*/
 /*            evaluation of an extended poll point (private)      */
 /*----------------------------------------------------------------*/
-const NOMAD::Eval_Point * NOMAD::Extended_Poll::eval_epp
-( NOMAD::Eval_Point        * y              ,
- Mads                     & mads           ,
- bool                     & stop           ,
- NOMAD::stop_type         & stop_reason    ,
- NOMAD::success_type      & success        ,
- const NOMAD::Eval_Point *& new_feas_inc   ,
- const NOMAD::Eval_Point *& new_infeas_inc ) const
+const NOMAD::Eval_Point * NOMAD::Extended_Poll::eval_epp ( NOMAD::Eval_Point        * y              ,
+                                                          Mads                     & mads           ,
+                                                          bool                     & stop           ,
+                                                          NOMAD::stop_type         & stop_reason    ,
+                                                          NOMAD::success_type      & success        ,
+                                                          const NOMAD::Eval_Point *& new_feas_inc   ,
+                                                          const NOMAD::Eval_Point *& new_infeas_inc ) const
 {
     NOMAD::Evaluator_Control & ev_control     = mads.get_evaluator_control();
     const NOMAD::Display     & out            = _p.out();
@@ -804,7 +811,8 @@ void NOMAD::Extended_Poll::run ( Mads                     & mads            ,
             out << std::endl << NOMAD::open_block ( oss.str() ) << std::endl;
         }
         
-        if ( has_sgte ) {
+        if ( has_sgte )
+        {
             _p.set_SGTE_EVAL_SORT ( false ); // this ensures that only surrogate
             _p.force_check_flag();           // evaluations are performed
         }
@@ -855,7 +863,8 @@ void NOMAD::Extended_Poll::run ( Mads                     & mads            ,
                                         &evaluated_pts            );
         if ( has_sgte )
         {
-            if ( !_p.get_opt_only_sgte() ) {
+            if ( !_p.get_opt_only_sgte() )
+            {
                 success      = NOMAD::UNSUCCESSFUL;
                 new_feas_inc = new_infeas_inc = NULL;
             }
@@ -982,8 +991,7 @@ void NOMAD::Extended_Poll::run ( Mads                     & mads            ,
 /*  sort the extended poll points after they have been evaluated  */
 /*  (private)                                                     */
 /*----------------------------------------------------------------*/
-void NOMAD::Extended_Poll::sort_epp
-( const std::list<const NOMAD::Eval_Point *> & evaluated_pts )
+void NOMAD::Extended_Poll::sort_epp ( const std::list<const NOMAD::Eval_Point *> & evaluated_pts )
 {
     const NOMAD::Display                 & out            = _p.out();
     NOMAD::dd_type                         display_degree = out.get_poll_dd();
@@ -1034,7 +1042,7 @@ void NOMAD::Extended_Poll::sort_epp
         y->Point::operator = ( *cur );
         
         // display:
-        if ( display_degree == NOMAD::FULL_DISPLAY ) 
+        if ( display_degree == NOMAD::FULL_DISPLAY )
         {
             out << "point #";
             out.display_int_w ( ++i , nb_pts );
@@ -1056,11 +1064,12 @@ void NOMAD::Extended_Poll::sort_epp
 /*--------------------------------------------------------------------*/
 bool NOMAD::Extended_Poll::set_neighbors_exe ( std::string & error_str )
 {
-    error_str.clear();    
+    error_str.clear();
     
     _neighbors_exe = _p.get_neighbors_exe();
     
-    if ( _neighbors_exe.empty() ) {
+    if ( _neighbors_exe.empty() )
+    {
         error_str = "categorical variables: parameter NEIGHBORS_EXE is undefined";
         return false;
     }
@@ -1071,16 +1080,18 @@ bool NOMAD::Extended_Poll::set_neighbors_exe ( std::string & error_str )
     NOMAD::get_words ( _neighbors_exe , neighbors_exe_words );
     
     // _neighbors_exe is composed of several words (it is a command):
-    if ( neighbors_exe_words.size() > 1 ) 
+    if ( neighbors_exe_words.size() > 1 )
     {
         
         _neighbors_exe.clear();
         
         std::list<std::string>::const_iterator it  = neighbors_exe_words.begin() ,
         end = neighbors_exe_words.end();
-        while (true) {
+        while (true)
+        {
             
-            if ( (*it)[0] != '$' ) {
+            if ( (*it)[0] != '$' )
+            {
                 _neighbors_exe += "\"" + problem_dir;
                 _neighbors_exe += *it + "\"";
             }
@@ -1148,7 +1159,7 @@ void NOMAD::Extended_Poll::construct_extended_points ( const NOMAD::Eval_Point &
     // input file writing:
     // -------------------
     std::string input_file_name =
-    tmp_dir + NOMAD::BLACKBOX_INPUT_FILE_PREFIX 
+    tmp_dir + NOMAD::BLACKBOX_INPUT_FILE_PREFIX
     + sint + NOMAD::BLACKBOX_INPUT_FILE_EXT;
     
     std::string output_file_name =
@@ -1170,7 +1181,7 @@ void NOMAD::Extended_Poll::construct_extended_points ( const NOMAD::Eval_Point &
     
     fout.close();
     
-    if ( fout.fail() ) 
+    if ( fout.fail() )
     {
         remove ( input_file_name.c_str () );
         std::string err = "could not write file neighbors input file " + input_file_name;
@@ -1207,7 +1218,7 @@ void NOMAD::Extended_Poll::construct_extended_points ( const NOMAD::Eval_Point &
     
     std::ifstream fin ( output_file_name.c_str() );
     
-    if ( fin.fail() ) 
+    if ( fin.fail() )
     {
         remove ( input_file_name.c_str () );
         remove ( output_file_name.c_str() );
@@ -1220,13 +1231,14 @@ void NOMAD::Extended_Poll::construct_extended_points ( const NOMAD::Eval_Point &
     while ( true )
     {
         NOMAD::Point y(n);
-        try 
-        {      
+        try
+        {
             fin >> y;
         }
         catch ( NOMAD::Point::Bad_Input & )
         {
-            if ( y.is_defined() ) {
+            if ( y.is_defined() )
+            {
                 remove ( input_file_name.c_str () );
                 remove ( output_file_name.c_str() );
                 std::string err = "error with neighbor in file " + output_file_name;
diff --git a/src/Extended_Poll.hpp b/src/Extended_Poll.hpp
index 55cdae4..93df428 100644
--- a/src/Extended_Poll.hpp
+++ b/src/Extended_Poll.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Extended_Poll.hpp
-  \brief  Extended poll for categorical variables (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-14
-  \see    Extended_Poll.cpp
-*/
+ \file   Extended_Poll.hpp
+ \brief  Extended poll for categorical variables (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-14
+ \see    Extended_Poll.cpp
+ */
 #ifndef __EXTENDED_POLL__
 #define __EXTENDED_POLL__
 
@@ -47,189 +54,188 @@
 #include "Signature_Element.hpp"
 
 namespace NOMAD {
-
-  /// Generic class for the extended poll.
-  /**
-     This is an abstract class (it is not possible to create
-     NOMAD::Extended_Poll objects).
-  */
-  class Extended_Poll : public NOMAD::Uncopyable {
-
-  protected:
-
-    /// Parameters (includes the standard signature).
-    NOMAD::Parameters  & _p;
-    
-    /// Add an extended poll point.
-    /**
-       Get, check and register the extended point and its signature
-       created by the user in \c construct_extended_points().
-       \param ep Extended poll point  -- \b IN.
-       \param s  Associated signature -- \b IN.
-    */
-    void add_extended_poll_point ( NOMAD::Point & ep , NOMAD::Signature & s );
-
-    /*---------------------------------------------------------------------*/
-
-  private:
-
-    /// Executable for getting neighbors in batch mode.
-    std::string _neighbors_exe;
-
-    /// Set of signatures (does not include the standard signature).
-    std::set<NOMAD::Signature_Element> _signatures;  
-
-    /// Signatures used during one poll step.
-    std::set<NOMAD::Signature_Element> _poll_signatures;
-
-    /// Extended points for one poll step.
-    std::list<NOMAD::Eval_Point *> _extended_points;
-
-    /*---------------------------------------------------------------------*/
-
-    /// Evaluation of an extended poll point.
-    /**
-       \param y              The extended poll point              -- \b IN/OUT.
-       \param mads           NOMAD::Mads object invoking the poll -- \b IN/OUT.
-       \param stop           Stop flag                            -- \b IN/OUT.
-       \param stop_reason    Stop reason                          -- \b OUT.
-       \param success        Type of success                      -- \b OUT.
-       \param new_feas_inc   New feasible incumbent               -- \b IN/OUT.
-       \param new_infeas_inc New infeasible incumbent             -- \b IN/OUT.
-       \return A pointer to the evaluated point; may be \c NULL if
-               the evaluation failed.
-    */
-    const NOMAD::Eval_Point * eval_epp
-    ( NOMAD::Eval_Point        * y              ,
-      Mads                     & mads           ,
-      bool                     & stop           ,
-      NOMAD::stop_type         & stop_reason    ,
-      NOMAD::success_type      & success        ,
-      const NOMAD::Eval_Point *& new_feas_inc   ,
-      const NOMAD::Eval_Point *& new_infeas_inc   ) const;
-    
-    /// Sort the evaluated extended poll points.
-    /**
-       \param evaluated_pts The list of evaluated extended poll points -- \b IN/OUT.
-    */
-    void sort_epp ( const std::list<const NOMAD::Eval_Point *> & evaluated_pts );
-    
-    /// Check the extended poll trigger.
-    /**
-       \param old_bf A pointer to the old best feasible point   -- \b IN.
-       \param old_bi A pointer to the old best infeasible point -- \b IN.
-       \param y      A pointer to the extended poll center      -- \b IN.
-       \return A boolean equal to \c true if the extended poll has to be performed.
-    */
-    bool check_trigger ( const NOMAD::Eval_Point * old_bf ,
-			 const NOMAD::Eval_Point * old_bi ,
-			 const NOMAD::Eval_Point * y        ) const;
-    
-    /// Check only the \c f values for the extended poll trigger.
-    /**
-       \param old_f Old \c f value -- \b IN.
-       \param new_f New \c f value -- \b IN.
-       \return A boolean equal to \c true if the extended poll has to be performed.
-    */
-    bool check_trigger_on_f ( const NOMAD::Double & old_f  ,
-			      const NOMAD::Double & new_f    ) const;
     
-    /// Create the descent parameters.
-    /**
-       \param y     Starting point         -- \b IN.
-       \param stats Stats                  -- \b IN.
-       \param descent_p Descent parameters -- \b IN/OUT.
-    */
-    void set_descent_parameters ( const NOMAD::Eval_Point  * y         ,
-				  const NOMAD::Stats       & stats     ,
-				  NOMAD::Parameters        & descent_p   ) const;
-    
-    /// Descent from the extended poll center.
-    /**
-       \param y               Extended poll center                 -- \b IN.
-       \param mads            NOMAD::Mads object invoking the poll -- \b IN/OUT.
-       \param nb_ext_poll_pts Number of extended poll points       -- \b IN/OUT.
-       \param stop           Stop flag                                -- \b IN/OUT.
-       \param stop_reason    Stop reason                              -- \b OUT.
-       \param success        Type of success                          -- \b OUT.
-       \param new_feas_inc   New feasible incumbent                   -- \b IN/OUT.
-       \param new_infeas_inc New infeasible incumbent                 -- \b IN/OUT.
-    */
-    void descent ( const NOMAD::Eval_Point  * y               ,
-		   Mads                     & mads            ,
-		   int                      & nb_ext_poll_pts ,
-		   bool                     & stop            ,
-		   NOMAD::stop_type         & stop_reason     ,
-		   NOMAD::success_type      & success         ,
-		   const NOMAD::Eval_Point *& new_feas_inc    ,
-		   const NOMAD::Eval_Point *& new_infeas_inc    );
-    
-    /*---------------------------------------------------------------------*/
-
-  public:
-
-    /// Constructor.
-    /**
-       \param p Parameters -- \b IN.
-    */
-    Extended_Poll ( NOMAD::Parameters & p ) : _p ( p ) {}
-  
-    /// Destructor.
-    virtual ~Extended_Poll ( void );
-
-    /// Construct the extended poll points.
+    /// Generic class for the extended poll.
     /**
-       - Has to be implemented by every NOMAD::Extended_Poll subclass.
-       - The extended poll points are the neighbors of \c xk where
+     This is an abstract class (it is not possible to create
+     NOMAD::Extended_Poll objects).
+     */
+    class Extended_Poll : public NOMAD::Uncopyable {
+        
+    protected:
+        
+        /// Parameters (includes the standard signature).
+        NOMAD::Parameters  & _p;
+        
+        /// Add an extended poll point.
+        /**
+         Get, check and register the extended point and its signature
+         created by the user in \c construct_extended_points().
+         \param ep Extended poll point  -- \b IN.
+         \param s  Associated signature -- \b IN.
+         */
+        void add_extended_poll_point ( NOMAD::Point & ep , NOMAD::Signature & s );
+        
+        /*---------------------------------------------------------------------*/
+        
+    private:
+        
+        /// Executable for getting neighbors in batch mode.
+        std::string _neighbors_exe;
+        
+        /// Set of signatures (does not include the standard signature).
+        std::set<NOMAD::Signature_Element> _signatures;
+        
+        /// Signatures used during one poll step.
+        std::set<NOMAD::Signature_Element> _poll_signatures;
+        
+        /// Extended points for one poll step.
+        std::list<NOMAD::Eval_Point *> _extended_points;
+        
+        /*---------------------------------------------------------------------*/
+        
+        /// Evaluation of an extended poll point.
+        /**
+         \param y              The extended poll point              -- \b IN/OUT.
+         \param mads           NOMAD::Mads object invoking the poll -- \b IN/OUT.
+         \param stop           Stop flag                            -- \b IN/OUT.
+         \param stop_reason    Stop reason                          -- \b OUT.
+         \param success        Type of success                      -- \b OUT.
+         \param new_feas_inc   New feasible incumbent               -- \b IN/OUT.
+         \param new_infeas_inc New infeasible incumbent             -- \b IN/OUT.
+         \return A pointer to the evaluated point; may be \c NULL if
+         the evaluation failed.
+         */
+        const NOMAD::Eval_Point * eval_epp ( NOMAD::Eval_Point        * y              ,
+                                            Mads                     & mads           ,
+                                            bool                     & stop           ,
+                                            NOMAD::stop_type         & stop_reason    ,
+                                            NOMAD::success_type      & success        ,
+                                            const NOMAD::Eval_Point *& new_feas_inc   ,
+                                            const NOMAD::Eval_Point *& new_infeas_inc   ) const;
+        
+        /// Sort the evaluated extended poll points.
+        /**
+         \param evaluated_pts The list of evaluated extended poll points -- \b IN/OUT.
+         */
+        void sort_epp ( const std::list<const NOMAD::Eval_Point *> & evaluated_pts );
+        
+        /// Check the extended poll trigger.
+        /**
+         \param old_bf A pointer to the old best feasible point   -- \b IN.
+         \param old_bi A pointer to the old best infeasible point -- \b IN.
+         \param y      A pointer to the extended poll center      -- \b IN.
+         \return A boolean equal to \c true if the extended poll has to be performed.
+         */
+        bool check_trigger ( const NOMAD::Eval_Point * old_bf ,
+                            const NOMAD::Eval_Point * old_bi ,
+                            const NOMAD::Eval_Point * y        ) const;
+        
+        /// Check only the \c f values for the extended poll trigger.
+        /**
+         \param old_f Old \c f value -- \b IN.
+         \param new_f New \c f value -- \b IN.
+         \return A boolean equal to \c true if the extended poll has to be performed.
+         */
+        bool check_trigger_on_f ( const NOMAD::Double & old_f  ,
+                                 const NOMAD::Double & new_f    ) const;
+        
+        /// Create the descent parameters.
+        /**
+         \param y     Starting point         -- \b IN.
+         \param stats Stats                  -- \b IN.
+         \param descent_p Descent parameters -- \b IN/OUT.
+         */
+        void set_descent_parameters ( const NOMAD::Eval_Point  * y         ,
+                                     const NOMAD::Stats       & stats     ,
+                                     NOMAD::Parameters        & descent_p   ) const;
+        
+        /// Descent from the extended poll center.
+        /**
+         \param y               Extended poll center                 -- \b IN.
+         \param mads            NOMAD::Mads object invoking the poll -- \b IN/OUT.
+         \param nb_ext_poll_pts Number of extended poll points       -- \b IN/OUT.
+         \param stop           Stop flag                                -- \b IN/OUT.
+         \param stop_reason    Stop reason                              -- \b OUT.
+         \param success        Type of success                          -- \b OUT.
+         \param new_feas_inc   New feasible incumbent                   -- \b IN/OUT.
+         \param new_infeas_inc New infeasible incumbent                 -- \b IN/OUT.
+         */
+        void descent ( const NOMAD::Eval_Point  * y               ,
+                      Mads                     & mads            ,
+                      int                      & nb_ext_poll_pts ,
+                      bool                     & stop            ,
+                      NOMAD::stop_type         & stop_reason     ,
+                      NOMAD::success_type      & success         ,
+                      const NOMAD::Eval_Point *& new_feas_inc    ,
+                      const NOMAD::Eval_Point *& new_infeas_inc    );
+        
+        /*---------------------------------------------------------------------*/
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p Parameters -- \b IN.
+         */
+        Extended_Poll ( NOMAD::Parameters & p ) : _p ( p ) {}
+        
+        /// Destructor.
+        virtual ~Extended_Poll ( void );
+        
+        /// Construct the extended poll points.
+        /**
+         - Has to be implemented by every NOMAD::Extended_Poll subclass.
+         - The extended poll points are the neighbors of \c xk where
          categorical variables have different values.
-       - The default implementation of this method uses parameter NEIGHBORS_EXE.
-       \param xk Poll center.
-    */
-    virtual void construct_extended_points ( const NOMAD::Eval_Point & xk );
-
-    /// Set the neighbors executable name for the default implementation.
-    /**
-       \param   error_str A string containing a possible error message -- \b OUT.
-       \return  \c true if no error.
-    */
-    bool set_neighbors_exe ( std::string & error_str );
-
-    /// Reset.
-    void reset ( void );
-
-    /// Poll reset.
-    /**
-       Before the extended poll is launched.
-    */
-    void poll_reset ( void );
-
-    /// Access to the poll signatures.
-    /**
-       \return The set of poll signatures.
-    */
-    const std::set<NOMAD::Signature_Element> & get_poll_signatures ( void ) const
-    {
-      return _poll_signatures;
-    }
-
-    /// Run the extended poll.
-    /**
-       \param mads            NOMAD::Mads object invoking this poll -- \b IN/OUT.
-       \param nb_ext_poll_pts Number of extended poll points        -- \b OUT.
-       \param stop            Stop flag                             -- \b IN/OUT.
-       \param stop_reason     Stop reason                           -- \b OUT.
-       \param success         Type of success                       -- \b OUT.
-       \param new_feas_inc    New feasible incumbent                -- \b IN/OUT.
-       \param new_infeas_inc  New infeasible incumbent              -- \b IN/OUT.
-    */
-    void run ( Mads                     & mads             ,
-	       int                      & nb_ext_poll_pts  ,
-	       bool                     & stop             ,
-	       NOMAD::stop_type         & stop_reason      ,
-	       NOMAD::success_type      & success          ,
-	       const NOMAD::Eval_Point *& new_feas_inc     ,
-	       const NOMAD::Eval_Point *& new_infeas_inc     );
-  };
+         - The default implementation of this method uses parameter NEIGHBORS_EXE.
+         \param xk Poll center.
+         */
+        virtual void construct_extended_points ( const NOMAD::Eval_Point & xk );
+        
+        /// Set the neighbors executable name for the default implementation.
+        /**
+         \param   error_str A string containing a possible error message -- \b OUT.
+         \return  \c true if no error.
+         */
+        bool set_neighbors_exe ( std::string & error_str );
+        
+        /// Reset.
+        void reset ( void );
+        
+        /// Poll reset.
+        /**
+         Before the extended poll is launched.
+         */
+        void poll_reset ( void );
+        
+        /// Access to the poll signatures.
+        /**
+         \return The set of poll signatures.
+         */
+        const std::set<NOMAD::Signature_Element> & get_poll_signatures ( void ) const
+        {
+            return _poll_signatures;
+        }
+        
+        /// Run the extended poll.
+        /**
+         \param mads            NOMAD::Mads object invoking this poll -- \b IN/OUT.
+         \param nb_ext_poll_pts Number of extended poll points        -- \b OUT.
+         \param stop            Stop flag                             -- \b IN/OUT.
+         \param stop_reason     Stop reason                           -- \b OUT.
+         \param success         Type of success                       -- \b OUT.
+         \param new_feas_inc    New feasible incumbent                -- \b IN/OUT.
+         \param new_infeas_inc  New infeasible incumbent              -- \b IN/OUT.
+         */
+        void run ( Mads                     & mads             ,
+                  int                      & nb_ext_poll_pts  ,
+                  bool                     & stop             ,
+                  NOMAD::stop_type         & stop_reason      ,
+                  NOMAD::success_type      & success          ,
+                  const NOMAD::Eval_Point *& new_feas_inc     ,
+                  const NOMAD::Eval_Point *& new_infeas_inc     );
+    };
 }
 
 #endif
diff --git a/src/Filter_Point.hpp b/src/Filter_Point.hpp
index 3e74cc4..58de3cf 100644
--- a/src/Filter_Point.hpp
+++ b/src/Filter_Point.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
diff --git a/src/LH_Search.cpp b/src/LH_Search.cpp
index 43d76d1..7450155 100644
--- a/src/LH_Search.cpp
+++ b/src/LH_Search.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -137,7 +144,7 @@ void NOMAD::LH_Search::search ( NOMAD::Mads              & mads           ,
     int                      m          = _p.get_bb_nb_outputs();
     int                      pm1        = p-1;
     
-    // mesh sizes:
+    // mesh size:
     NOMAD::Point delta_max = signature->get_mesh()->get_delta_max ();
     NOMAD::Double delta_i;
     NOMAD::Point  delta;
@@ -180,7 +187,7 @@ void NOMAD::LH_Search::search ( NOMAD::Mads              & mads           ,
                 {
                     pts[i] = new NOMAD::Point ( p );
                     
-                    // for the initial mesh: delta is not used and there will
+                    // for the initial mesh: delta_m is not used and there will
                     // be no projection on mesh:
                     if ( !_initial_search )
                         delta_i = delta[i];
diff --git a/src/LH_Search.hpp b/src/LH_Search.hpp
index 685141a..a3704ee 100644
--- a/src/LH_Search.hpp
+++ b/src/LH_Search.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,100 +41,100 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   LH_Search.hpp
-  \brief  Latin-Hypercube search (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-09
-  \see    LH_Search.cpp
-*/
+ \file   LH_Search.hpp
+ \brief  Latin-Hypercube search (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-09
+ \see    LH_Search.cpp
+ */
 #ifndef __LH_SEARCH__
 #define __LH_SEARCH__
 
 #include "Search.hpp"
 #include "Mads.hpp"
-#include "RNG.hpp"  
+#include "RNG.hpp"
 
 namespace NOMAD {
-
-  /// Class for the Latin-Hypercube search.
-  class LH_Search : public NOMAD::Search , private NOMAD::Uncopyable {
-
-  private:
-
-    bool _initial_search;  /// Initial search flag (for display only).
-
-    /// Decide \c p values for one variable.
-    /**
-       If no bounds, values are scaled with the largest Delta^m_k value obtained so far.
-       \param p           Number of values to decide                 -- \b IN.
-       \param delta_m     Delta^m_k (for the projection to the mesh) -- \b IN.
-       \param delta_m_max Largest Delta^m_k value                    -- \b IN.
-       \param bbit        Black-box input type                       -- \b IN.
-       \param lb          Lower bound                                -- \b IN.
-       \param ub          Upper bound                                -- \b IN.
-       \param x           The \p values                              -- \b OUT.
-    */
-    void values_for_var_i ( int                          p           ,
-			    const NOMAD::Double        & delta_m     ,
-			    const NOMAD::Double        & delta_m_max ,
-			    const NOMAD::bb_input_type & bbit        ,
-			    const NOMAD::Double        & lb          ,
-			    const NOMAD::Double        & ub          ,
-			    NOMAD::Point               & x             ) const;
-  public:
     
-    /// Constructor.
-    /**
-       \param p              Parameters          -- \b IN.
-       \param initial_search Initial search flag -- \b IN.
-       \param phase_one      Phase one flag      -- \b IN.
-    */
-    LH_Search ( NOMAD::Parameters        & p              ,
-		bool                       initial_search ,
-		bool                       phase_one        )
-      : NOMAD::Search   ( p , phase_one ? NOMAD::LH_SEARCH_P1 : NOMAD::LH_SEARCH ) ,
-	_initial_search ( initial_search                                         )   {}
-
-    /// Destructor.
-    virtual ~LH_Search ( void ) {}
-
-    /// The Latin-Hypercube search.
-    /**
-       \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
-       \param nb_search_pts  Number of generated search points       -- \b OUT.
-       \param stop           Stop flag                               -- \b IN/OUT.
-       \param stop_reason    Stop reason                             -- \b OUT.
-       \param success        Type of success                         -- \b OUT.
-       \param count_search   Count or not the search                 -- \b OUT.
-       \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
-       \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
-    */
-    virtual void search ( NOMAD::Mads              & mads           ,
-			  int                      & nb_search_pts  ,
-			  bool                     & stop           ,
-			  NOMAD::stop_type         & stop_reason    ,
-			  NOMAD::success_type      & success        ,
-			  bool                     & count_search   ,
-			  const NOMAD::Eval_Point *& new_feas_inc   ,
-			  const NOMAD::Eval_Point *& new_infeas_inc   );
-
-    /// Simpler method used to generate a list of LH points.
-    /**
-       \param n   Dimension           -- \b IN.
-       \param m   Number of outputs   -- \b IN.
-       \param p   Number of LH points -- \b IN.
-       \param lb  Lower bounds        -- \b IN.
-       \param ub  Upper bounds        -- \b IN.
-       \param pts LH points           -- \b OUT.
-       \return A boolean equal to \c true if no error occured.
-    */
-    static bool LH_points ( int                                n   ,
-			    int                                m   ,
-			    int                                p   ,
-			    const NOMAD::Point               & lb  ,
-			    const NOMAD::Point               & ub  ,
-			    std::vector<NOMAD::Eval_Point *> & pts   );
-  };
+    /// Class for the Latin-Hypercube search.
+    class LH_Search : public NOMAD::Search , private NOMAD::Uncopyable {
+        
+    private:
+        
+        bool _initial_search;  /// Initial search flag (for display only).
+        
+        /// Decide \c p values for one variable.
+        /**
+         If no bounds, values are scaled with the largest Delta^m_k value obtained so far.
+         \param p           Number of values to decide                 -- \b IN.
+         \param delta_m     Delta^m_k (for the projection to the mesh) -- \b IN.
+         \param delta_m_max Largest Delta^m_k value                    -- \b IN.
+         \param bbit        Black-box input type                       -- \b IN.
+         \param lb          Lower bound                                -- \b IN.
+         \param ub          Upper bound                                -- \b IN.
+         \param x           The \p values                              -- \b OUT.
+         */
+        void values_for_var_i ( int                          p           ,
+                               const NOMAD::Double        & delta_m     ,
+                               const NOMAD::Double        & delta_m_max ,
+                               const NOMAD::bb_input_type & bbit        ,
+                               const NOMAD::Double        & lb          ,
+                               const NOMAD::Double        & ub          ,
+                               NOMAD::Point               & x             ) const;
+    public:
+        
+        /// Constructor.
+        /**
+         \param p              Parameters          -- \b IN.
+         \param initial_search Initial search flag -- \b IN.
+         \param phase_one      Phase one flag      -- \b IN.
+         */
+        LH_Search ( NOMAD::Parameters        & p              ,
+                   bool                       initial_search ,
+                   bool                       phase_one        )
+        : NOMAD::Search   ( p , phase_one ? NOMAD::LH_SEARCH_P1 : NOMAD::LH_SEARCH ) ,
+        _initial_search ( initial_search                                         )   {}
+        
+        /// Destructor.
+        virtual ~LH_Search ( void ) {}
+        
+        /// The Latin-Hypercube search.
+        /**
+         \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
+         \param nb_search_pts  Number of generated search points       -- \b OUT.
+         \param stop           Stop flag                               -- \b IN/OUT.
+         \param stop_reason    Stop reason                             -- \b OUT.
+         \param success        Type of success                         -- \b OUT.
+         \param count_search   Count or not the search                 -- \b OUT.
+         \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
+         \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
+         */
+        virtual void search ( NOMAD::Mads              & mads           ,
+                             int                      & nb_search_pts  ,
+                             bool                     & stop           ,
+                             NOMAD::stop_type         & stop_reason    ,
+                             NOMAD::success_type      & success        ,
+                             bool                     & count_search   ,
+                             const NOMAD::Eval_Point *& new_feas_inc   ,
+                             const NOMAD::Eval_Point *& new_infeas_inc   );
+        
+        /// Simpler method used to generate a list of LH points.
+        /**
+         \param n   Dimension           -- \b IN.
+         \param m   Number of outputs   -- \b IN.
+         \param p   Number of LH points -- \b IN.
+         \param lb  Lower bounds        -- \b IN.
+         \param ub  Upper bounds        -- \b IN.
+         \param pts LH points           -- \b OUT.
+         \return A boolean equal to \c true if no error occured.
+         */
+        static bool LH_points ( int                                n   ,
+                               int                                m   ,
+                               int                                p   ,
+                               const NOMAD::Point               & lb  ,
+                               const NOMAD::Point               & ub  ,
+                               std::vector<NOMAD::Eval_Point *> & pts   );
+    };
 }
 
 #endif
diff --git a/src/L_Curve.cpp b/src/L_Curve.cpp
index 0050f90..369b3ae 100644
--- a/src/L_Curve.cpp
+++ b/src/L_Curve.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   L_Curve.cpp
-  \brief  L_CURVE_TARGET stopping criterion (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-09
-  \see    L_Curve.hpp
-*/
+ \file   L_Curve.cpp
+ \brief  L_CURVE_TARGET stopping criterion (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-09
+ \see    L_Curve.hpp
+ */
 #include "L_Curve.hpp"
 
 /*-----------------------------------------------*/
@@ -47,19 +54,24 @@
 /*-----------------------------------------------*/
 void NOMAD::L_Curve::insert ( int bbe , const NOMAD::Double & f )
 {
-  if ( _f.empty() ) {   
-    _f.push_back   ( f );
-    _bbe.push_back (bbe);
-  }
-  else {
-    size_t nm1 = _bbe.size()-1;
-    if ( _bbe[nm1] == bbe )
-      _f[nm1] = f;
-    else {
-      _f.push_back   ( f );
-      _bbe.push_back (bbe);
+    if ( _f.empty() )
+    {
+        _f.push_back   ( f );
+        _bbe.push_back (bbe);
+    }
+    else
+    {
+        
+        size_t nm1 = _bbe.size()-1;
+        if ( _bbe[nm1] == bbe )
+            _f[nm1] = f;
+        else
+        {
+            
+            _f.push_back   ( f );
+            _bbe.push_back (bbe);
+        }
     }
-  }
 }
 
 /*---------------------------------------------------------------*/
@@ -69,27 +81,28 @@ void NOMAD::L_Curve::insert ( int bbe , const NOMAD::Double & f )
 /*---------------------------------------------------------------*/
 bool NOMAD::L_Curve::check_stop ( int bbe ) const
 {
-  // we check the p last successes and approximate the L-curve
-  // with a line joining the extremities:
-  const size_t p = 7;
-
-  if ( _f.size() >= p ) {
-	
-    size_t n = _f.size();
-    
-    NOMAD::Double f2 = _f[n-1];
-    if ( f2 <= _target )
-      return false;
+    // we check the p last successes and approximate the L-curve
+    // with a line joining the extremities:
+    const size_t p = 7;
     
-    size_t       nmp = n-p;
-    int         bbe1 = _bbe [ nmp ];
-    NOMAD::Double f1 = _f   [ nmp ];
-    NOMAD::Double  a = ( f2 - f1 ) / ( bbe - bbe1 );
-    NOMAD::Double  b = f1 - a * bbe1;
-    int   bbe_target = static_cast<int> ( ceil ( ( ( _target - b ) / a ).value() ) );
-    
-    // test: if ( bbe_target > bbe+(bbe-bbe1) )
-    return ( bbe_target > 2*bbe - bbe1 );
-  }
-  return false;
+    if ( _f.size() >= p )
+    {
+        
+        size_t n = _f.size();
+        
+        NOMAD::Double f2 = _f[n-1];
+        if ( f2 <= _target )
+            return false;
+        
+        size_t       nmp = n-p;
+        int         bbe1 = _bbe [ nmp ];
+        NOMAD::Double f1 = _f   [ nmp ];
+        NOMAD::Double  a = ( f2 - f1 ) / ( bbe - bbe1 );
+        NOMAD::Double  b = f1 - a * bbe1;
+        int   bbe_target = static_cast<int> ( ceil ( ( ( _target - b ) / a ).value() ) );
+        
+        // test: if ( bbe_target > bbe+(bbe-bbe1) )
+        return ( bbe_target > 2*bbe - bbe1 );
+    }
+    return false;
 }
diff --git a/src/L_Curve.hpp b/src/L_Curve.hpp
index 8330580..ee5a635 100644
--- a/src/L_Curve.hpp
+++ b/src/L_Curve.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   L_Curve.hpp
-  \brief  L_CURVE_TARGET stopping criterion (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-09
-  \see    L_Curve.cpp
-*/
+ \file   L_Curve.hpp
+ \brief  L_CURVE_TARGET stopping criterion (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-09
+ \see    L_Curve.cpp
+ */
 #ifndef __L_CURVE__
 #define __L_CURVE__
 
@@ -47,42 +54,42 @@
 #include "Uncopyable.hpp"
 
 namespace NOMAD {
-
-  /// Class implementing the L_CURVE_TARGET stopping criterion.
-  class L_Curve : private NOMAD::Uncopyable {
-
-  private:
-	  
-    NOMAD::Double              _target;  ///< L_CURVE_TARGET parameter value.
-    std::vector<NOMAD::Double> _f;       ///< List of objective values.
-    std::vector<int          > _bbe;     ///< List of numbers of evaluations.
-
-  public:
-
-    /// Constructor.
-    /**
-       \param target L_CURVE_TARGET parameter value -- \b IN.
-    */
-    L_Curve ( const NOMAD::Double & target ) : _target ( target ) {}
-
-    /// Destructor.
-    virtual ~L_Curve ( void ) {}
-
-    /// Insertion of a pair \c bbe/f in the lists \c _f and \c _bbe.
-    /**
-       \param bbe A new number of evaluations -- \b IN.
-       \param f   A new objective value       -- \b IN.
-    */
-    void insert ( int bbe , const NOMAD::Double & f );
-
-    /// Check the L_CURVE_TARGET stopping criterion.
-    /**
-       \param bbe An integer indicating a number of blackbox evaluations
-                  -- \b IN.
-       \return A boolean equal to \c true if the method detects that
-               the target will not be reached after bbe evaluations.
-    */
-    bool check_stop ( int bbe ) const;
-  };
+    
+    /// Class implementing the L_CURVE_TARGET stopping criterion.
+    class L_Curve : private NOMAD::Uncopyable {
+        
+    private:
+        
+        NOMAD::Double              _target;  ///< L_CURVE_TARGET parameter value.
+        std::vector<NOMAD::Double> _f;       ///< List of objective values.
+        std::vector<int          > _bbe;     ///< List of numbers of evaluations.
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param target L_CURVE_TARGET parameter value -- \b IN.
+         */
+        L_Curve ( const NOMAD::Double & target ) : _target ( target ) {}
+        
+        /// Destructor.
+        virtual ~L_Curve ( void ) {}
+        
+        /// Insertion of a pair \c bbe/f in the lists \c _f and \c _bbe.
+        /**
+         \param bbe A new number of evaluations -- \b IN.
+         \param f   A new objective value       -- \b IN.
+         */
+        void insert ( int bbe , const NOMAD::Double & f );
+        
+        /// Check the L_CURVE_TARGET stopping criterion.
+        /**
+         \param bbe An integer indicating a number of blackbox evaluations
+         -- \b IN.
+         \return A boolean equal to \c true if the method detects that
+         the target will not be reached after bbe evaluations.
+         */
+        bool check_stop ( int bbe ) const;
+    };
 }
 #endif
diff --git a/src/Mads.cpp b/src/Mads.cpp
index 5232644..5aae7c5 100644
--- a/src/Mads.cpp
+++ b/src/Mads.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -57,27 +64,24 @@ bool NOMAD::Mads::_flag_p1_active      = false;
 /*---------------------------------------------------------*/
 void NOMAD::Mads::force_quit ( int signalValue )
 {
-	NOMAD::Mads::_force_quit = true;
-	NOMAD::Evaluator_Control::force_quit();
-	NOMAD::Evaluator::force_quit();
-	
-#ifdef USE_TGP
-	NOMAD::TGP_Output_Model::force_quit();
-#endif
+    NOMAD::Mads::_force_quit = true;
+    NOMAD::Evaluator_Control::force_quit();
+    NOMAD::Evaluator::force_quit();
+    
 }
 
 /*---------------------------------------------------------*/
 /*                access to the flags (static)             */
 /*---------------------------------------------------------*/
 void NOMAD::Mads::get_flags ( bool & flag_check_bimads   ,
-							 bool & flag_reset_mesh     ,			    
-							 bool & flag_reset_barriers ,
-							 bool & flag_p1_active        )
+                             bool & flag_reset_mesh     ,
+                             bool & flag_reset_barriers ,
+                             bool & flag_p1_active        )
 {
-	flag_check_bimads   = _flag_check_bimads;
-	flag_reset_mesh     = _flag_reset_mesh;
-	flag_reset_barriers = _flag_reset_barriers;
-	flag_p1_active      = _flag_p1_active;
+    flag_check_bimads   = _flag_check_bimads;
+    flag_reset_mesh     = _flag_reset_mesh;
+    flag_reset_barriers = _flag_reset_barriers;
+    flag_p1_active      = _flag_p1_active;
 }
 
 /*---------------------------------------------------------*/
@@ -88,53 +92,43 @@ void NOMAD::Mads::get_flags ( bool & flag_check_bimads   ,
 /*---------------------------------------------------------*/
 void NOMAD::Mads::init ( void )
 {
-	
-	NOMAD::Mads::_force_quit = false;
-	
-	if ( !NOMAD::Slave::is_master() )
-		return;
-	
-	// Mads::force_quit() will be called if ctrl-c is pressed:
-	signal ( SIGINT  , NOMAD::Mads::force_quit );
+    
+    NOMAD::Mads::_force_quit = false;
+    
+    if ( !NOMAD::Slave::is_master() )
+        return;
+    
+    // Mads::force_quit() will be called if ctrl-c is pressed:
+    signal ( SIGINT  , NOMAD::Mads::force_quit );
 #ifndef WINDOWS
-	signal ( SIGPIPE , NOMAD::Mads::force_quit );  // (ctrl-c during a "| more")
+    signal ( SIGPIPE , NOMAD::Mads::force_quit );  // (ctrl-c during a "| more")
 #endif
 #ifdef USE_MPI
-	signal ( SIGTERM , NOMAD::Mads::force_quit );
+    signal ( SIGTERM , NOMAD::Mads::force_quit );
 #endif
-		
-	// model searches initialization:
-    if ( _p.has_model_search() ) {
-#ifdef USE_TGP
-		if ( _p.get_model_search(1) == NOMAD::TGP_MODEL )
-			_model_search1 = new TGP_Model_Search ( _p );
-#endif
-		if ( _p.get_model_search(1) == NOMAD::QUADRATIC_MODEL )
-			_model_search1 = new Quad_Model_Search ( _p );
-#ifdef USE_TGP
-		if ( _p.get_model_search(2) == NOMAD::TGP_MODEL )
-			_model_search2 = new TGP_Model_Search ( _p );
-#endif
-		if ( _p.get_model_search(2) == NOMAD::QUADRATIC_MODEL )
-			_model_search2 = new Quad_Model_Search ( _p );
-	}
-	
-#ifdef USE_TGP
-	_ev_control.set_last_TGP_model ( NULL );
-#endif
-	
-	// VNS search initialization:
-	if ( _p.get_VNS_search() )
-		_VNS_search = new VNS_Search ( _p );
-	
-	// cache search initialization:
-	if ( _p.get_cache_search() )
-		_cache_search = new Cache_Search ( _p );
-	
-	// Orthogonal mesh initialization
-	_mesh->reset();
-	
-	
+    
+    // model searches initialization:
+    if ( _p.has_model_search() )
+    {
+        if ( _p.get_model_search(1) == NOMAD::QUADRATIC_MODEL )
+            _model_search1 = new Quad_Model_Search ( _p );
+        
+        if ( _p.get_model_search(2) == NOMAD::QUADRATIC_MODEL )
+            _model_search2 = new Quad_Model_Search ( _p );
+    }
+    
+    // VNS search initialization:
+    if ( _p.get_VNS_search() )
+        _VNS_search = new VNS_Search ( _p );
+    
+    // cache search initialization:
+    if ( _p.get_cache_search() )
+        _cache_search = new Cache_Search ( _p );
+    
+    // Orthogonal mesh initialization
+    _mesh->reset();
+    
+    
 }
 
 /*---------------------------------------------------------*/
@@ -142,15 +136,15 @@ void NOMAD::Mads::init ( void )
 /*---------------------------------------------------------*/
 NOMAD::Mads::~Mads ( void )
 {
-	delete _pareto_front;
-	delete _model_search1;
-	delete _model_search2;
-	delete _VNS_search;
-	delete _cache_search;
-	delete _L_curve;
-	
+    delete _pareto_front;
+    delete _model_search1;
+    delete _model_search2;
+    delete _VNS_search;
+    delete _cache_search;
+    delete _L_curve;
+    
     if ( _extended_poll && !_user_ext_poll)
-		delete _extended_poll;
+        delete _extended_poll;
 }
 
 /*-------------------------------------------------------------*/
@@ -161,434 +155,416 @@ NOMAD::Mads::~Mads ( void )
 /*-------------------------------------------------------------*/
 void NOMAD::Mads::reset ( bool keep_barriers , bool keep_stats )
 {
-	// evaluator control:
-#ifdef USE_TGP
-	_ev_control.set_last_TGP_model ( NULL );
-#endif
-	
-	// user search:
-	_user_search = NULL;
-	
-	// model search #1:
-	if ( _p.get_model_search(1) != NOMAD::NO_MODEL )
-    {
-		if ( _model_search1 )
-			_model_search1->reset();
-		else {
-			if ( _p.get_model_search(1) == NOMAD::TGP_MODEL )
-            {
-#ifdef USE_TGP
-				_model_search1 = new TGP_Model_Search  ( _p ) ;
-#endif
-			}
-			else
-				_model_search1 = new Quad_Model_Search ( _p );
-		}
-	}
-	else
-    {
-		delete _model_search1;
-		_model_search1 = NULL;
-	}
-	
-	// model search #2:
-	if ( _p.get_model_search(2) != NOMAD::NO_MODEL )
-    {
-		if ( _model_search2 )
-			_model_search2->reset();
-		else
-        {
-			if ( _p.get_model_search(2) == NOMAD::TGP_MODEL )
-            {
-#ifdef USE_TGP
-				_model_search2 = new TGP_Model_Search  ( _p ) ;
-#endif
-			}
-			else
-				_model_search2 = new Quad_Model_Search ( _p );
-		}
-	}
-	else
-    {
-		delete _model_search2;
-		_model_search2 = NULL;
-	}
-	
-	// VNS search:
-	if ( _p.get_VNS_search() )
-    {
-		if ( _VNS_search )
-			_VNS_search->reset();
-		else
-			_VNS_search = new VNS_Search ( _p );
-	}
-	else {
-		delete _VNS_search;
-		_VNS_search = NULL;
-	}
-	
-	// cache search:
-	if ( _p.get_cache_search() )
-    {
-		if ( _cache_search )
-			_cache_search->reset();
-		else
-			_cache_search = new Cache_Search ( _p );
-	}
-	else
-    {
-		delete _cache_search;
-		_cache_search = NULL;
-	}
-	
-	// barriers:
-	_flag_reset_barriers = !keep_barriers;
-	if ( _flag_reset_barriers )
-	{
-		_true_barrier.reset();
-		_sgte_barrier.reset();
-	}
-	
-	// stats:
-	if ( !keep_stats )
-		_stats.reset();
-	
-	
+    
+    // user search:
+    _user_search = NULL;
+    
+    // model search #1:
+    if ( _p.get_model_search(1) != NOMAD::NO_MODEL )
+    {
+        if ( _model_search1 )
+            _model_search1->reset();
+        else
+            _model_search1 = new Quad_Model_Search ( _p );
+    }
+    else
+    {
+        delete _model_search1;
+        _model_search1 = NULL;
+    }
+    
+    // model search #2:
+    if ( _p.get_model_search(2) != NOMAD::NO_MODEL )
+    {
+        if ( _model_search2 )
+            _model_search2->reset();
+        else
+            _model_search2 = new Quad_Model_Search ( _p );
+    }
+    else
+    {
+        delete _model_search2;
+        _model_search2 = NULL;
+    }
+    
+    // VNS search:
+    if ( _p.get_VNS_search() )
+    {
+        if ( _VNS_search )
+            _VNS_search->reset();
+        else
+            _VNS_search = new VNS_Search ( _p );
+    }
+    else
+    {
+        
+        delete _VNS_search;
+        _VNS_search = NULL;
+    }
+    
+    // cache search:
+    if ( _p.get_cache_search() )
+    {
+        if ( _cache_search )
+            _cache_search->reset();
+        else
+            _cache_search = new Cache_Search ( _p );
+    }
+    else
+    {
+        delete _cache_search;
+        _cache_search = NULL;
+    }
+    
+    // barriers:
+    _flag_reset_barriers = !keep_barriers;
+    if ( _flag_reset_barriers )
+    {
+        _true_barrier.reset();
+        _sgte_barrier.reset();
+    }
+    
+    // stats:
+    if ( !keep_stats )
+        _stats.reset();
+    
+    
     _mesh->reset();
-	
+    
 }
 
-
 /*            algorithm execution (single-objective)       */
 /*---------------------------------------------------------*/
 NOMAD::stop_type NOMAD::Mads::run ( void )
 {
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_gen_dd();
-	NOMAD::stop_type  stop_reason = NOMAD::UNKNOWN_STOP_REASON;
-	
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_gen_dd();
+    NOMAD::stop_type  stop_reason = NOMAD::UNKNOWN_STOP_REASON;
+    
 #ifdef USE_MPI
-	
-	if ( NOMAD::Slave::get_nb_processes() < 2 )
-	{
-		out << NOMAD::open_block("ERROR:") << "Incorrect command to run with MPI." << std::endl 
-		<< "Usage: mpirun -np p exeName" << std::endl ;
-		out << NOMAD::close_block();
-		return stop_reason;
-	}
-	
-	
-	// init the slaves:
-	bool stop_slaves_here = false;
-	
-	if ( NOMAD::Slave::is_master() )
-    {
-		if ( !NOMAD::Slave::are_running() )
-        {
-			NOMAD::Slave::init_slaves ( out );
-			stop_slaves_here = true;
-		}
-	}
-	else
-    {
-		NOMAD::Slave s ( _p , _ev_control.get_evaluator() );
-		s.run();
-		return stop_reason;
-	}
-	
+    
+    if ( NOMAD::Slave::get_nb_processes() < 2 )
+    {
+        out << NOMAD::open_block("ERROR:") << "Incorrect command to run with MPI." << std::endl
+        << "Usage: mpirun -np p exeName" << std::endl ;
+        out << NOMAD::close_block();
+        return stop_reason;
+    }
+    
+    
+    // init the slaves:
+    bool stop_slaves_here = false;
+    
+    if ( NOMAD::Slave::is_master() )
+    {
+        if ( !NOMAD::Slave::are_running() )
+        {
+            NOMAD::Slave::init_slaves ( out );
+            stop_slaves_here = true;
+        }
+    }
+    else
+    {
+        NOMAD::Slave s ( _p , _ev_control.get_evaluator() );
+        s.run();
+        return stop_reason;
+    }
+    
 #endif
-	
-	try
-    {
-		
-		// check an extended poll if there are categorical
-		// variables and disable extended poll otherwise:
-		if ( _p.get_signature()->has_categorical() ) 
-		{
-			
-			if ( _user_ext_poll && !_extended_poll )
-				throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-										"categorical variables: user extended poll object is NULL" );
-			
-			if ( _p.get_extended_poll_enabled() && !_user_ext_poll ) 
-			{
-				if (!_extended_poll)
-					_extended_poll = new NOMAD::Extended_Poll ( _p ); // extended poll created only once with the signatures of _p  
-				
-				std::string error_str;	
-				if ( !_extended_poll->set_neighbors_exe ( error_str ) )
-					throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , error_str );
-			}
-		}
-		else if ( _extended_poll )
-		{
-			if ( !_user_ext_poll )
-				delete _extended_poll;
-			_extended_poll = NULL;
-		}
-		
-		// check if Mads::run() has been called for multi-objective:
-		if ( NOMAD::Mads::_flag_check_bimads && _p.get_nb_obj() > 1 )
-			throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-									"Mads::run() called for multi-objective instead of Mads::multi_run()" );
-		
+    
+    try
+    {
+        
+        // check an extended poll if there are categorical
+        // variables and disable extended poll otherwise:
+        if ( _p.get_signature()->has_categorical() )
+        {
+            
+            if ( _user_ext_poll && !_extended_poll )
+                throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                        "categorical variables: user extended poll object is NULL" );
+            
+            if ( _p.get_extended_poll_enabled() && !_user_ext_poll )
+            {
+                if (!_extended_poll)
+                    _extended_poll = new NOMAD::Extended_Poll ( _p ); // extended poll created only once with the signatures of _p
+                
+                std::string error_str;
+                if ( !_extended_poll->set_neighbors_exe ( error_str ) )
+                    throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , error_str );
+            }
+        }
+        else if ( _extended_poll )
+        {
+            if ( !_user_ext_poll )
+                delete _extended_poll;
+            _extended_poll = NULL;
+        }
+        
+        // check if Mads::run() has been called for multi-objective:
+        if ( NOMAD::Mads::_flag_check_bimads && _p.get_nb_obj() > 1 )
+            throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                    "Mads::run() called for multi-objective instead of Mads::multi_run()" );
+        
 #ifndef R_VERSION
-		if ( display_degree == NOMAD::NORMAL_DISPLAY ||  display_degree == NOMAD::FULL_DISPLAY )
-			out << std::endl << NOMAD::open_block ( "MADS run" );
-		
-		if ( display_degree == NOMAD::NORMAL_DISPLAY ) {
-			_ev_control.display_stats ( true                   ,
-									   out                    ,
-									   _p.get_display_stats() ,
-									   NULL                   ,
-									   false                  ,
-									   NULL                     );
-			out << std::endl << std::endl;
-		}
+        if ( display_degree == NOMAD::NORMAL_DISPLAY ||  display_degree == NOMAD::FULL_DISPLAY )
+            out << std::endl << NOMAD::open_block ( "MADS run" );
+        
+        if ( display_degree == NOMAD::NORMAL_DISPLAY )
+        {
+            _ev_control.display_stats ( true                   ,
+                                       out                    ,
+                                       _p.get_display_stats() ,
+                                       NULL                   ,
+                                       false                  ,
+                                       NULL                     );
+            out << std::endl << std::endl;
+        }
 #endif
-		
-		// barriers init:
-		if ( _flag_reset_barriers )
-		{
-			_true_barrier.reset();
-			_sgte_barrier.reset();
-		}
-		
-		// evaluator control init:
-		_ev_control.reset();
-		
-		// reset the extended poll:
-		if ( _extended_poll && _p.get_extended_poll_enabled() )
-			_extended_poll->reset();
-		
-		// mesh init/reset:
-		if ( _flag_reset_mesh )
+        
+        // barriers init:
+        if ( _flag_reset_barriers )
+        {
+            _true_barrier.reset();
+            _sgte_barrier.reset();
+        }
+        
+        // evaluator control init:
+        _ev_control.reset();
+        
+        // reset the extended poll:
+        if ( _extended_poll && _p.get_extended_poll_enabled() )
+            _extended_poll->reset();
+        
+        // mesh init/reset:
+        if ( _flag_reset_mesh )
             _mesh->reset();
-		
-		NOMAD::success_type       success , last_success;
-		int                       nb_search_pts;
-		bool                      count_search;
-		bool                      stop           = false;
-		const NOMAD::Eval_Point * new_feas_inc   = NULL;
-		const NOMAD::Eval_Point * new_infeas_inc = NULL;
-		
-		stop_reason = NOMAD::NO_STOP;
-		
-		// x0 eval:
-		eval_x0 ( stop , stop_reason );
-		
-		// phase one: if no feasible starting point:
-		bool phase_one_done = false;
-		if (stop                          &&
-			stop_reason == NOMAD::X0_FAIL &&
-			_p.has_EB_constraints()       &&
-			( _stats.get_eval() > 0 ||  ( _p.get_opt_only_sgte() && _stats.get_sgte_eval() > 0 ) ) )
-		{
-			
-			phase_one_done = true;
-			Phase_One_Search p1s ( _p );
-			p1s.search ( *this          ,
-						nb_search_pts  ,
-						stop           ,
-						stop_reason    ,
-						success        ,
-						count_search   ,
-						new_feas_inc   ,
-						new_infeas_inc   );
-
-			_mesh->reset();
-			
-		}
-		
-		// initial Latin-Hypercube (LH) search:
-		if ( !stop && !phase_one_done && _p.get_LH_search_p0() > 0 )
-        {
-			
-			LH_Search lh ( _p , true , _flag_p1_active );
-			int       nb_search_pts;
-			
-			lh.search ( *this          ,
-					   nb_search_pts  ,
-					   stop           ,
-					   stop_reason    ,
-					   success        ,
-					   count_search   ,
-					   new_feas_inc   ,
-					   new_infeas_inc   );
-			
-			if ( success == NOMAD::FULL_SUCCESS )
-				_stats.add_LH_success();
-			
-			if ( count_search )
-				_stats.add_nb_LH_searches();
-			
-			_stats.add_LH_pts ( nb_search_pts );
-		}
-		
-		// no iterations allowed:
-		if ( !stop && _p.get_max_iterations() == 0 )
-        {
-			stop        = true;
-			stop_reason = NOMAD::MAX_ITER_REACHED;
-		}
-		
-		// L_curve initialization:
-		delete _L_curve;
-		_L_curve = NULL;
-		const NOMAD::Double L_curve_target = _p.get_L_curve_target();
-		if ( L_curve_target.is_defined() ) 
-		{
-			_L_curve = new NOMAD::L_Curve ( L_curve_target );
-			const NOMAD::Eval_Point * best_feasible = get_best_feasible();
-			if ( best_feasible )
-				_L_curve->insert ( _stats.get_bb_eval() , best_feasible->get_f() );
-		}
-		
-		int max_cfi = _p.get_max_consecutive_failed_iterations();
-		int nb_cfi  = 0;
-		
-		success = last_success = NOMAD::UNSUCCESSFUL;
-		
-		// MADS iterations:
-		while ( !stop )
-		{
-			
-			iteration ( stop           ,
-					   stop_reason    ,
-					   success        ,
-					   new_feas_inc   ,
-					   new_infeas_inc   );
-			
-			if ( success == NOMAD::UNSUCCESSFUL && last_success == NOMAD::UNSUCCESSFUL )
-				++nb_cfi;
-			else
-				nb_cfi = (success == NOMAD::UNSUCCESSFUL) ? 1 : 0;
-			
-			last_success = success;
-			
-			// check the consecutive number of failed iterations:
-			if ( max_cfi > 0 && nb_cfi > max_cfi )
-			{
-				stop        = true;
-				stop_reason = NOMAD::MAX_CONS_FAILED_ITER;
-			}
-			
-		}
-		
-		// parallel version:
+        
+        NOMAD::success_type       success , last_success;
+        int                       nb_search_pts;
+        bool                      count_search;
+        bool                      stop           = false;
+        const NOMAD::Eval_Point * new_feas_inc   = NULL;
+        const NOMAD::Eval_Point * new_infeas_inc = NULL;
+        
+        stop_reason = NOMAD::NO_STOP;
+        
+        // x0 eval:
+        eval_x0 ( stop , stop_reason );
+        
+        // phase one: if no feasible starting point:
+        bool phase_one_done = false;
+        if (stop                          &&
+            stop_reason == NOMAD::X0_FAIL &&
+            _p.has_EB_constraints()       &&
+            ( _stats.get_eval() > 0 ||  ( _p.get_opt_only_sgte() && _stats.get_sgte_eval() > 0 ) ) )
+        {
+            
+            phase_one_done = true;
+            Phase_One_Search p1s ( _p );
+            p1s.search ( *this          ,
+                        nb_search_pts  ,
+                        stop           ,
+                        stop_reason    ,
+                        success        ,
+                        count_search   ,
+                        new_feas_inc   ,
+                        new_infeas_inc   );
+            
+            _mesh->reset();
+            
+        }
+        
+        // initial Latin-Hypercube (LH) search:
+        if ( !stop && !phase_one_done && _p.get_LH_search_p0() > 0 )
+        {
+            
+            LH_Search lh ( _p , true , _flag_p1_active );
+            int       nb_search_pts;
+            
+            lh.search ( *this          ,
+                       nb_search_pts  ,
+                       stop           ,
+                       stop_reason    ,
+                       success        ,
+                       count_search   ,
+                       new_feas_inc   ,
+                       new_infeas_inc   );
+            
+            if ( success == NOMAD::FULL_SUCCESS )
+                _stats.add_LH_success();
+            
+            if ( count_search )
+                _stats.add_nb_LH_searches();
+            
+            _stats.add_LH_pts ( nb_search_pts );
+        }
+        
+        // no iterations allowed:
+        if ( !stop && _p.get_max_iterations() == 0 )
+        {
+            stop        = true;
+            stop_reason = NOMAD::MAX_ITER_REACHED;
+        }
+        
+        // L_curve initialization:
+        delete _L_curve;
+        _L_curve = NULL;
+        const NOMAD::Double L_curve_target = _p.get_L_curve_target();
+        if ( L_curve_target.is_defined() )
+        {
+            _L_curve = new NOMAD::L_Curve ( L_curve_target );
+            const NOMAD::Eval_Point * best_feasible = get_best_feasible();
+            if ( best_feasible )
+                _L_curve->insert ( _stats.get_bb_eval() , best_feasible->get_f() );
+        }
+        
+        int max_cfi = _p.get_max_consecutive_failed_iterations();
+        int nb_cfi  = 0;
+        
+        success = last_success = NOMAD::UNSUCCESSFUL;
+        
+        // MADS iterations:
+        while ( !stop )
+        {
+            
+            iteration ( stop           ,
+                       stop_reason    ,
+                       success        ,
+                       new_feas_inc   ,
+                       new_infeas_inc   );
+            
+            if ( success == NOMAD::UNSUCCESSFUL && last_success == NOMAD::UNSUCCESSFUL )
+                ++nb_cfi;
+            else
+                nb_cfi = (success == NOMAD::UNSUCCESSFUL) ? 1 : 0;
+            
+            last_success = success;
+            
+            // check the consecutive number of failed iterations:
+            if ( max_cfi > 0 && nb_cfi > max_cfi )
+            {
+                stop        = true;
+                stop_reason = NOMAD::MAX_CONS_FAILED_ITER;
+            }
+            
+        }
+        
+        // parallel version:
 #ifdef USE_MPI
-		
-		// asynchronous mode: wait for the evaluations in progress:
-		if ( _p.get_asynchronous() ) 
-		{
-			std::list<const NOMAD::Eval_Point *> evaluated_pts;
-			_ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
-											  _true_barrier       ,
-											  _sgte_barrier       ,
-											  _pareto_front       ,
-											  stop                ,
-											  stop_reason         ,
-											  success             ,
-											  evaluated_pts         );
-		}
-		
-		// update stats:
-		_stats.set_MPI_data_size ( NOMAD::Slave::get_data_sent() +
-								  NOMAD::Slave::get_data_rcvd()   );
-		
+        
+        // asynchronous mode: wait for the evaluations in progress:
+        if ( _p.get_asynchronous() )
+        {
+            std::list<const NOMAD::Eval_Point *> evaluated_pts;
+            _ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
+                                              _true_barrier       ,
+                                              _sgte_barrier       ,
+                                              _pareto_front       ,
+                                              stop                ,
+                                              stop_reason         ,
+                                              success             ,
+                                              evaluated_pts         );
+        }
+        
+        // update stats:
+        _stats.set_MPI_data_size ( NOMAD::Slave::get_data_sent() +
+                                  NOMAD::Slave::get_data_rcvd()   );
+        
 #endif
-		
-		// final cache save (overwrite=true):
-		_ev_control.save_caches ( true );
-		
-		// final displays:
-		const NOMAD::Eval_Point * bf = get_best_feasible();
-		bool write_stats =	bf &&
-		( bf->get_tag()     != _ev_control.get_last_stats_tag() ||
-		 _stats.get_bb_eval() != _ev_control.get_last_stats_bbe()    );
-		
-		const std::string & stats_file_name = _p.get_stats_file_name();
-		
-		if ( !stats_file_name.empty() )
-		{
-			if ( write_stats && !_p.get_display_all_eval() ) 
-			{
-				_ev_control.stats_file ( stats_file_name , bf , true , NULL );
-			}
+        
+        // final cache save (overwrite=true):
+        _ev_control.save_caches ( true );
+        
+        // final displays:
+        const NOMAD::Eval_Point * bf = get_best_feasible();
+        bool write_stats =  bf &&
+        ( bf->get_tag()     != _ev_control.get_last_stats_tag() ||
+         _stats.get_bb_eval() != _ev_control.get_last_stats_bbe()    );
+        
+        const std::string & stats_file_name = _p.get_stats_file_name();
+        
+        if ( !stats_file_name.empty() )
+        {
+            if ( write_stats && !_p.get_display_all_eval() )
+            {
+                _ev_control.stats_file ( stats_file_name , bf , true , NULL );
+            }
+            
             if ( !bf && display_degree > NOMAD::MINIMAL_DISPLAY )
-			{
-				std::ofstream fout ( (_p.get_problem_dir() + stats_file_name).c_str() );
-				if ( fout.fail() )
-				{
-						out << std::endl
-						<< "Warning (" << "Mads.cpp" << ", " << __LINE__
-						<< "): could not save information in stats file \'"
-						<< stats_file_name << "\'" << std::endl << std::endl;
-				}
-				else
-					fout << "no feasible solution has been found after "
-					<< _stats.get_bb_eval() << " evaluations"
-					<< std::endl;
-				fout.close();
-			}
-
-		}
-		
-		if ( display_degree > NOMAD::MINIMAL_DISPLAY)
-		{
-			
-			// final stats:
-			if ( display_degree == NOMAD::NORMAL_DISPLAY && bf && write_stats && !_p.get_display_all_eval() )
-				_ev_control.display_stats ( false,
-										   out,
-										   _p.get_display_stats() ,
-										   bf                     ,
-										   true                   ,
-										   NULL                     );
+            {
+                std::ofstream fout ( (_p.get_problem_dir() + stats_file_name).c_str() );
+                if ( fout.fail() )
+                {
+                    out << std::endl
+                    << "Warning (" << "Mads.cpp" << ", " << __LINE__
+                    << "): could not save information in stats file \'"
+                    << stats_file_name << "\'" << std::endl << std::endl;
+                }
+                else
+                    fout << "no feasible solution has been found after "
+                    << _stats.get_bb_eval() << " evaluations"
+                    << std::endl;
+                fout.close();
+            }
+            
+        }
+        
+        if ( display_degree > NOMAD::MINIMAL_DISPLAY)
+        {
+            
+            // final stats:
+            if ( display_degree == NOMAD::NORMAL_DISPLAY && bf && write_stats && !_p.get_display_all_eval() )
+                _ev_control.display_stats ( false,
+                                           out,
+                                           _p.get_display_stats() ,
+                                           bf                     ,
+                                           true                   ,
+                                           NULL                     );
 #ifndef R_VERSION
-			std::ostringstream msg;
-			msg << "end of run (" << stop_reason << ")";
-			out << std::endl << NOMAD::close_block ( msg.str() );
+            std::ostringstream msg;
+            msg << "end of run (" << stop_reason << ")";
+            out << std::endl << NOMAD::close_block ( msg.str() );
 #endif
-		}
-		
-		// mono-objective final displays:
-		if ( _p.get_nb_obj() == 1 )
-        {
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out << std::endl << NOMAD::open_block ( "NOMAD final display" );
-			
+        }
+        
+        // mono-objective final displays:
+        if ( _p.get_nb_obj() == 1 )
+        {
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << std::endl << NOMAD::open_block ( "NOMAD final display" );
+            
 #ifndef R_VERSION
-			display();
+            display();
 #endif
             
             
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out.close_block();
-		}
-		
-	} // end of the try block
-	
-	catch ( std::exception & e )
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out.close_block();
+        }
+        
+    } // end of the try block
+    
+    catch ( std::exception & e )
     {
-		
+        
 #ifdef USE_MPI
-		if ( NOMAD::Slave::are_running() )
-			NOMAD::Slave::stop_slaves ( out );
+        if ( NOMAD::Slave::are_running() )
+            NOMAD::Slave::stop_slaves ( out );
 #endif
-		
-		throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , e.what() );
-	}
-	
-	// stop the slaves:
+        
+        throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , e.what() );
+    }
+    
+    // stop the slaves:
 #ifdef USE_MPI
-	if ( NOMAD::Slave::are_running() && stop_slaves_here )
-		NOMAD::Slave::stop_slaves ( out );
+    if ( NOMAD::Slave::are_running() && stop_slaves_here )
+        NOMAD::Slave::stop_slaves ( out );
 #endif
-	
-	return stop_reason;
+    
+    return stop_reason;
 }
 
 /*----------------------------------------------------------------------*/
@@ -599,153 +575,152 @@ NOMAD::stop_type NOMAD::Mads::run ( void )
 /*    been set to zero                                                  */
 /*  . private method                                                    */
 /*----------------------------------------------------------------------*/
-void NOMAD::Mads::multi_launch_single_opt
-( NOMAD::dd_type               display_degree ,
- int                          mads_runs      ,
- int                          overall_bbe    ,
- NOMAD::Multi_Obj_Evaluator & ev             , 
- int                        & stagnation_cnt ,
- NOMAD::Stats               & multi_stats    ,
- bool                       & stop           ,
- NOMAD::stop_type           & stop_reason      )
+void NOMAD::Mads::multi_launch_single_opt ( NOMAD::dd_type               display_degree ,
+                                           int                          mads_runs      ,
+                                           int                          overall_bbe    ,
+                                           NOMAD::Multi_Obj_Evaluator & ev             ,
+                                           int                        & stagnation_cnt ,
+                                           NOMAD::Stats               & multi_stats    ,
+                                           bool                       & stop           ,
+                                           NOMAD::stop_type           & stop_reason      )
 {
-	// max number of bb evaluations for one MADS run:
-	int max_bbe = _p.get_max_bb_eval();
-	
-	// size of the Pareto front before the MADS run:
-	int tmp = _pareto_front->size();
-	
-	// current MADS run:
-	int cur_mads_run = multi_stats.get_mads_runs();
-	
-	// displays:
-	const NOMAD::Display & out = _p.out();
-	
-	if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY) 
-	{
-		out << "MADS run " << std::setw(2) << cur_mads_run + 1;
-		if ( mads_runs > 0 )
-			out << "/" << mads_runs;
-		out << " ...";
-	}
-	
-	// run single-objective MADS (it also updates the Pareto front):
-	NOMAD::Mads::set_flag_check_bimads ( false );
-	NOMAD::stop_type single_run_stop_reason = run();
-	NOMAD::Mads::set_flag_check_bimads ( true );
-	
-	if ( single_run_stop_reason == NOMAD::CTRL_C              ||
-		single_run_stop_reason == NOMAD::ERROR               ||
-		single_run_stop_reason == NOMAD::UNKNOWN_STOP_REASON ||
-		single_run_stop_reason == NOMAD::X0_FAIL             ||
-		single_run_stop_reason == NOMAD::F_TARGET_REACHED    ||
-		single_run_stop_reason == NOMAD::P1_FAIL                ) 
-	{
-		stop        = true;
-		stop_reason = single_run_stop_reason;
-	}
-	
-	// update MULTI-MADS stats from MADS stats:
-	multi_stats.update ( _stats , false ); // for_search = false
-	multi_stats.add_mads_run();
-	
-	int nb_new_pts = _pareto_front->size() - tmp;
-	int global_bbe = multi_stats.get_bb_eval();
-	
-	// displays:
-	if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY) 
-	{
-		
-		// display basic stats on the terminated run:
-		out << "... OK [bb eval="    << std::setw(3) << _stats.get_bb_eval()
-		<< "] [overall bb eval=" << std::setw(5) << global_bbe
-		<< "] [# dominant pts="  << std::setw(4) << _pareto_front->size()
-		<< "] [# new pts="       << std::setw(4) << nb_new_pts << "]";
-		
-		// display f1, f2, and f:
-		const NOMAD::Eval_Point * bf = get_best_feasible();
-		if ( bf )
-		{
-			
-			const NOMAD::Point & bbo = bf->get_bb_outputs();
-			
-			out << " [f1=" << bbo[ev.get_i1()]
-			<< " f2=" << bbo[ev.get_i2()];
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out << " f="  << bf->get_f();
-			out << "]";
-		}
-		out << std::endl;
-	}
-	
-	if ( _stats.get_bb_eval() == 0 && nb_new_pts == 0 )
-		++stagnation_cnt;
-	else
-		stagnation_cnt = 0;
-	
-	// stop ?
-	if ( !stop )
-	{
-		
-		// test the number of MADS runs:
-		if ( mads_runs > 0 ) 
-		{
-			if ( multi_stats.get_mads_runs() >= mads_runs )
-			{
-				stop        = true;
-				stop_reason = NOMAD::MULTI_NB_MADS_RUNS_REACHED;
-			}
-		}
-		
-		// test if no new Pareto point has been generated for 50*n MADS runs:
-		else 
-		{
-			if ( stagnation_cnt > 50 * _p.get_nb_free_variables() )
-			{
-				stop        = true;
-				stop_reason = NOMAD::MULTI_STAGNATION;
-			}
-		}
-	}
-	
-	if ( overall_bbe >= 0 && global_bbe >= overall_bbe )
-	{
-		stop        = true;
-		stop_reason = NOMAD::MULTI_MAX_BB_REACHED;
-	}
-	
-	bool user_calls_enabled = _p.get_user_calls_enabled();
-	
-	if ( !stop ) 
-	{
-		
-		// ell is the mesh index on which the last run terminated:
-		// int ell = NOMAD::Mesh::get_mesh_index();
-		
-		// reset MADS:
-		reset();
-		
-		// this strategy deciding the initial mesh size
-		// was used with versions < 3.4
-		// if ( cur_mads_run > 1 )
-		//  _p.set_INITIAL_MESH_INDEX ( (ell > 5) ? 5 : ell );
-		
-		// modify MAX_BB_EVAL for single runs (in order to have
-		// less than overall_bbe blackbox evaluations):
-		if ( overall_bbe >= 0 && global_bbe + max_bbe > overall_bbe )
-			_p.set_MAX_BB_EVAL ( overall_bbe - global_bbe );
-	}
-	
-	// set the number of MADS runs for the general Stats object:
-	_stats.set_mads_runs ( multi_stats.get_mads_runs() );
-	
-	// call the user-defined function Multi_Obj_Evaluator::update_mads_run():
-	if ( user_calls_enabled )
-		ev.update_mads_run ( _stats         ,
-							_ev_control    ,
-							_true_barrier  ,
-							_sgte_barrier  ,
-							*_pareto_front   );
+    // max number of bb evaluations for one MADS run:
+    int max_bbe = _p.get_max_bb_eval();
+    
+    // size of the Pareto front before the MADS run:
+    int tmp = _pareto_front->size();
+    
+    // current MADS run:
+    int cur_mads_run = multi_stats.get_mads_runs();
+    
+    // displays:
+    const NOMAD::Display & out = _p.out();
+    
+    if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+    {
+        out << "MADS run " << std::setw(2) << cur_mads_run + 1;
+        if ( mads_runs > 0 )
+            out << "/" << mads_runs;
+        out << " ...";
+    }
+    
+    // run single-objective MADS (it also updates the Pareto front):
+    NOMAD::Mads::set_flag_check_bimads ( false );
+    NOMAD::stop_type single_run_stop_reason = run();
+    NOMAD::Mads::set_flag_check_bimads ( true );
+    
+    if ( single_run_stop_reason == NOMAD::CTRL_C              ||
+        single_run_stop_reason == NOMAD::ERROR               ||
+        single_run_stop_reason == NOMAD::UNKNOWN_STOP_REASON ||
+        single_run_stop_reason == NOMAD::X0_FAIL             ||
+        single_run_stop_reason == NOMAD::F_TARGET_REACHED    ||
+        single_run_stop_reason == NOMAD::P1_FAIL                )
+    {
+        stop        = true;
+        stop_reason = single_run_stop_reason;
+    }
+    
+    // update MULTI-MADS stats from MADS stats:
+    multi_stats.update ( _stats , false ); // for_search = false
+    multi_stats.add_mads_run();
+    
+    int nb_new_pts = _pareto_front->size() - tmp;
+    int global_bbe = multi_stats.get_bb_eval();
+    
+    // displays:
+    if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+    {
+        
+        // display basic stats on the terminated run:
+        out << "... OK [bb eval="    << std::setw(3) << _stats.get_bb_eval()
+        << "] [overall bb eval=" << std::setw(5) << global_bbe
+        << "] [# dominant pts="  << std::setw(4) << _pareto_front->size()
+        << "] [# new pts="       << std::setw(4) << nb_new_pts << "]";
+        
+        // display f1, f2, and f:
+        const NOMAD::Eval_Point * bf = get_best_feasible();
+        if ( bf )
+        {
+            
+            const NOMAD::Point & bbo = bf->get_bb_outputs();
+            
+            out << " [f1=" << bbo[ev.get_i1()]
+            << " f2=" << bbo[ev.get_i2()];
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << " f="  << bf->get_f();
+            out << "]";
+        }
+        out << std::endl;
+    }
+    
+    if ( _stats.get_bb_eval() == 0 && nb_new_pts == 0 )
+        ++stagnation_cnt;
+    else
+        stagnation_cnt = 0;
+    
+    // stop ?
+    if ( !stop )
+    {
+        
+        // test the number of MADS runs:
+        if ( mads_runs > 0 )
+        {
+            if ( multi_stats.get_mads_runs() >= mads_runs )
+            {
+                stop        = true;
+                stop_reason = NOMAD::MULTI_NB_MADS_RUNS_REACHED;
+            }
+        }
+        
+        // test if no new Pareto point has been generated for 50*n MADS runs:
+        else
+        {
+            if ( stagnation_cnt > 50 * _p.get_nb_free_variables() )
+            {
+                stop        = true;
+                stop_reason = NOMAD::MULTI_STAGNATION;
+            }
+        }
+    }
+    
+    if ( overall_bbe >= 0 && global_bbe >= overall_bbe )
+    {
+        stop        = true;
+        stop_reason = NOMAD::MULTI_MAX_BB_REACHED;
+    }
+    
+    bool user_calls_enabled = _p.get_user_calls_enabled();
+    
+    if ( !stop )
+    {
+        
+        // ell is the mesh index on which the last run terminated:
+        // int ell = NOMAD::Mesh::get_mesh_index();
+        
+        // reset MADS:
+        reset();
+        
+        // this strategy deciding the initial mesh size
+        // was used with versions < 3.4
+        // if ( cur_mads_run > 1 )
+        //  _p.set_INITIAL_MESH_INDEX ( (ell > 5) ? 5 : ell );
+        
+        // modify MAX_BB_EVAL for single runs (in order to have
+        // less than overall_bbe blackbox evaluations):
+        if ( overall_bbe >= 0 && global_bbe + max_bbe > overall_bbe )
+            _p.set_MAX_BB_EVAL ( overall_bbe - global_bbe );
+    }
+    
+    // set the number of MADS runs for the general Stats object:
+    _stats.set_mads_runs ( multi_stats.get_mads_runs() );
+    
+    // call the user-defined function Multi_Obj_Evaluator::update_mads_run():
+    if ( user_calls_enabled )
+        ev.update_mads_run ( _stats         ,
+                            _ev_control    ,
+                            _true_barrier  ,
+                            _sgte_barrier  ,
+                            *_pareto_front   );
 }
 
 /*--------------------------------------------------------------------------*/
@@ -753,33 +728,34 @@ void NOMAD::Mads::multi_launch_single_opt
 /*  (private)                                                               */
 /*--------------------------------------------------------------------------*/
 void NOMAD::Mads::multi_set_min_poll_size ( const NOMAD::Point & lb        ,
-										   const NOMAD::Point & ub        ,
-										   const NOMAD::Point & Delta_0 ,
-										   NOMAD::Double        delta_j     )
+                                           const NOMAD::Point & ub        ,
+                                           const NOMAD::Point & Delta_0 ,
+                                           NOMAD::Double        delta_j     )
 {
     
-	delta_j /= sqrt ( _mesh->get_update_basis() );
-	
-	int          n = Delta_0.size();
-	NOMAD::Point Delta_min (n);
-	
-	for ( int i = 0 ; i < n ; ++i )
-	{
-		
-		// set a relative value:
-		if ( lb[i].is_defined() && ub[i].is_defined() )
-			Delta_min[i] = delta_j * ( ub[i] - lb[i] );
-		
-		// set an absolute value:
-		else
-			Delta_min[i] = delta_j;
-		
-		// compare to Delta_0:
-		if ( Delta_min[i] > Delta_0[i] )
-			Delta_min[i] = Delta_0[i];
-	}
-	
-	_p.set_MIN_POLL_SIZE ( Delta_min );
+    
+    delta_j /= sqrt ( _mesh->get_update_basis() );
+    
+    int          n = Delta_0.size();
+    NOMAD::Point Delta_min (n);
+    
+    for ( int i = 0 ; i < n ; ++i )
+    {
+        
+        // set a relative value:
+        if ( lb[i].is_defined() && ub[i].is_defined() )
+            Delta_min[i] = delta_j * ( ub[i] - lb[i] );
+        
+        // set an absolute value:
+        else
+            Delta_min[i] = delta_j;
+        
+        // compare to Delta_0:
+        if ( Delta_min[i] > Delta_0[i] )
+            Delta_min[i] = Delta_0[i];
+    }
+    
+    _p.set_MIN_POLL_SIZE ( Delta_min );
 }
 
 /*---------------------------------------------------------*/
@@ -787,1066 +763,1072 @@ void NOMAD::Mads::multi_set_min_poll_size ( const NOMAD::Point & lb        ,
 /*---------------------------------------------------------*/
 NOMAD::stop_type NOMAD::Mads::multi_run ( void )
 {
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_gen_dd();
-	NOMAD::stop_type  stop_reason = NOMAD::UNKNOWN_STOP_REASON;
-	
-	// init the slaves:
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_gen_dd();
+    NOMAD::stop_type  stop_reason = NOMAD::UNKNOWN_STOP_REASON;
+    
+    // init the slaves:
     
 #ifdef USE_MPI
-	
-	if ( NOMAD::Slave::get_nb_processes() < 2 )
-	{
-		out << NOMAD::open_block("ERROR:") << "Incorrect command to run with MPI." << std::endl 
-		<< "Usage: mpirun -np p exeName" << std::endl ;
-		out << NOMAD::close_block();
-		return stop_reason;
-	}
-	
-	bool stop_slaves_here = false;
-	
-	if ( NOMAD::Slave::is_master() ) 
-	{
-		if ( !NOMAD::Slave::are_running() ) 
-		{
-			NOMAD::Slave::init_slaves ( out );
-			stop_slaves_here = true;
-		}
-	}
-	else
-	{
-		NOMAD::Slave s ( _p , _ev_control.get_evaluator() );
-		s.run();
-		return stop_reason;
-	}
-	
+    
+    if ( NOMAD::Slave::get_nb_processes() < 2 )
+    {
+        out << NOMAD::open_block("ERROR:") << "Incorrect command to run with MPI." << std::endl
+        << "Usage: mpirun -np p exeName" << std::endl ;
+        out << NOMAD::close_block();
+        return stop_reason;
+    }
+    
+    bool stop_slaves_here = false;
+    
+    if ( NOMAD::Slave::is_master() )
+    {
+        if ( !NOMAD::Slave::are_running() )
+        {
+            NOMAD::Slave::init_slaves ( out );
+            stop_slaves_here = true;
+        }
+    }
+    else
+    {
+        NOMAD::Slave s ( _p , _ev_control.get_evaluator() );
+        s.run();
+        return stop_reason;
+    }
+    
 #endif
-	
-	try {
-		
-		// objective indexes:
-		NOMAD::Multi_Obj_Evaluator::set_obj_indexes ( _p.get_index_obj() );
-		
-		// bounds:
-		const NOMAD::Point & lb = _p.get_lb();
-		const NOMAD::Point & ub = _p.get_ub();
-		
-		// MULTI-MADS stopping criteria:
-		int  mads_runs      = _p.get_multi_nb_mads_runs();    // max number of MADS runs
-		int  overall_bbe    = _p.get_multi_overall_bb_eval(); // max number of total bb eval.
-		bool use_delta_crit = _p.get_multi_use_delta_crit();  // use the delta term. crit.
-		int  stagnation_cnt = 0;
-		
-		if ( mads_runs == 0 )
-			throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-									"Mads::multi_run(): parameter MULTI_NB_MADS_RUNS is not positive" );
-		
-		if ( _p.get_nb_obj() != 2 )
-			throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-									"Mads::multi_run(): NOMAD current version handles a maximum of two objectives" );
-		
-		// remember cache save period:
-		int old_csp = _p.get_cache_save_period();
-		
-		// remember L_CURVE_TARGET:
-		NOMAD::Double old_lct = _p.get_L_curve_target();
-		
-		// remember solution file:
-		std::string old_sol_file = _p.get_solution_file();
-		
-		// remember the original LH search parameters:
-		int lh_p0 = _p.get_LH_search_p0();
-		int lh_pi = _p.get_LH_search_pi();
-		
-		// remember the original minimal poll size:
-		const NOMAD::Point original_min_poll_size = _p.get_min_poll_size();
-		
-		// remember display degrees:
-		NOMAD::dd_type iter_dd = out.get_iter_dd();
-		std::string    old_dd;
-		out.get_display_degree ( old_dd );
-		
-		// save list of starting points:
-		std::string x0_cache_file = _p.get_x0_cache_file();
-		std::vector<NOMAD::Point *> x0s;
-		{
-			const std::vector<NOMAD::Point *> & x0s_tmp = _p.get_x0s();
-			size_t nx0 = x0s_tmp.size() , k;
-			for ( k = 0 ; k < nx0 ; ++k )
-				x0s.push_back ( new Point ( *x0s_tmp[k] ) );
-		}
-		
-		NOMAD::Point Delta_0 = _mesh->get_initial_poll_size ();
-		
-		
-		if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
-			out << std::endl << NOMAD::open_block ( "multi-MADS run" ) << std::endl;
-		
-		bool stop   = false;
-		stop_reason = NOMAD::NO_STOP;
-		
-		// MULTI-MADS stats:
-		NOMAD::Stats multi_stats ( _stats );
-		
-		// access to the evaluator (downcast to a Multi_Obj_Evaluator):
-		NOMAD::Multi_Obj_Evaluator * ev =
-		static_cast<NOMAD::Multi_Obj_Evaluator*> ( _ev_control.get_evaluator() );
-		if ( !ev->is_multi_obj() )
-			throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-									"Mads::multi_run(): associated Evaluator object is not a Multi_Obj_Evaluator" );
-		
-		// parameters modifications:
-		// -------------------------
-		
-		// STATS_FILE:
-		const std::string            old_stats_file_name = _p.get_stats_file_name();
-		const std::list<std::string> old_stats_file      = _p.get_stats_file();
-		_p.reset_stats_file();
-		
-		// MAX_BB_EVAL:
-		int max_bbe = _p.get_max_bb_eval();
-		if ( overall_bbe >= 0 && ( max_bbe < 0 || overall_bbe < max_bbe ) )
-			_p.set_MAX_BB_EVAL ( overall_bbe );
-		
-		// disable display:
-		_p.set_DISPLAY_DEGREE ( NOMAD::NO_DISPLAY );
-		
-		// disable solution file:
-		_p.set_SOLUTION_FILE ( "" );
-		
-		// disable CACHE_SAVE_PERIOD:
-		_p.set_CACHE_SAVE_PERIOD ( -1 );
-		
-		// disable L_CURVE_TARGET:
-		_p.set_L_CURVE_TARGET ( NOMAD::Double() );
-		
-		// LH_SEARCH and MAX_BB_EVAL adjustment:
-		if ( lh_p0 > 0 ) 
-		{
-			_p.set_LH_SEARCH ( lh_p0 , 0 );
-			if ( max_bbe >= 0 )
-			{
-				int bbe = max_bbe + lh_p0;
-				if ( overall_bbe >= 0 && bbe > overall_bbe )
-					bbe = overall_bbe;
-				_p.set_MAX_BB_EVAL ( bbe );
-			}
-		}
-		
-		// parameters validation:
-		_p.check ( true ,    // remove_history_file  = true
-				  true ,    // remove_solution_file = true
-				  true   ); // remove_stats_file    = true
-		
-		// Pareto front initialization:
-		delete _pareto_front;
-		_pareto_front = new NOMAD::Pareto_Front;
+    
+    try {
         
-        // Problem has categorical variables ? (Si why this flag is needed below)
-        bool hasCategoricalVar=_p.get_signature()->has_categorical();
-		
-		// initial optimizations ( minimize f1(x) or f2(x) ):
-		// --------------------------------------------------
-		const NOMAD::Eval_Point * best_f2;
-		int i;
-		
-		for ( i = 0 ; i < 2 ; ++i )
-		{
-			
-			if ( stop )
-				break;
-			
-			// minimize f2:
-			if ( i == 1 )
-			{
-				
-				// new starting point:
-				best_f2 = _pareto_front->get_best_f2();
-				if ( best_f2 )
-				{  
-					_p.set_EXTERN_SIGNATURE ( best_f2->get_signature() );
-					_p.reset_X0();
-					_p.set_X0 ( *best_f2 );
-				}
-				
-				// LH_SEARCH:
-				if ( lh_pi > 0 )
-					_p.set_LH_SEARCH ( lh_pi , 0 );
-				else if ( lh_p0 > 0 )
-					_p.set_LH_SEARCH ( 0 , 0 );
-				
-				// MAX_BB_EVAL:
-				if ( max_bbe >= 0 )
-				{
-					int bbe = max_bbe + ( (lh_pi > 0 ) ? lh_pi : 0 );
-					if ( overall_bbe >= 0 ) 
-					{
-						if ( bbe > overall_bbe )
-							bbe = overall_bbe;
-						int global_bbe = multi_stats.get_bb_eval();
-						if ( global_bbe + bbe > overall_bbe )
-							bbe = overall_bbe - global_bbe;
-					}
-					_p.set_MAX_BB_EVAL ( bbe );
-				}
-				
-				if ( _p.to_be_checked() )
-					_p.check ( false ,    // remove_history_file  = false
-							  true  ,    // remove_solution_file = true
-							  true    ); // remove_stats_file    = true
-                
-                _mesh=_p.get_signature()->get_mesh();
-                
-			}
-			
-			// set weights/reference:
-			ev->set_weights ( 1-i , i );
-			ev->set_ref     ( NULL    );
-			
-			// launch the single optimization:
-			multi_launch_single_opt ( iter_dd        ,
-									 mads_runs      ,
-									 overall_bbe    ,
-									 *ev            ,
-									 stagnation_cnt ,
-									 multi_stats    ,
-									 stop           ,
-									 stop_reason      );
-		}
-        
-		const NOMAD::Point        * ref;
-		const NOMAD::Pareto_Point * xj;
-		NOMAD::Double               delta_j;
-		
-		// the LH search is disabled:
-		_p.set_LH_SEARCH ( 0 , 0 );
-		
-		// MAX_BB_EVAL reset:
-		if ( max_bbe > 0 && ( lh_p0 > 0 || lh_pi > 0 ) ) 
-		{
-			int bbe = max_bbe;
-			if ( overall_bbe >= 0 ) 
-			{
-				if ( bbe > overall_bbe )
-					bbe = overall_bbe;
-				
-				int global_bbe = multi_stats.get_bb_eval();
-				if ( global_bbe + bbe > overall_bbe )
-					bbe = overall_bbe - global_bbe;
-			}
-			_p.set_MAX_BB_EVAL ( bbe );
-		}
-		
-		// MULTI-MADS main loop:
-		// ---------------------
-		const NOMAD::Eval_Point * x0_tmp;
-		
-		while ( !stop ) 
-		{
-			
-			// get the reference point from the Pareto front:
-			ref = _pareto_front->get_ref ( xj , delta_j );
-			
-			if ( !xj )
-			{
-				stop        = true;
-				stop_reason = NOMAD::MULTI_NO_PARETO_PTS;
-				break;
-			}
-			
-			// use delta as stopping criterion:
-			if ( use_delta_crit )
-			{
-				if ( delta_j.is_defined() && delta_j > 0.0 )
-					multi_set_min_poll_size ( lb , ub , Delta_0 , delta_j );
-				else
-					_p.set_MIN_POLL_SIZE ( original_min_poll_size );
-			}
-			
-			// new starting point:
-			x0_tmp = xj->get_element();
-			_p.set_EXTERN_SIGNATURE ( x0_tmp->get_signature() );
-			_p.reset_X0();
-			_p.set_X0 ( *x0_tmp );
-			
-			_p.check ( false ,    // remove_history_file  = false
-					  true  ,    // remove_solution_file = true
-					  true    ); // remove_stats_file    = true
-			
-			// a reference point has been found: optimization
-			// with reference-based function:
-			if ( ref )
-			{
-				
-				// set reference:
-				ev->set_ref ( ref );
-				
-				// launch the single optimization:
-				multi_launch_single_opt ( iter_dd        ,
-										 mads_runs      ,
-										 overall_bbe    ,
-										 *ev            ,
-										 stagnation_cnt ,
-										 multi_stats    ,
-										 stop           ,
-										 stop_reason      );
-				
-				delete ref;
-				ev->set_ref ( NULL );
-			}
-			
-			// no reference available: two optimizations ( f1(x) and f2(x) ):
-			else 
-			{
-				
-				// for the stagnation check:
-				const NOMAD::Eval_Point * pp_before;
-				int  stagnation_cnt_before , overall_bbe_before;
-				bool check_1 = false;
-				
-				// loop on f1 and f2:
-				for ( i = 0 ; i < 2 ; ++i )
-				{
-					
-					if ( stop )
-						break;
-					
-					// minimize f2:
-					if ( i == 1 )
-					{
-						
-						// new starting point:
-						best_f2 = _pareto_front->get_best_f2();
-						if ( best_f2 )
-						{  
-							_p.set_EXTERN_SIGNATURE ( best_f2->get_signature() );
-							_p.reset_X0();
-							_p.set_X0 ( *best_f2 );
-						}
-						else
-							_p.set_X0 ( *x0_tmp );
-						
-						_p.check ( false ,    // remove_history_file  = false
-								  true  ,    // remove_solution_file = true
-								  true    ); // remove_stats_file    = true
-					}
-					
-					// set weights/reference:
-					ev->set_weights ( 1-i , i );
-					ev->set_ref     ( NULL    );
-					
-					stagnation_cnt_before = stagnation_cnt;
-					overall_bbe_before    = overall_bbe;
-					pp_before = ( _pareto_front->size() == 1 ) ?
-					_pareto_front->begin() : NULL;
-					
-					// launch the single optimization:
-					multi_launch_single_opt ( iter_dd        ,
-											 mads_runs      ,
-											 overall_bbe    ,
-											 *ev            ,
-											 stagnation_cnt ,
-											 multi_stats    ,
-											 stop           ,
-											 stop_reason      );
-					
-					// stagnation check:
-					if ( stagnation_cnt > stagnation_cnt_before &&
-						overall_bbe == overall_bbe_before      &&
-						_pareto_front->size() == 1             &&
-						_pareto_front->begin() == pp_before       )
-					{
-						
-						if ( i == 0 )
-							check_1 = true;
-						else if ( check_1 )
-                        {
-							stop        = true;
-							stop_reason = NOMAD::MULTI_STAGNATION;
-						}
-					}
-				}
-			}
-			
-		} // end of MULTI-MADS main loop
-		// ---------------------------
-
+        // objective indexes:
+        NOMAD::Multi_Obj_Evaluator::set_obj_indexes ( _p.get_index_obj() );
         
-		// parameters re-initialization and final displays:
-		if ( ! hasCategoricalVar )  // Dimension may change when categorical variables are present. This may pose problem for the check. Hence we add a test -> when categorical variables are present, the parameters are not set back to their initial state at the end of the multi-objective optimization.
-        {
-			_p.reset_X0();
-			size_t nx0 = x0s.size();
-			if ( nx0 > 0 )
-			{
-				for ( size_t k = 0 ; k < nx0 ; ++k ) 
-				{
-					_p.set_X0 ( *x0s[k] );
-					delete x0s[k];
-				}
-			}
-			else if ( !x0_cache_file.empty() )
-				_p.set_X0 ( x0_cache_file );
+        // bounds:
+        const NOMAD::Point & lb = _p.get_lb();
+        const NOMAD::Point & ub = _p.get_ub();
+        
+        // MULTI-MADS stopping criteria:
+        int  mads_runs      = _p.get_multi_nb_mads_runs();    // max number of MADS runs
+        int  overall_bbe    = _p.get_multi_overall_bb_eval(); // max number of total bb eval.
+        bool use_delta_crit = _p.get_multi_use_delta_crit();  // use the delta term. crit.
+        int  stagnation_cnt = 0;
+        
+        if ( mads_runs == 0 )
+            throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                    "Mads::multi_run(): parameter MULTI_NB_MADS_RUNS is not positive" );
+        
+        if ( _p.get_nb_obj() != 2 )
+            throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                    "Mads::multi_run(): NOMAD current version handles a maximum of two objectives" );
+        
+        // remember cache save period:
+        int old_csp = _p.get_cache_save_period();
+        
+        // remember L_CURVE_TARGET:
+        NOMAD::Double old_lct = _p.get_L_curve_target();
+        
+        // remember solution file:
+        std::string old_sol_file = _p.get_solution_file();
+        
+        // remember the original LH search parameters:
+        int lh_p0 = _p.get_LH_search_p0();
+        int lh_pi = _p.get_LH_search_pi();
+        
+        // remember the original minimal poll size:
+        const NOMAD::Point original_min_poll_size = _p.get_min_poll_size();
+        
+        // remember display degrees:
+        NOMAD::dd_type iter_dd = out.get_iter_dd();
+        std::string    old_dd;
+        out.get_display_degree ( old_dd );
+        
+        // save list of starting points:
+        std::string x0_cache_file = _p.get_x0_cache_file();
+        std::vector<NOMAD::Point *> x0s;
+        {
+            const std::vector<NOMAD::Point *> & x0s_tmp = _p.get_x0s();
+            size_t nx0 = x0s_tmp.size() , k;
+            for ( k = 0 ; k < nx0 ; ++k )
+                x0s.push_back ( new Point ( *x0s_tmp[k] ) );
+        }
+        
+        NOMAD::Point Delta_0 = _mesh->get_initial_poll_size ();
+        
+        
+        if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+            out << std::endl << NOMAD::open_block ( "multi-MADS run" ) << std::endl;
+        
+        bool stop   = false;
+        stop_reason = NOMAD::NO_STOP;
+        
+        // MULTI-MADS stats:
+        NOMAD::Stats multi_stats ( _stats );
+        
+        // access to the evaluator (downcast to a Multi_Obj_Evaluator):
+        NOMAD::Multi_Obj_Evaluator * ev =
+        static_cast<NOMAD::Multi_Obj_Evaluator*> ( _ev_control.get_evaluator() );
+        if ( !ev->is_multi_obj() )
+            throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                    "Mads::multi_run(): associated Evaluator object is not a Multi_Obj_Evaluator" );
+        
+        // parameters modifications:
+        // -------------------------
+        
+        // STATS_FILE:
+        const std::string            old_stats_file_name = _p.get_stats_file_name();
+        const std::list<std::string> old_stats_file      = _p.get_stats_file();
+        _p.reset_stats_file();
+        
+        // MAX_BB_EVAL:
+        int max_bbe = _p.get_max_bb_eval();
+        if ( overall_bbe >= 0 && ( max_bbe < 0 || overall_bbe < max_bbe ) )
+            _p.set_MAX_BB_EVAL ( overall_bbe );
+        
+        // disable display:
+        _p.set_DISPLAY_DEGREE ( NOMAD::NO_DISPLAY );
+        
+        // disable solution file:
+        _p.set_SOLUTION_FILE ( "" );
+        
+        // disable CACHE_SAVE_PERIOD:
+        _p.set_CACHE_SAVE_PERIOD ( -1 );
+        
+        // disable L_CURVE_TARGET:
+        _p.set_L_CURVE_TARGET ( NOMAD::Double() );
+        
+        // LH_SEARCH and MAX_BB_EVAL adjustment:
+        if ( lh_p0 > 0 )
+        {
+            _p.set_LH_SEARCH ( lh_p0 , 0 );
+            if ( max_bbe >= 0 )
+            {
+                int bbe = max_bbe + lh_p0;
+                if ( overall_bbe >= 0 && bbe > overall_bbe )
+                    bbe = overall_bbe;
+                _p.set_MAX_BB_EVAL ( bbe );
+            }
+        }
+        
+        // parameters validation:
+        _p.check ( true ,    // remove_history_file  = true
+                  true ,    // remove_solution_file = true
+                  true   ); // remove_stats_file    = true
+        
+        // Pareto front initialization:
+        delete _pareto_front;
+        _pareto_front = new NOMAD::Pareto_Front;
+        
+        // Problem has categorical variables ? (Si why this flag is needed below)
+        bool hasCategoricalVar=_p.get_signature()->has_categorical();
+        
+        // initial optimizations ( minimize f1(x) or f2(x) ):
+        // --------------------------------------------------
+        const NOMAD::Eval_Point * best_f2;
+        int i;
+        
+        for ( i = 0 ; i < 2 ; ++i )
+        {
+            
+            if ( stop )
+                break;
+            
+            // minimize f2:
+            if ( i == 1 )
+            {
+                
+                // new starting point:
+                best_f2 = _pareto_front->get_best_f2();
+                if ( best_f2 )
+                {
+                    _p.set_EXTERN_SIGNATURE ( best_f2->get_signature() );
+                    _p.reset_X0();
+                    _p.set_X0 ( *best_f2 );
+                }
+                
+                // LH_SEARCH:
+                if ( lh_pi > 0 )
+                    _p.set_LH_SEARCH ( lh_pi , 0 );
+                else if ( lh_p0 > 0 )
+                    _p.set_LH_SEARCH ( 0 , 0 );
+                
+                // MAX_BB_EVAL:
+                if ( max_bbe >= 0 )
+                {
+                    int bbe = max_bbe + ( (lh_pi > 0 ) ? lh_pi : 0 );
+                    if ( overall_bbe >= 0 )
+                    {
+                        if ( bbe > overall_bbe )
+                            bbe = overall_bbe;
+                        int global_bbe = multi_stats.get_bb_eval();
+                        if ( global_bbe + bbe > overall_bbe )
+                            bbe = overall_bbe - global_bbe;
+                    }
+                    _p.set_MAX_BB_EVAL ( bbe );
+                }
+                
+                if ( _p.to_be_checked() )
+                    _p.check ( false ,    // remove_history_file  = false
+                              true  ,    // remove_solution_file = true
+                              true    ); // remove_stats_file    = true
+                
+                _mesh=_p.get_signature()->get_mesh();
+                
+            }
+            
+            // set weights/reference:
+            ev->set_weights ( 1-i , i );
+            ev->set_ref     ( NULL    );
+            
+            // launch the single optimization:
+            multi_launch_single_opt ( iter_dd        ,
+                                     mads_runs      ,
+                                     overall_bbe    ,
+                                     *ev            ,
+                                     stagnation_cnt ,
+                                     multi_stats    ,
+                                     stop           ,
+                                     stop_reason      );
+        }
+        
+        const NOMAD::Point        * ref;
+        const NOMAD::Pareto_Point * xj;
+        NOMAD::Double               delta_j;
+        
+        // the LH search is disabled:
+        _p.set_LH_SEARCH ( 0 , 0 );
+        
+        // MAX_BB_EVAL reset:
+        if ( max_bbe > 0 && ( lh_p0 > 0 || lh_pi > 0 ) )
+        {
+            int bbe = max_bbe;
+            if ( overall_bbe >= 0 )
+            {
+                if ( bbe > overall_bbe )
+                    bbe = overall_bbe;
+                
+                int global_bbe = multi_stats.get_bb_eval();
+                if ( global_bbe + bbe > overall_bbe )
+                    bbe = overall_bbe - global_bbe;
+            }
+            _p.set_MAX_BB_EVAL ( bbe );
+        }
+        
+        // MULTI-MADS main loop:
+        // ---------------------
+        const NOMAD::Eval_Point * x0_tmp;
+        
+        while ( !stop )
+        {
+            
+            // get the reference point from the Pareto front:
+            ref = _pareto_front->get_ref ( xj , delta_j );
+            
+            if ( !xj )
+            {
+                stop        = true;
+                stop_reason = NOMAD::MULTI_NO_PARETO_PTS;
+                break;
+            }
+            
+            // use delta as stopping criterion:
+            if ( use_delta_crit )
+            {
+                if ( delta_j.is_defined() && delta_j > 0.0 )
+                    multi_set_min_poll_size ( lb , ub , Delta_0 , delta_j );
+                else
+                    _p.set_MIN_POLL_SIZE ( original_min_poll_size );
+            }
+            
+            // new starting point:
+            x0_tmp = xj->get_element();
+            _p.set_EXTERN_SIGNATURE ( x0_tmp->get_signature() );
+            _p.reset_X0();
+            _p.set_X0 ( *x0_tmp );
+            
+            _p.check ( false ,    // remove_history_file  = false
+                      true  ,    // remove_solution_file = true
+                      true    ); // remove_stats_file    = true
+            
+            // a reference point has been found: optimization
+            // with reference-based function:
+            if ( ref )
+            {
+                
+                // set reference:
+                ev->set_ref ( ref );
+                
+                // launch the single optimization:
+                multi_launch_single_opt ( iter_dd        ,
+                                         mads_runs      ,
+                                         overall_bbe    ,
+                                         *ev            ,
+                                         stagnation_cnt ,
+                                         multi_stats    ,
+                                         stop           ,
+                                         stop_reason      );
+                
+                delete ref;
+                ev->set_ref ( NULL );
+            }
+            
+            // no reference available: two optimizations ( f1(x) and f2(x) ):
+            else
+            {
+                
+                // for the stagnation check:
+                const NOMAD::Eval_Point * pp_before;
+                int  stagnation_cnt_before , overall_bbe_before;
+                bool check_1 = false;
+                
+                // loop on f1 and f2:
+                for ( i = 0 ; i < 2 ; ++i )
+                {
+                    
+                    if ( stop )
+                        break;
+                    
+                    // minimize f2:
+                    if ( i == 1 )
+                    {
+                        
+                        // new starting point:
+                        best_f2 = _pareto_front->get_best_f2();
+                        if ( best_f2 )
+                        {
+                            _p.set_EXTERN_SIGNATURE ( best_f2->get_signature() );
+                            _p.reset_X0();
+                            _p.set_X0 ( *best_f2 );
+                        }
+                        else
+                            _p.set_X0 ( *x0_tmp );
+                        
+                        _p.check ( false ,    // remove_history_file  = false
+                                  true  ,    // remove_solution_file = true
+                                  true    ); // remove_stats_file    = true
+                    }
+                    
+                    // set weights/reference:
+                    ev->set_weights ( 1-i , i );
+                    ev->set_ref     ( NULL    );
+                    
+                    stagnation_cnt_before = stagnation_cnt;
+                    overall_bbe_before    = overall_bbe;
+                    pp_before = ( _pareto_front->size() == 1 ) ?
+                    _pareto_front->begin() : NULL;
+                    
+                    // launch the single optimization:
+                    multi_launch_single_opt ( iter_dd        ,
+                                             mads_runs      ,
+                                             overall_bbe    ,
+                                             *ev            ,
+                                             stagnation_cnt ,
+                                             multi_stats    ,
+                                             stop           ,
+                                             stop_reason      );
+                    
+                    // stagnation check:
+                    if ( stagnation_cnt > stagnation_cnt_before &&
+                        overall_bbe == overall_bbe_before      &&
+                        _pareto_front->size() == 1             &&
+                        _pareto_front->begin() == pp_before       )
+                    {
+                        
+                        if ( i == 0 )
+                            check_1 = true;
+                        else if ( check_1 )
+                        {
+                            stop        = true;
+                            stop_reason = NOMAD::MULTI_STAGNATION;
+                        }
+                    }
+                }
+            }
+            
+        } // end of MULTI-MADS main loop
+        // ---------------------------
+        
+        
+        // parameters re-initialization and final displays:
+        if ( ! hasCategoricalVar )  // Dimension may change when categorical variables are present. This may pose problem for the check. Hence we add a test -> when categorical variables are present, the parameters are not set back to their initial state at the end of the multi-objective optimization.
+        {
+            _p.reset_X0();
+            size_t nx0 = x0s.size();
+            if ( nx0 > 0 )
+            {
+                for ( size_t k = 0 ; k < nx0 ; ++k )
+                {
+                    _p.set_X0 ( *x0s[k] );
+                    delete x0s[k];
+                }
+            }
+            else if ( !x0_cache_file.empty() )
+                _p.set_X0 ( x0_cache_file );
             
             if ( use_delta_crit )
                 _p.set_MIN_POLL_SIZE ( original_min_poll_size );
-
-		}
-		_p.set_MAX_BB_EVAL       ( max_bbe );
-		_p.set_DISPLAY_DEGREE    ( old_dd  );
-		_p.set_STATS_FILE        ( old_stats_file_name , old_stats_file );
-		_p.set_SOLUTION_FILE     ( old_sol_file );
-		_p.set_LH_SEARCH         ( lh_p0 , lh_pi );
-		_p.set_CACHE_SAVE_PERIOD ( old_csp );
-		_p.set_L_CURVE_TARGET    ( old_lct );
-
-		
-		_p.check ( false ,    // remove_history_file  = false
-				  true  ,    // remove_solution_file = true
-				  true    ); // remove_stats_file    = true
-		
-		// reset MADS stats from MULTI-MADS stats:
-		_stats = multi_stats;
-		
-		// final cache save (overwrite=true):
-		_ev_control.save_caches ( true );
-		
+            
+        }
+        _p.set_MAX_BB_EVAL       ( max_bbe );
+        _p.set_DISPLAY_DEGREE    ( old_dd  );
+        _p.set_STATS_FILE        ( old_stats_file_name , old_stats_file );
+        _p.set_SOLUTION_FILE     ( old_sol_file );
+        _p.set_LH_SEARCH         ( lh_p0 , lh_pi );
+        _p.set_CACHE_SAVE_PERIOD ( old_csp );
+        _p.set_L_CURVE_TARGET    ( old_lct );
+        
+        
+        _p.check ( false ,    // remove_history_file  = false
+                  true  ,    // remove_solution_file = true
+                  true    ); // remove_stats_file    = true
+        
+        // reset MADS stats from MULTI-MADS stats:
+        _stats = multi_stats;
+        
+        // final cache save (overwrite=true):
+        _ev_control.save_caches ( true );
+        
 #ifndef R_VERSION
-		if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY) 
-		{
-			std::ostringstream msg;
-			msg << "end of run (" << stop_reason << ")";
-			out << std::endl << NOMAD::close_block ( msg.str() ) << std::endl;
-		}
+        if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+        {
+            std::ostringstream msg;
+            msg << "end of run (" << stop_reason << ")";
+            out << std::endl << NOMAD::close_block ( msg.str() ) << std::endl;
+        }
 #endif
         
         
-		// multi-objective final displays:
-		if ( _p.get_nb_obj() > 1 )
-		{
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out.open_block ( "NOMAD final display" );
-			
-			display();
-			
-			if ( display_degree == NOMAD::FULL_DISPLAY )
-				out.close_block();
-		}
-		
-	} // end of the try block
-	
-	catch ( std::exception & e ) 
+        // multi-objective final displays:
+        if ( _p.get_nb_obj() > 1 )
+        {
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out.open_block ( "NOMAD final display" );
+            
+            display();
+            
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out.close_block();
+        }
+        
+    } // end of the try block
+    
+    catch ( std::exception & e )
     {
         
 #ifdef USE_MPI
-		if ( NOMAD::Slave::are_running() )
-			NOMAD::Slave::stop_slaves ( out );
+        if ( NOMAD::Slave::are_running() )
+            NOMAD::Slave::stop_slaves ( out );
 #endif
-		
-		throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , e.what() );
-	}
-	
-	// stop the slaves:
+        
+        throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , e.what() );
+    }
+    
+    // stop the slaves:
 #ifdef USE_MPI
-	if ( NOMAD::Slave::are_running() && stop_slaves_here )
-		NOMAD::Slave::stop_slaves ( out );
+    if ( NOMAD::Slave::are_running() && stop_slaves_here )
+        NOMAD::Slave::stop_slaves ( out );
 #endif
-	
-	return stop_reason;
+    
+    return stop_reason;
 }
 
 /*---------------------------------------------------------*/
 /*                 one MADS iteration (private)            */
 /*---------------------------------------------------------*/
 void NOMAD::Mads::iteration ( bool                     & stop           ,
-							 NOMAD::stop_type         & stop_reason    ,
-							 NOMAD::success_type      & success        ,
-							 const NOMAD::Eval_Point *& new_feas_inc   ,
-							 const NOMAD::Eval_Point *& new_infeas_inc   )
+                             NOMAD::stop_type         & stop_reason    ,
+                             NOMAD::success_type      & success        ,
+                             const NOMAD::Eval_Point *& new_feas_inc   ,
+                             const NOMAD::Eval_Point *& new_infeas_inc   )
 {
-	
-	bool forbid_poll_size_stop = false;
-	
-	// force quit (by pressing ctrl-c):
-	if ( !stop && NOMAD::Mads::_force_quit ) 
-	{
-		stop        = true;
-		stop_reason = NOMAD::CTRL_C;
-		return;
-	}
-	
-	// poll center selection:
-	( ( _p.get_opt_only_sgte() ) ?
-	 _sgte_barrier : _true_barrier ).select_poll_center ( success );
-	
-	// displays:
-	const NOMAD::Display & out = _p.out();
-	if ( out.get_iter_dd() == NOMAD::FULL_DISPLAY )
-		out << std::endl
-		<< NOMAD::open_block ( "MADS iteration "
-							  + NOMAD::itos ( _stats.get_iterations() ) )
-		<< std::endl;
-	display_iteration_begin();
-	
-	// SEARCH:
-	// -------
-	search ( stop , stop_reason , success , new_feas_inc , new_infeas_inc );
-	
-	// POLL:
-	// -----
-	if ( success != NOMAD::FULL_SUCCESS )
-		poll ( stop                  ,
-			  stop_reason           ,
-			  success               ,
-			  new_feas_inc          ,
-			  new_infeas_inc        ,
-			  forbid_poll_size_stop   );
-	
-	// UPDATES:
-	// --------
-	
-	NOMAD::Point old_r=_mesh->get_mesh_indices();
-	
-	if ( !stop )
-	{
-		// OrthogonalMesh update using success status and direction of success (when present)
-		if ( new_feas_inc )
+    
+    bool forbid_poll_size_stop = false;
+    
+    // force quit (by pressing ctrl-c):
+    if ( !stop && NOMAD::Mads::_force_quit )
+    {
+        stop        = true;
+        stop_reason = NOMAD::CTRL_C;
+        return;
+    }
+    
+    // poll center selection:
+    ( ( _p.get_opt_only_sgte() ) ?
+     _sgte_barrier : _true_barrier ).select_poll_center ( success );
+    
+    // displays:
+    const NOMAD::Display & out = _p.out();
+    if ( out.get_iter_dd() == NOMAD::FULL_DISPLAY )
+        out << std::endl
+        << NOMAD::open_block ( "MADS iteration "
+                              + NOMAD::itos ( _stats.get_iterations() ) )
+        << std::endl;
+    display_iteration_begin();
+    
+    // SEARCH:
+    // -------
+    search ( stop , stop_reason , success , new_feas_inc , new_infeas_inc );
+    
+    // POLL:
+    // -----
+    if ( success != NOMAD::FULL_SUCCESS )
+        poll ( stop                  ,
+              stop_reason           ,
+              success               ,
+              new_feas_inc          ,
+              new_infeas_inc        ,
+              forbid_poll_size_stop   );
+    
+    // UPDATES:
+    // --------
+    
+    NOMAD::Point old_r=_mesh->get_mesh_indices();
+    
+    if ( !stop )
+    {
+        
+        // OrthogonalMesh update using success status and direction of success (when present)
+        if ( new_feas_inc )
         {
             _mesh=new_feas_inc->get_signature()->get_mesh();
-			_mesh->update ( success, new_feas_inc->get_direction() );
+            _mesh->update ( success, new_feas_inc->get_direction() );
         }
-		else if ( new_infeas_inc )
+        else if ( new_infeas_inc )
         {
             _mesh=new_infeas_inc->get_signature()->get_mesh();
-			_mesh->update ( success, new_infeas_inc->get_direction());
-        }
-		else
-			_mesh->update ( success );
-			
-			
-		_mesh->check_min_mesh_sizes( stop , stop_reason );
-		
-		// if the Delta_k^p stopping criterion is met with integer variables,
-		// the last set of directions must have a minimal coordinate of 1;
-		// otherwise the stopping criterion is disabled at this iteration:
-		if ( forbid_poll_size_stop && stop && stop_reason == NOMAD::DELTA_P_MIN_REACHED )
-		{
-			stop = false;
-			stop_reason = NOMAD::NO_STOP;
-		}
-		
-		// display:
-		if ( _p.out().get_iter_dd() == NOMAD::FULL_DISPLAY )
-		{
-			_p.out() << std::endl << NOMAD::open_block ( "Orthogonal mesh update" )
-			<< "previous mesh indices: ( " << old_r << " )" << std::endl
-			<< "new mesh indices     : ( " << _mesh->get_mesh_indices() << " )" << std::endl
-			<< NOMAD::close_block() << std::endl;
-		}
-		
-		// periodic cache save (overwrite=false):
-		if ( _p.get_cache_save_period() > 0 &&
-			_stats.get_iterations()%_p.get_cache_save_period() ==
-			_p.get_cache_save_period() - 1 )
-			_ev_control.save_caches ( false );
-	}
-	
-	// number of iterations:
-	_stats.add_iteration();
-	if ( !stop                       &&
-		_p.get_max_iterations() > 0 &&
-		_stats.get_iterations() >= _p.get_max_iterations() ) 
-	{
-		stop        = true;
-		stop_reason = NOMAD::MAX_ITER_REACHED;
-	}
-	
-	// max cache memory:
-	if ( !stop                           &&
-		_p.get_max_cache_memory() > 0.0 &&
-		_ev_control.get_cache().size_of() > 1048576*_p.get_max_cache_memory() )
-	{
-		stop        = true;
-		stop_reason = NOMAD::MAX_CACHE_MEMORY_REACHED;
-	}
-	
-	// L_CURVE_TARGET stopping criterion:
-	if ( _L_curve && !stop )
-	{
-		int bbe = _stats.get_bb_eval();
-		if ( success == NOMAD::FULL_SUCCESS )
-		{
-			if ( new_feas_inc )
-				_L_curve->insert ( bbe , new_feas_inc->get_f() );
-		}
-		else if ( success == NOMAD::UNSUCCESSFUL && _L_curve->check_stop ( bbe ) ) 
-		{
-			stop = true;
-			stop_reason = NOMAD::L_CURVE_TARGET_REACHED;
-		}
-	}
-	
-	// call the user-defined function Evaluator::update_iteration():
-	if ( _p.get_user_calls_enabled() )
-	{
-		bool stop_before = stop;
+            _mesh->update ( success, new_infeas_inc->get_direction());
+        }
+        else
+            _mesh->update ( success );
+        
+        // check the min mesh/poll sizes stopping criteria
+        _mesh->check_min_mesh_sizes( stop , stop_reason );
+        
+        
+        // if the Delta_k^p stopping criterion is met with integer variables,
+        // the last set of directions must have a minimal coordinate of 1;
+        // otherwise the stopping criterion is disabled at this iteration:
+        if ( forbid_poll_size_stop && stop && stop_reason == NOMAD::DELTA_P_MIN_REACHED )
+        {
+            stop = false;
+            stop_reason = NOMAD::NO_STOP;
+        }
+        
+        // display:
+        if ( _p.out().get_iter_dd() == NOMAD::FULL_DISPLAY )
+        {
+            _p.out() << std::endl << NOMAD::open_block ( "OrthogonalMesh update" )
+            << "previous mesh indices: ( " << old_r << " )" << std::endl
+            << "new mesh indices     : ( " << _mesh->get_mesh_indices() << " )" << std::endl
+            << NOMAD::close_block() << std::endl;
+        }
+        
+        // periodic cache save (overwrite=false):
+        if ( _p.get_cache_save_period() > 0 &&
+            _stats.get_iterations()%_p.get_cache_save_period() ==
+            _p.get_cache_save_period() - 1 )
+            _ev_control.save_caches ( false );
+    }
+    
+    // number of iterations:
+    _stats.add_iteration();
+    if ( !stop                       &&
+        _p.get_max_iterations() > 0 &&
+        _stats.get_iterations() >= _p.get_max_iterations() )
+    {
+        stop        = true;
+        stop_reason = NOMAD::MAX_ITER_REACHED;
+    }
+    
+    // max cache memory:
+    if ( !stop                           &&
+        _p.get_max_cache_memory() > 0.0 &&
+        _ev_control.get_cache().size_of() > 1048576*_p.get_max_cache_memory() )
+    {
+        stop        = true;
+        stop_reason = NOMAD::MAX_CACHE_MEMORY_REACHED;
+    }
+    
+    // L_CURVE_TARGET stopping criterion:
+    if ( _L_curve && !stop )
+    {
+        int bbe = _stats.get_bb_eval();
+        if ( success == NOMAD::FULL_SUCCESS )
+        {
+            if ( new_feas_inc )
+                _L_curve->insert ( bbe , new_feas_inc->get_f() );
+        }
+        else if ( success == NOMAD::UNSUCCESSFUL && _L_curve->check_stop ( bbe ) )
+        {
+            stop = true;
+            stop_reason = NOMAD::L_CURVE_TARGET_REACHED;
+        }
+    }
+    
+    // call the user-defined function Evaluator::update_iteration():
+    if ( _p.get_user_calls_enabled() )
+    {
+        bool stop_before = stop;
         
         NOMAD::Pareto_Front * pf = ( ( _pareto_front ) ? _pareto_front:(new NOMAD::Pareto_Front) );
         
-		_ev_control.get_evaluator()->update_iteration ( success        ,
-													   _stats         ,
-													   _ev_control    ,
-													   _true_barrier  ,
-													   _sgte_barrier  ,
+        _ev_control.get_evaluator()->update_iteration ( success        ,
+                                                       _stats         ,
+                                                       _ev_control    ,
+                                                       _true_barrier  ,
+                                                       _sgte_barrier  ,
                                                        *pf               ,
-													   stop             );
+                                                       stop             );
         
         if ( ! _pareto_front )
             delete pf;
         
-        
-		if ( !stop_before && stop )
-			stop_reason = NOMAD::USER_STOPPED;
-	}
-	
-	// if the algorithms stops, we set the mesh index to the value
-	// it had before the mesh update:
-	if ( stop )
-	{
-		_mesh->set_mesh_indices( old_r );
-	}
-	
-	// displays at the end of an iteration:
-	display_iteration_end ( stop           ,
-						   stop_reason    ,
-						   success        ,
-						   new_feas_inc   ,
-						   new_infeas_inc   );
-	
-	
-	
-	// displays:
-	if ( out.get_iter_dd() == NOMAD::FULL_DISPLAY )
-		out << std::endl
-		<< NOMAD::close_block ( "end of iteration "
-							   + NOMAD::itos ( _stats.get_iterations()-1 ) );
+        if ( !stop_before && stop )
+            stop_reason = NOMAD::USER_STOPPED;
+    }
+    
+    // if the algorithms stops, we set the mesh index to the value
+    // it had before the mesh update:
+    if ( stop )
+        _mesh->set_mesh_indices( old_r );
+    
+    // displays at the end of an iteration:
+    display_iteration_end ( stop           ,
+                           stop_reason    ,
+                           success        ,
+                           new_feas_inc   ,
+                           new_infeas_inc   );
+    
+    
+    
+    // displays:
+    if ( out.get_iter_dd() == NOMAD::FULL_DISPLAY )
+        out << std::endl
+        << NOMAD::close_block ( "end of iteration "
+                               + NOMAD::itos ( _stats.get_iterations()-1 ) );
 }
 
 /*---------------------------------------------------------*/
 /*                       the poll (private)                */
 /*---------------------------------------------------------*/
 void NOMAD::Mads::poll ( bool         & stop                  ,
-						NOMAD::stop_type         & stop_reason           ,
-						NOMAD::success_type      & success               ,
-						const NOMAD::Eval_Point *& new_feas_inc          ,
-						const NOMAD::Eval_Point *& new_infeas_inc        ,
-						bool                     & forbid_poll_size_stop   )
+                        NOMAD::stop_type         & stop_reason           ,
+                        NOMAD::success_type      & success               ,
+                        const NOMAD::Eval_Point *& new_feas_inc          ,
+                        const NOMAD::Eval_Point *& new_infeas_inc        ,
+                        bool                     & forbid_poll_size_stop   )
 {
-	forbid_poll_size_stop = false;
-	
-	if ( stop )
-		return;
-	
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_poll_dd();
-	
-	success            = NOMAD::UNSUCCESSFUL;
-	new_feas_inc       = NULL;
-	new_infeas_inc     = NULL;
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-		out << std::endl << NOMAD::open_block ( "MADS poll" ) << std::endl;
-	
-	
-	const NOMAD::Eval_Point * x;	
-	size_t					offset = 0;
-	
-	std::vector<NOMAD::Signature *>  signatures;
-	
-	const NOMAD::Barrier & barrier    = get_active_barrier();
-	std::list<NOMAD::Direction>::const_iterator it , end;
-	
-	
-	// poll centers:
-	const NOMAD::Eval_Point * poll_centers[2] , * poll_center;
-	poll_centers[0] = barrier.get_poll_center();
-	poll_centers[1] = (_p.use_sec_poll_center()) ?
+    forbid_poll_size_stop = false;
+    
+    if ( stop )
+        return;
+    
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_poll_dd();
+    
+    success            = NOMAD::UNSUCCESSFUL;
+    new_feas_inc       = NULL;
+    new_infeas_inc     = NULL;
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out << std::endl << NOMAD::open_block ( "MADS poll" ) << std::endl;
+    
+    
+    const NOMAD::Eval_Point * x;
+    size_t                    offset = 0;
+    
+    std::vector<NOMAD::Signature *>  signatures;
+    
+    const NOMAD::Barrier & barrier    = get_active_barrier();
+    std::list<NOMAD::Direction>::const_iterator it , end;
+    
+    
+    // poll centers:
+    const NOMAD::Eval_Point * poll_centers[2] , * poll_center;
+    poll_centers[0] = barrier.get_poll_center();
+    poll_centers[1] = (_p.use_sec_poll_center()) ?
     barrier.get_sec_poll_center() : NULL;
-	
-	if ( !poll_centers[0] && !poll_centers[1] )
-		throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-								"Mads::poll(): could not get a poll center" );
-	
-	
-	// Keep original directions + reduction in reducedPollDirs 
-	std::list<NOMAD::Direction> *dirs=new std::list<NOMAD::Direction>[2];
-	std::list<NOMAD::Direction> *reducedPollDirs=new std::list<NOMAD::Direction>[2];
-	std::list<NOMAD::Direction>::iterator itDir;
-	
-	
-	// loop on the two poll centers for creation of evaluation point
-	// -----------------------------
-	NOMAD::poll_type i_pc = NOMAD::PRIMARY;
-	poll_center           = poll_centers[NOMAD::PRIMARY];
-	
-	bool reducePollToNDir=false;
-	
-	while ( true )
-	{
-	    if ( poll_center )
-		{
-			// add the poll center signature
-			signatures.push_back(poll_center->get_signature());
-            
-			// Creation of the poll directions
-			set_poll_directions ( dirs[i_pc] , i_pc , offset , *poll_center , stop , stop_reason );
-			
-			// Reduction is applied only to achieve ortho n+1
-			reducePollToNDir=dirs_have_orthomads_np1(dirs[i_pc]);
-						
-			// creation of the poll trial points in the evaluator control:
-			if (reducePollToNDir)
-			{
-				
-				// Keep poll directions unchanged (store directions even those that will be snaped to bounds)
-				reducedPollDirs[i_pc].assign(dirs[i_pc].begin(),dirs[i_pc].end());
-				
-				_ev_control_for_sorting.clear_eval_lop();
-				
-				
-				// Sort the directions only if mesh is not finest
-				if ( ! _mesh->is_finest() )
-				{
-					
-					// 1st sorting of points based on feas. or infeas. success direction. IMPORTANT removes out of bounds -> this justifies to proceede in two steps
-					set_poll_trial_points(dirs[i_pc],offset,*poll_center,stop,stop_reason,true);
-					if (stop)
-					{
-						delete[] dirs;
-						delete[] reducedPollDirs;
-						return;
-					}	
-				 
+    
+    if ( !poll_centers[0] && !poll_centers[1] )
+        throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                "Mads::poll(): could not get a poll center" );
+    
+    
+    // Keep original directions + reduction in reducedPollDirs
+    std::list<NOMAD::Direction> *dirs=new std::list<NOMAD::Direction>[2];
+    std::list<NOMAD::Direction> *reducedPollDirs=new std::list<NOMAD::Direction>[2];
+    std::list<NOMAD::Direction>::iterator itDir;
+    
+    
+    // loop on the two poll centers for creation of evaluation point
+    // -----------------------------
+    NOMAD::poll_type i_pc = NOMAD::PRIMARY;
+    poll_center           = poll_centers[NOMAD::PRIMARY];
+    
+    bool reducePollToNDir=false;
+    
+    while ( true )
+    {
+        if ( poll_center )
+        {
+            // add the poll center signature
+            signatures.push_back(poll_center->get_signature());
+            
+            // Creation of the poll directions
+            set_poll_directions ( dirs[i_pc] , i_pc , offset , *poll_center , stop , stop_reason );
+            
+            // Reduction is applied only to achieve ortho n+1
+            reducePollToNDir=dirs_have_orthomads_np1_dyn(dirs[i_pc]);
+            
+            // creation of the poll trial points in the evaluator control:
+            if ( reducePollToNDir )
+            {
+                
+                // Keep poll directions unchanged (store directions even those that will be snaped to bounds)
+                reducedPollDirs[i_pc].assign(dirs[i_pc].begin(),dirs[i_pc].end());
+                
+                _ev_control_for_sorting.clear_eval_lop();
+                
+                if ( ! _mesh->is_finest() )
+                {
+                    
+                    // 1st sorting of points based on feas. or infeas. success direction. IMPORTANT removes out of bounds -> this justifies to proceede in two steps
+                    set_poll_trial_points(dirs[i_pc],offset,*poll_center,stop,stop_reason,true);
+                    if ( stop )
+                    {
+                        delete[] dirs;
+                        delete[] reducedPollDirs;
+                        return;
+                    }
+                    
 #ifdef USE_MPI
-					// asynchronous mode: wait for truth evaluations in progress:
-					if ( _p.get_asynchronous() )
-					{
-						std::list<const NOMAD::Eval_Point *> eval_pts;
-						_ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
-														  _true_barrier       ,
-														  _sgte_barrier       ,
-														  _pareto_front       ,
-														  stop                ,
-														  stop_reason         ,
-														  success             ,
-														  eval_pts         );
-					}
-#endif	
-					
-					// 2nd sorting of points based on model and surrogate if available 
-					_ev_control_for_sorting.ordering_lop( NOMAD::POLL,stop,stop_reason,_true_barrier,_sgte_barrier  );
-					if (stop)
-					{
-						delete[] dirs;
-						delete[] reducedPollDirs;
-						return;
-					}
-				}
-				
-				
-				
-				// reduce the number of poll direction using dir indices from ev_control_for_sorting and original poll directions (reducedPollDirs)
-				bool hasBeenReduced=set_reduced_poll_to_n_directions(reducedPollDirs[i_pc],*poll_center);
-				
-				
-				// if hasBeenReduced than reassign dirs for setting poll trial points (reduced)
-				// else original dirs are considered
-				if (hasBeenReduced)
-					dirs[i_pc].assign(reducedPollDirs[i_pc].begin(),reducedPollDirs[i_pc].end());						
-				
-			}
-			
-			set_poll_trial_points(dirs[i_pc],offset,*poll_center,stop,stop_reason,false);			
-			offset = dirs[i_pc].size();
-			
-			if (!reducePollToNDir)
-			{
-				// 2nd sorting of points based on model and surrogate if available
-				_ev_control.ordering_lop( NOMAD::POLL,stop,stop_reason,_true_barrier,_sgte_barrier  );
+                    // asynchronous mode: wait for truth evaluations in progress:
+                    if ( _p.get_asynchronous() )
+                    {
+                        std::list<const NOMAD::Eval_Point *> eval_pts;
+                        _ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
+                                                          _true_barrier       ,
+                                                          _sgte_barrier       ,
+                                                          _pareto_front       ,
+                                                          stop                ,
+                                                          stop_reason         ,
+                                                          success             ,
+                                                          eval_pts         );
+                    }
+#endif
+                    
+                    // 2nd sorting of points based on model and surrogate if available
+                    _ev_control_for_sorting.ordering_lop( NOMAD::POLL,stop,stop_reason,_true_barrier,_sgte_barrier  );
+                    if ( stop )
+                    {
+                        delete[] dirs;
+                        delete[] reducedPollDirs;
+                        return;
+                    }
+                }
+                
+                
+                
+                // reduce the number of poll direction using dir indices from ev_control_for_sorting and original poll directions (reducedPollDirs)
+                bool hasBeenReduced=set_reduced_poll_to_n_directions(reducedPollDirs[i_pc],*poll_center);
+                
+                
+                // if hasBeenReduced than reassign dirs for setting poll trial points (reduced)
+                // else original dirs are considered
+                if ( hasBeenReduced )
+                    dirs[i_pc].assign(reducedPollDirs[i_pc].begin(),reducedPollDirs[i_pc].end());
+                
             }
-		
-			
-		}
-		
-		if (stop)
-		{
-			delete[] dirs;
-			delete[] reducedPollDirs;
-			return;
-		}
-		
-	    // loop increment:
-	    if ( i_pc == NOMAD::PRIMARY)
-		{
-			i_pc        = NOMAD::SECONDARY;
-			poll_center = poll_centers[NOMAD::SECONDARY];
-		}
-	    else
-			break;
-	}
-	
-	
-	// display the re-ordered list of poll trial points:
-	if ( display_degree == NOMAD::FULL_DISPLAY && !stop ) 
-	{
-	    const std::set<NOMAD::Priority_Eval_Point> & poll_pts = _ev_control.get_eval_lop();
-	    if (!reducePollToNDir)
-			out << std::endl << NOMAD::open_block ( "re-ordered list of "
-												   + NOMAD::itos ( poll_pts.size() )
-												   + " poll trial points." );
-	    else
-			out << std::endl << NOMAD::open_block ( "re-ordered and reduced (dynamic directions may be added after evaluations) list of "
-												   + NOMAD::itos ( poll_pts.size() )
-												   + " poll trial points" );
-	    
-	    std::set<NOMAD::Priority_Eval_Point>::const_iterator end2 = poll_pts.end() , it2;
-	    for ( it2 = poll_pts.begin() ; it2 != end2 ; ++it2 ) 
-		{
-			x =  it2->get_point();
-			x->display_tag ( out );
-			out << " : ( ";
-			x->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-			out << " )";
-			if ( x->get_direction() )
-				out << " (dir " << x->get_direction()->get_index() << ")";
-			out << std::endl;
-		}
-	    out.close_block();
-	}
-	
-	
-	_stats.add_poll_pts ( _ev_control.get_nb_eval_points() );
-	
-	// the directions are checked to satisfy a minimum
-	// poll size with integer variables:
-	check_directions ( forbid_poll_size_stop );
-	
-	// eval_list_of_points (poll):
-	// ---------------------------
-	std::list<const NOMAD::Eval_Point *> *evaluated_pts=new std::list<const NOMAD::Eval_Point *>; 
-	_ev_control.eval_list_of_points ( NOMAD::POLL    ,
-									 _true_barrier  ,
-									 _sgte_barrier  ,
-									 _pareto_front  ,
-									 stop           ,
-									 stop_reason    ,
-									 new_feas_inc   ,
-									 new_infeas_inc ,
-									 success        ,
-									 evaluated_pts  );    
-	
-	
-	// If ortho mads n+1, complete poll with additional evaluations obtained dynamically
-	if (!stop && success !=NOMAD::FULL_SUCCESS && _p.has_dynamic_direction())
-	{
-		_ev_control.reset();
-		
-		// loop again on the two poll centers to obtain dynamic direction
-		// ---------------------------------------------------------------------------
-		i_pc = NOMAD::PRIMARY;
-		poll_center = poll_centers[NOMAD::PRIMARY];
-		offset=0;
-		while ( true )
-		{
-			if ( poll_center && NOMAD::Mads::dirs_have_orthomads_np1(reducedPollDirs[i_pc])) 
-			{
-				std::list<NOMAD::Direction> dyn_dirs;
-				
+            
+            set_poll_trial_points(dirs[i_pc],offset,*poll_center,stop,stop_reason,false);
+            offset = dirs[i_pc].size();
+            
+            if ( ( _p.get_intensification_type() ==  NOMAD::POLL_ONLY || _p.get_intensification_type() == NOMAD::POLL_AND_SEARCH )  && i_pc == NOMAD::PRIMARY )
+            {
+                set_poll_intensification_points( *poll_center, offset, stop, stop_reason );
+            }
+            
+            if ( !reducePollToNDir )
+            {
+                // 2nd sorting of points based on model and surrogate if available
+                _ev_control.ordering_lop( NOMAD::POLL, stop, stop_reason, _true_barrier, _sgte_barrier  );
+            }
+            
+            
+        }
+        
+        if ( stop )
+        {
+            delete[] dirs;
+            delete[] reducedPollDirs;
+            return;
+        }
+        
+        // loop increment:
+        if ( i_pc == NOMAD::PRIMARY)
+        {
+            i_pc        = NOMAD::SECONDARY;
+            poll_center = poll_centers[NOMAD::SECONDARY];
+        }
+        else
+            break;
+    }
+    
+    
+    // display the re-ordered list of poll trial points:
+    if ( display_degree == NOMAD::FULL_DISPLAY && !stop )
+    {
+        const std::set<NOMAD::Priority_Eval_Point> & poll_pts = _ev_control.get_eval_lop();
+        
+        if ( !reducePollToNDir )
+            out << std::endl << NOMAD::open_block ( "re-ordered list of "
+                                                   + NOMAD::itos ( poll_pts.size() )
+                                                   + " poll trial points." );
+        else
+            out << std::endl << NOMAD::open_block ( "re-ordered and reduced (dynamic directions may be added after evaluations) list of "
+                                                   + NOMAD::itos ( poll_pts.size() )
+                                                   + " poll trial points" );
+        
+        std::set<NOMAD::Priority_Eval_Point>::const_iterator end2 = poll_pts.end() , it2;
+        for ( it2 = poll_pts.begin() ; it2 != end2 ; ++it2 )
+        {
+            x =  it2->get_point();
+            x->display_tag ( out );
+            out << " : ( ";
+            x->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
+            out << " )";
+            if ( x->get_direction() )
+                out << " (dir " << x->get_direction()->get_index() << ")";
+            out << std::endl;
+        }
+        out.close_block();
+    }
+    
+    
+    _stats.add_poll_pts ( _ev_control.get_nb_eval_points() );
+    
+    // the directions are checked to satisfy a minimum
+    // poll size with integer variables:
+    check_directions ( forbid_poll_size_stop );
+    
+    // eval_list_of_points (poll):
+    // ---------------------------
+    std::list<const NOMAD::Eval_Point *> *evaluated_pts=new std::list<const NOMAD::Eval_Point *>;
+    _ev_control.eval_list_of_points ( NOMAD::POLL    ,
+                                     _true_barrier  ,
+                                     _sgte_barrier  ,
+                                     _pareto_front  ,
+                                     stop           ,
+                                     stop_reason    ,
+                                     new_feas_inc   ,
+                                     new_infeas_inc ,
+                                     success        ,
+                                     evaluated_pts  );
+    
+    
+    // If ortho mads n+1, complete poll with additional evaluations obtained dynamically
+    if (!stop && success !=NOMAD::FULL_SUCCESS && _p.has_dynamic_direction())
+    {
+        _ev_control.reset();
+        
+        // loop again on the two poll centers to obtain dynamic direction
+        // ---------------------------------------------------------------------------
+        i_pc = NOMAD::PRIMARY;
+        poll_center = poll_centers[NOMAD::PRIMARY];
+        offset=0;
+        while ( true )
+        {
+            if ( poll_center && NOMAD::Mads::dirs_have_orthomads_np1_dyn( reducedPollDirs[i_pc] ) )
+            {
+                std::list<NOMAD::Direction> dyn_dirs;
+                
 #ifdef USE_MPI
-				// asynchronous mode: wait for the evaluations in progress:
-				if ( _p.get_asynchronous() )
-				{
-					_ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
-													  _true_barrier       ,
-													  _sgte_barrier       ,
-													  _pareto_front       ,
-													  stop                ,
-													  stop_reason         ,
-													  success             ,
-													  *evaluated_pts         );
-				}
-#endif	
-				
-				bool hasNewDynDir=get_dynamic_directions (reducedPollDirs[i_pc],
-														  dyn_dirs,
-														  *poll_center);
-				
-				
-				// Set new poll points obtained dynamically
-				if (hasNewDynDir)
-				{	
-					set_poll_trial_points(dyn_dirs,
-										  offset,
-										  *poll_center,
-										  stop,
-										  stop_reason,
-										  false);
-					
-					if (stop)
-					{
-						delete evaluated_pts;
-						delete[] dirs;
-						delete[] reducedPollDirs;
-						return;
-					}
-				}
-				offset = dyn_dirs.size();
-			}
-			// loop increment:
-			if ( i_pc == NOMAD::PRIMARY ) 
-			{
-				i_pc = NOMAD::SECONDARY;
-				poll_center = poll_centers[NOMAD::SECONDARY];
-			}
-			else
-				break;
-		}
-		
- 		if ( display_degree == NOMAD::FULL_DISPLAY )
-		{
-			const std::set<NOMAD::Priority_Eval_Point> & poll_pts = _ev_control.get_eval_lop();
-			out << std::endl << NOMAD::open_block ( "re-ordered and complete (dynamic directions added) list of "
-												   + NOMAD::itos ( poll_pts.size() )
-												   + " poll trial points" );
-			
-			std::set<NOMAD::Priority_Eval_Point>::const_iterator end2 = poll_pts.end() , it2;
-			for ( it2 = poll_pts.begin() ; it2 != end2 ; ++it2 ) {
-				x =  it2->get_point();
-				x->display_tag ( out );
-				out << " : ( ";
-				x->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-				out << " )";
-				if ( x->get_direction() )
-					out << " (dir " << x->get_direction()->get_index() << ")";
-				out << std::endl;
-			}
-			out.close_block();
-		}
-		
-		
-		
-		
-		// Eval additional point(s) :
-		// ---------------------------		
-		_ev_control.eval_list_of_points ( NOMAD::POLL    ,
-										 _true_barrier  ,
-										 _sgte_barrier  ,
-										 _pareto_front  ,
-										 stop           ,
-										 stop_reason    ,
-										 new_feas_inc   ,
-										 new_infeas_inc ,
-										 success        );
-		
-		if (success==NOMAD::FULL_SUCCESS)
-			_stats.add_nb_success_dyn_dir();
-		
-	}
-	
-	delete evaluated_pts;
-	delete[] dirs;
-	delete[] reducedPollDirs;	
-	
-	
-	// extended poll for categorical variables:
-	// ----------------------------------------
-	if ( !stop                          &&
-		_extended_poll                  &&
-		success != NOMAD::FULL_SUCCESS  &&
-		_p.get_extended_poll_enabled()    ) {
-		
-		// display:
-		if ( display_degree == NOMAD::FULL_DISPLAY )
-			out << std::endl << NOMAD::open_block ( "MADS extended poll" ) << std::endl;
-   		
+                // asynchronous mode: wait for the evaluations in progress:
+                if ( _p.get_asynchronous() )
+                {
+                    _ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
+                                                      _true_barrier       ,
+                                                      _sgte_barrier       ,
+                                                      _pareto_front       ,
+                                                      stop                ,
+                                                      stop_reason         ,
+                                                      success             ,
+                                                      *evaluated_pts         );
+                }
+#endif
+                
+                bool hasNewDynDir=get_dynamic_directions (reducedPollDirs[i_pc],
+                                                          dyn_dirs,
+                                                          *poll_center);
+                
+                
+                // Set new poll points obtained dynamically
+                if (hasNewDynDir)
+                {
+                    set_poll_trial_points(dyn_dirs,
+                                          offset,
+                                          *poll_center,
+                                          stop,
+                                          stop_reason,
+                                          false);
+                    
+                    if (stop)
+                    {
+                        delete evaluated_pts;
+                        delete[] dirs;
+                        delete[] reducedPollDirs;
+                        return;
+                    }
+                }
+                offset = dyn_dirs.size();
+            }
+            // loop increment:
+            if ( i_pc == NOMAD::PRIMARY )
+            {
+                i_pc = NOMAD::SECONDARY;
+                poll_center = poll_centers[NOMAD::SECONDARY];
+            }
+            else
+                break;
+        }
+        
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
+            const std::set<NOMAD::Priority_Eval_Point> & poll_pts = _ev_control.get_eval_lop();
+            out << std::endl << NOMAD::open_block ( "re-ordered and complete (dynamic directions added) list of "
+                                                   + NOMAD::itos ( poll_pts.size() )
+                                                   + " poll trial points" );
+            
+            std::set<NOMAD::Priority_Eval_Point>::const_iterator end2 = poll_pts.end() , it2;
+            for ( it2 = poll_pts.begin() ; it2 != end2 ; ++it2 )
+            {
+                x =  it2->get_point();
+                x->display_tag ( out );
+                out << " : ( ";
+                x->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
+                out << " )";
+                if ( x->get_direction() )
+                    out << " (dir " << x->get_direction()->get_index() << ")";
+                out << std::endl;
+            }
+            out.close_block();
+        }
+        
+        
+        
+        
+        // Eval additional point(s) :
+        // ---------------------------
+        _ev_control.eval_list_of_points ( NOMAD::POLL    ,
+                                         _true_barrier  ,
+                                         _sgte_barrier  ,
+                                         _pareto_front  ,
+                                         stop           ,
+                                         stop_reason    ,
+                                         new_feas_inc   ,
+                                         new_infeas_inc ,
+                                         success        );
+        
+        if (success==NOMAD::FULL_SUCCESS)
+            _stats.add_nb_success_dyn_dir();
+        
+    }
+    
+    delete evaluated_pts;
+    delete[] dirs;
+    delete[] reducedPollDirs;
+    
+    
+    // extended poll for categorical variables:
+    // ----------------------------------------
+    if ( !stop                          &&
+        _extended_poll                  &&
+        success != NOMAD::FULL_SUCCESS  &&
+        _p.get_extended_poll_enabled()    )
+    {
+        
+        // display:
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+            out << std::endl << NOMAD::open_block ( "MADS extended poll" ) << std::endl;
+        
 #ifdef USE_MPI
-		// asynchronous mode: wait for the evaluations in progress:
-		if ( _p.get_asynchronous() ) {
-			std::list<const NOMAD::Eval_Point *> evaluated_pts;
-			_ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
-											  _true_barrier       ,
-											  _sgte_barrier       ,
-											  _pareto_front       ,
-											  stop                ,
-											  stop_reason         ,
-											  success             ,
-											  evaluated_pts         );
-		}
+        // asynchronous mode: wait for the evaluations in progress:
+        if ( _p.get_asynchronous() )
+        {
+            std::list<const NOMAD::Eval_Point *> evaluated_pts;
+            _ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
+                                              _true_barrier       ,
+                                              _sgte_barrier       ,
+                                              _pareto_front       ,
+                                              stop                ,
+                                              stop_reason         ,
+                                              success             ,
+                                              evaluated_pts         );
+        }
 #endif
-		
-		// reset the extended poll object:
-		_extended_poll->poll_reset();
-		
-		// call the user defined method changing the categorical variables
-		// (this creates the list of extended poll points):
-		_extended_poll->construct_extended_points ( *barrier.get_poll_center() );
-		
-		// add the signatures in use to the list of poll signatures:
-		{
-			const std::set<NOMAD::Signature_Element> &
-			tmp = _extended_poll->get_poll_signatures();
-			std::set<NOMAD::Signature_Element>::const_iterator it , end = tmp.end();
-			for ( it = tmp.begin() ; it != end ; ++it )
-				signatures.push_back ( it->get_signature() );
-		}
-		
-		// execute the extended poll:
-		int nb_ext_poll_pts;
-		_extended_poll->run ( *this           ,
-							 nb_ext_poll_pts ,
-							 stop            ,
-							 stop_reason     ,
-							 success         ,
-							 new_feas_inc    ,
-							 new_infeas_inc    );
-		
-		// stats updates:
-		_stats.add_ext_poll_pts ( nb_ext_poll_pts );
-		if ( success == NOMAD::FULL_SUCCESS ) 
-			_stats.add_ext_poll_succ();
-		_stats.add_nb_ext_polls();
-		
-		// display:
-		if ( display_degree == NOMAD::FULL_DISPLAY )
-			out << std::endl << NOMAD::close_block ( "end of extended poll" ) << std::endl;
-	}
-	
-	// stats updates:
-	if ( success == NOMAD::FULL_SUCCESS )
-		_stats.add_poll_success();
-	
-	_stats.add_nb_poll_searches();
-	
-	// success directions (feasible and infeasible):
-	update_success_directions ( new_feas_inc   , true  );
-	update_success_directions ( new_infeas_inc , false );
-	
+        
+        // reset the extended poll object:
+        _extended_poll->poll_reset();
+        
+        // call the user defined method changing the categorical variables
+        // (this creates the list of extended poll points):
+        _extended_poll->construct_extended_points ( *barrier.get_poll_center() );
+        
+        // add the signatures in use to the list of poll signatures:
+        {
+            const std::set<NOMAD::Signature_Element> &
+            tmp = _extended_poll->get_poll_signatures();
+            std::set<NOMAD::Signature_Element>::const_iterator it , end = tmp.end();
+            for ( it = tmp.begin() ; it != end ; ++it )
+                signatures.push_back ( it->get_signature() );
+        }
+        
+        // execute the extended poll:
+        int nb_ext_poll_pts;
+        _extended_poll->run ( *this           ,
+                             nb_ext_poll_pts ,
+                             stop            ,
+                             stop_reason     ,
+                             success         ,
+                             new_feas_inc    ,
+                             new_infeas_inc    );
+        
+        // stats updates:
+        _stats.add_ext_poll_pts ( nb_ext_poll_pts );
+        if ( success == NOMAD::FULL_SUCCESS )
+            _stats.add_ext_poll_succ();
+        _stats.add_nb_ext_polls();
+        
+        // display:
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+            out << std::endl << NOMAD::close_block ( "end of extended poll" ) << std::endl;
+    }
+    
+    // stats updates:
+    if ( success == NOMAD::FULL_SUCCESS )
+        _stats.add_poll_success();
+    
+    _stats.add_nb_poll_searches();
+    
+    // success directions (feasible and infeasible):
+    update_success_directions ( new_feas_inc   , true  );
+    update_success_directions ( new_infeas_inc , false );
+    
 #ifdef DEBUG
-	if ( !new_feas_inc && !new_infeas_inc )
-		out << "No new feasible or infeasible incumbent"  << std::endl << std::endl;
+    if ( !new_feas_inc && !new_infeas_inc )
+        out << "No new feasible or infeasible incumbent"  << std::endl << std::endl;
 #endif
-	
-	// check the PEB constraints: if we have a new best infeasible
-	// incumbent from another infeasible incumbent
-	// ( active_barrier.check_PEB_constraints() ):
-	if (	_p.get_barrier_type() == NOMAD::PEB_P && new_infeas_inc &&
-		new_infeas_inc->get_poll_center_type() == NOMAD::INFEASIBLE )
-		( ( _p.get_opt_only_sgte() ) ?  _sgte_barrier : _true_barrier ).check_PEB_constraints( *new_infeas_inc , display_degree==NOMAD::FULL_DISPLAY );
-	
-	// final display:
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-		out << NOMAD::close_block ( "end of poll" );
+    
+    // check the PEB constraints: if we have a new best infeasible
+    // incumbent from another infeasible incumbent
+    // ( active_barrier.check_PEB_constraints() ):
+    if (    _p.get_barrier_type() == NOMAD::PEB_P && new_infeas_inc &&
+        new_infeas_inc->get_poll_center_type() == NOMAD::INFEASIBLE )
+        ( ( _p.get_opt_only_sgte() ) ?  _sgte_barrier : _true_barrier ).check_PEB_constraints( *new_infeas_inc , display_degree==NOMAD::FULL_DISPLAY );
+    
+    // final display:
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out << NOMAD::close_block ( "end of poll" );
 }
 
 /*---------------------------------------------------------*/
@@ -1856,109 +1838,111 @@ void NOMAD::Mads::poll ( bool         & stop                  ,
 /*---------------------------------------------------------*/
 // A direction group corresponds to a variable group having directions.
 // A variable group of categorical variables does not possess directions.
-bool NOMAD::Mads::set_reduced_poll_to_n_directions(std::list<NOMAD::Direction>	& dirs,
-												   const NOMAD::Eval_Point		& poll_center)
+bool NOMAD::Mads::set_reduced_poll_to_n_directions(std::list<NOMAD::Direction>  & dirs,
+                                                   const NOMAD::Eval_Point      & poll_center)
 {
-	NOMAD::Signature * cur_signature = poll_center.get_signature();
-	size_t n = cur_signature->get_n()-cur_signature->get_nb_fixed_variables() ;
+    
+    // get the number of free variables using the signature (because of extended poll and changing signature)
+    NOMAD::Signature * cur_signature = poll_center.get_signature();
+    size_t n = cur_signature->get_n()-cur_signature->get_nb_fixed_variables() ;
     
     // No direction for categorical variables
-	size_t n_cat = cur_signature->get_n_categorical();
-	
-	// Verify that enough directions for reduction are provided 
-	if ( dirs.size()<n-n_cat )
-		return false;
-	
-	// Maximum number of direction groups
-	std::list<NOMAD::Direction>::iterator itDirs;
-	size_t maxDirGroupIndex=0;
-	size_t dgi;
-	for (itDirs=dirs.begin();itDirs!=dirs.end() ; ++itDirs)
-	{
-		dgi=(*itDirs).get_dir_group_index();
-		if (dgi>maxDirGroupIndex) maxDirGroupIndex=dgi;
-	}
-
+    size_t n_cat = cur_signature->get_n_categorical();
+    
+    // Verify that enough directions for reduction are provided
+    if ( dirs.size()<n-n_cat )
+        return false;
+    
+    // Maximum number of direction groups
+    std::list<NOMAD::Direction>::iterator itDirs;
+    size_t maxDirGroupIndex=0;
+    size_t dgi;
+    for (itDirs=dirs.begin();itDirs!=dirs.end() ; ++itDirs)
+    {
+        dgi=(*itDirs).get_dir_group_index();
+        if (dgi>maxDirGroupIndex) maxDirGroupIndex=dgi;
+    }
+    
     std::list<NOMAD::Direction> TmpDirs(dirs);
     dirs.clear();
     
-	
-	// Loop on each direction group 
-	for (dgi=0;dgi<=maxDirGroupIndex;++dgi)
-	{
-		
-		// Get all poll directions with a given direction group index + Get a vector of unique indices for those directions
-		std::vector<NOMAD::Direction> pollDirs;
-		std::vector<int> pollDirIndices;
-		bool containsOrthoMads=false;
-        for (itDirs=TmpDirs.begin();itDirs!=TmpDirs.end() ; ++itDirs)
-		{
-			if ( static_cast<size_t>((*itDirs).get_dir_group_index()) == dgi )
-			{
-				pollDirs.push_back(*itDirs);
-				pollDirIndices.push_back((*itDirs).get_index());
-				if (!containsOrthoMads)
-					containsOrthoMads=NOMAD::dir_is_orthomads((*itDirs).get_type());
-			}
-		}		
-		
-		
-		std::list<NOMAD::Direction> sortedDirs;
+    
+    // Loop on each direction group
+    for (dgi=0;dgi<=maxDirGroupIndex;++dgi)
+    {
+        
+        // Get all poll directions with a given direction group index + Get a vector of unique indices for those directions
+        std::vector<NOMAD::Direction> pollDirs;
+        std::vector<int> pollDirIndices;
+        bool containsOrthoMads = false;
+        for ( itDirs=TmpDirs.begin() ; itDirs != TmpDirs.end() ; ++itDirs)
+        {
+            if ( static_cast<size_t>((*itDirs).get_dir_group_index()) == dgi )
+            {
+                pollDirs.push_back(*itDirs);
+                pollDirIndices.push_back((*itDirs).get_index());
+                if (!containsOrthoMads)
+                    containsOrthoMads=NOMAD::dir_is_orthomads((*itDirs).get_type());
+            }
+        }
+        
+        
+        std::list<NOMAD::Direction> sortedDirs;
         std::list<NOMAD::Direction>::iterator itSortedDirs;
-		// Sort the directions only if mesh is not finest
-		if ( !_mesh->is_finest() )
-		{
-			
-			const std::set<NOMAD::Priority_Eval_Point> & LOP=_ev_control_for_sorting.get_eval_lop();
-			
-			if ( LOP.size()==0 )
-				throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-										"Mads::set_reduced_poll_to_n_directions(): the _ev_control_for_sorting does not have a list of evaluation points." );	
-			
-			
-			// Get all directions from ev_control ordered lop (list of evaluation points) with a given direction group index and given poll center
-			// Get a set of unique indices of those directions
-			std::list<int> sortedDirIndices;
+        // Sort the directions only if mesh is not finest
+        if ( !_mesh->is_finest() )
+        {
+            
+            const std::set<NOMAD::Priority_Eval_Point> & LOP=_ev_control_for_sorting.get_eval_lop();
+            
+            if ( LOP.size()==0 )
+                throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                        "Mads::set_reduced_poll_to_n_directions(): the _ev_control_for_sorting does not have a list of evaluation points." );
+            
+            
+            // Get all directions from ev_control ordered lop (list of evaluation points) with a given direction group index and given poll center
+            // Get a set of unique indices of those directions
+            std::list<int> sortedDirIndices;
             std::set<int> indices;
             std::list<int>::iterator itSortedDirIndices;
-			std::set<NOMAD::Priority_Eval_Point>::const_iterator citLOP;
-			for (citLOP=LOP.begin();citLOP!=LOP.end();++citLOP)
-			{
-				const NOMAD::Eval_Point *eval_point=(*citLOP).get_point();
-				if ( static_cast<size_t>(eval_point->get_direction()->get_dir_group_index()) == dgi &&
-					*(eval_point->get_poll_center())==poll_center)
+            std::set<NOMAD::Priority_Eval_Point>::const_iterator citLOP;
+            for (citLOP=LOP.begin();citLOP!=LOP.end();++citLOP)
+            {
+                const NOMAD::Eval_Point *eval_point=(*citLOP).get_point();
+                if ( static_cast<size_t>(eval_point->get_direction()->get_dir_group_index()) == dgi &&
+                    *(eval_point->get_poll_center())==poll_center)
                 {
                     int index=eval_point->get_direction()->get_index();
                     if ( indices.size() == 0 || indices.find(index) == indices.end()  )  // if the index is already in indices no need to add it in sortedDirIndices to avoid duplicate.
-                         sortedDirIndices.push_back(index);
+                        sortedDirIndices.push_back(index);
                     indices.insert(index); // If the index is already in the set IT IS NOT INSERTED  --> set of unique sort integers
-
+                    
                 }
-				
-			}		
-			
-			if ( sortedDirIndices.size()==0 )
-				throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-										"Mads::set_reduced_poll_to_n_directions(): no directions with proper group index available from _ev_control_for_sorting!" );	
-			
-			// A direction from _ev_control may have been suppressed if it does not satisfy bound constraint and is not snapped to bounds
-			// --> complete sorted direction with remaining directions in poll dirs
-			//
-			// 2 - Add poll directions (from tmpDirs) in the same order as sorted direction indices (from ev_control) 
-			std::vector<int>::iterator itPollDirIndices;
-			std::vector<NOMAD::Direction>::iterator itPollDirs=pollDirs.begin();
-			size_t pos;
-			for ( itSortedDirIndices = sortedDirIndices.begin() ; itSortedDirIndices != sortedDirIndices.end() ; ++itSortedDirIndices)
-			{
-				itPollDirIndices=find(pollDirIndices.begin(),pollDirIndices.end(),*itSortedDirIndices);
-				if ( itPollDirIndices!=pollDirIndices.end() )
-				{
-					pos=distance(pollDirIndices.begin(),itPollDirIndices);
+                
+            }
+            
+            if ( sortedDirIndices.size()==0 )
+                throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                        "Mads::set_reduced_poll_to_n_directions(): no directions with proper group index available from _ev_control_for_sorting!" );
+            
+            // A direction from _ev_control may have been suppressed if it does not satisfy bound constraint and is not snapped to bounds
+            // --> complete sorted direction with remaining directions in poll dirs
+            //
+            // 2 - Add poll directions (from tmpDirs) in the same order as sorted direction indices (from ev_control)
+            std::vector<int>::iterator itPollDirIndices;
+            std::vector<NOMAD::Direction>::iterator itPollDirs=pollDirs.begin();
+            size_t pos;
+            for ( itSortedDirIndices = sortedDirIndices.begin() ; itSortedDirIndices != sortedDirIndices.end() ; ++itSortedDirIndices)
+            {
+                itPollDirIndices=find(pollDirIndices.begin(),pollDirIndices.end(),*itSortedDirIndices);
+                if ( itPollDirIndices!=pollDirIndices.end() )
+                {
+                    pos=distance(pollDirIndices.begin(),itPollDirIndices);
                     itPollDirs=pollDirs.begin();
                     std::advance(itPollDirs,pos);
-					sortedDirs.push_back(*itPollDirs);
-				}
-			}
+                    sortedDirs.push_back(*itPollDirs);
+                }
+            }
             // 3 - complete with remaining pollDirs directions
             if ( sortedDirs.size() != pollDirs.size() )
             {
@@ -1971,48 +1955,47 @@ bool NOMAD::Mads::set_reduced_poll_to_n_directions(std::list<NOMAD::Direction>	&
                         sortedDirs.push_back(*itPollDirs);
                 }
             }
-
-		}
+            
+        }
         else
             sortedDirs.assign(pollDirs.begin(),pollDirs.end());
-		
-		// Make a spanning set of directions (this is slightly different Ortho n+1 paper but still we have the garantee that Dk grows asymptotically dense because D^o_k has not been sorted if mesh_index_is_max) 
-		// Sequentially add sorted directions that increase the rank in two situations:
-		// - If mesh is not finest -> consider all directions for adding -> n directions
-		// - If mesh is finest but some ORTHO MADS directions are present -> only consider ortho mads dir for adding -> n directions
-		// - Else, all directions are considered -> more than n directions
-		// See paper Ortho n+1 paper for details
-		
-
-		size_t currentRank=get_rank_from_dirs(dirs);
-		for (itSortedDirs=sortedDirs.begin();itSortedDirs!=sortedDirs.end();++itSortedDirs)
-		{
-			dirs.push_back(*itSortedDirs);
-			if ( !_mesh->is_finest() || ( _mesh->is_finest() && containsOrthoMads))
-			{
-				size_t rank=get_rank_from_dirs(dirs);
-				if (rank>currentRank && rank<=n-n_cat && NOMAD::dir_is_orthomads((*itSortedDirs).get_type()))
-					currentRank++;
-				else
-					dirs.pop_back();
-			}
-		}
-		
-		
-	}
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_poll_dd();	
-	if ( dirs.size()!=n-n_cat )
-	{
-		if (display_degree == NOMAD::FULL_DISPLAY ) 
-		{
-			out << std::endl << NOMAD::open_block ( "The number of reduced directions is lower than n-n_categorical: ");
-			out << dirs.size() << ". No reduction is performed." << std::endl;
-			out << NOMAD::close_block();
-		}
-		return false;
-	}
-	return true;
+        
+        // Make a spanning set of directions (this is slightly different Ortho n+1 paper but still we have the garantee that Dk grows asymptotically dense because D^o_k has not been sorted if mesh_index_is_max)
+        // Sequentially add sorted directions that increase the rank in two situations:
+        // - If mesh is not finest -> consider all directions for adding -> n directions
+        // - If mesh is finest but some ORTHO MADS directions are present -> only consider ortho mads dir for adding -> n directions
+        // - Else, all directions are considered -> more than n directions
+        // See paper Ortho n+1 paper for details
+        
+        size_t currentRank=get_rank_from_dirs(dirs);
+        for (itSortedDirs=sortedDirs.begin();itSortedDirs!=sortedDirs.end();++itSortedDirs)
+        {
+            dirs.push_back(*itSortedDirs);
+            if ( !_mesh->is_finest() || ( _mesh->is_finest() && containsOrthoMads))
+            {
+                size_t rank=get_rank_from_dirs(dirs);
+                if (rank>currentRank && rank<=n-n_cat && NOMAD::dir_is_orthomads((*itSortedDirs).get_type()))
+                    currentRank++;
+                else
+                    dirs.pop_back();
+            }
+        }
+        
+        
+    }
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_poll_dd();
+    if ( dirs.size()!=n-n_cat )
+    {
+        if (display_degree == NOMAD::FULL_DISPLAY )
+        {
+            out << std::endl << NOMAD::open_block ( "The number of reduced directions is lower than n-n_categorical: ");
+            out << dirs.size() << ". No reduction is performed." << std::endl;
+            out << NOMAD::close_block();
+        }
+        return false;
+    }
+    return true;
 }
 
 /*----------------------------------------------------------------*/
@@ -2020,34 +2003,34 @@ bool NOMAD::Mads::set_reduced_poll_to_n_directions(std::list<NOMAD::Direction>	&
 /*----------------------------------------------------------------*/
 int NOMAD::Mads::get_rank_from_dirs(const std::list<NOMAD::Direction> & dirs)
 {
-	if (dirs.size()==0) 
-		return 0;
-	
-	std::list<NOMAD::Direction>::const_iterator it=dirs.begin();
-	size_t m=(*it).size();
-	size_t n=dirs.size();
-	
-	double ** M = new double *[m];
-	for (size_t i=0 ; i<m ; ++i )
-    {
-		it=dirs.begin();
-		M[i] = new double[n];
-		for (size_t j = 0 ; j < n ; ++j )
-        {
-			M[i][j] = (*it)[static_cast<int>(i)].value() ;
-			++it;
-		}
-	}
-	
-	int rank=NOMAD::get_rank(M,m,n);
-	
-	for (size_t i = 0 ; i < m ; ++i )
-    {
-		delete[] M[i];
-	}
-	delete[] M;
-	return rank;
-	
+    if (dirs.size()==0)
+        return 0;
+    
+    std::list<NOMAD::Direction>::const_iterator it=dirs.begin();
+    size_t m=(*it).size();
+    size_t n=dirs.size();
+    
+    double ** M = new double *[m];
+    for (size_t i=0 ; i<m ; ++i )
+    {
+        it=dirs.begin();
+        M[i] = new double[n];
+        for (size_t j = 0 ; j < n ; ++j )
+        {
+            M[i][j] = (*it)[static_cast<int>(i)].value() ;
+            ++it;
+        }
+    }
+    
+    int rank=NOMAD::get_rank(M,m,n);
+    
+    for (size_t i = 0 ; i < m ; ++i )
+    {
+        delete[] M[i];
+    }
+    delete[] M;
+    return rank;
+    
 }
 
 /*---------------------------------------------------------------------------------------*/
@@ -2055,346 +2038,350 @@ int NOMAD::Mads::get_rank_from_dirs(const std::list<NOMAD::Direction> & dirs)
 /*  (private)                                                                            */
 /*---------------------------------------------------------------------------------------*/
 bool NOMAD::Mads::optimize_quad_model ( const NOMAD::Eval_Point           & poll_center ,
-									   const std::list<NOMAD::Direction> & dirs    ,
-									   NOMAD::Point                      & prospect_point    ) 
+                                       const std::list<NOMAD::Direction> & dirs    ,
+                                       NOMAD::Point                      & prospect_point    )
 {
-	const NOMAD::Display & out = _p.out();
-	
-	// surrogate or truth model evaluations:
-	NOMAD::eval_type ev_type =
+    const NOMAD::Display & out = _p.out();
+    
+    // surrogate or truth model evaluations:
+    NOMAD::eval_type ev_type =
     ( _p.get_opt_only_sgte() ) ? NOMAD::SGTE : NOMAD::TRUTH;
-	
-	// active cache:
-	const NOMAD::Cache & cache = get_cache();
-	
-	NOMAD::Point delta,Delta;
-	NOMAD::Signature * signature=poll_center.get_signature();
-	_mesh->get_delta ( delta );
-	_mesh->get_Delta ( Delta );
-	
-	// compute the interpolation radius: points in Y must be at
-	// a max distance of ms_radius_factor times Delta^k:
-	NOMAD::Point interpolation_radius = Delta;
-	interpolation_radius *= _p.get_model_quad_radius_factor();
-	
-	
-	// Epsilon for quad model hypercube scaling
-	NOMAD::Double epsilon = _p.get_model_np1_quad_epsilon();
-	
+    
+    // active cache:
+    const NOMAD::Cache & cache = get_cache();
+    
+    NOMAD::Point delta,Delta;
+    NOMAD::Signature * signature=poll_center.get_signature();
+    _mesh->get_delta ( delta );
+    _mesh->get_Delta ( Delta );
+    
+    // compute the interpolation radius: points in Y must be at
+    // a max distance of ms_radius_factor times Delta^k:
+    NOMAD::Point interpolation_radius = Delta;
+    interpolation_radius *= _p.get_model_quad_radius_factor();
+    
+    
+    // Epsilon for quad model hypercube scaling
+    NOMAD::Double epsilon = _p.get_model_np1_quad_epsilon();
+    
 #ifdef DEBUG
-	out << std::endl << NOMAD::open_block ( "Quadratic model for (n+1)th prospect point") << std::endl
-	<< "model construction for " << ev_type << std::endl
-	<< "nbr of cache pts: "      << cache.size()                 << std::endl
-	<< "mesh indices    : ( "    << _mesh->get_mesh_indices ()   << " )" << std::endl
-	<< "poll center     : ( "    << poll_center          << " )" << std::endl
-	<< "poll size       : ( "    << Delta                << " )" << std::endl
-	<< "interpol. radius: ( "    << interpolation_radius << " )" << std::endl
-	<< "epsilon hypercube: ( "   << epsilon    << " )" << std::endl;;
+    out << std::endl << NOMAD::open_block ( "Quadratic model for (n+1)th prospect point") << std::endl
+    << "model construction for " << ev_type << std::endl
+    << "nbr of cache pts: "      << cache.size()                 << std::endl
+    << "mesh indices    : ( "    << _mesh->get_mesh_indices ()   << " )" << std::endl
+    << "poll center     : ( "    << poll_center          << " )" << std::endl
+    << "poll size       : ( "    << Delta                << " )" << std::endl
+    << "interpol. radius: ( "    << interpolation_radius << " )" << std::endl
+    << "epsilon hypercube: ( "   << epsilon    << " )" << std::endl;;
 #endif
-	
-	
-	// creation of the model for all bb outputs:
-	std::vector<NOMAD::bb_output_type> bbot = _p.get_bb_output_type();
-	NOMAD::Quad_Model  model ( out , bbot , cache , *signature );
-	NOMAD::Model_Stats tmp_stats;
-	NOMAD::Clock       clock;
-	
-	// flag to detect model or optimization errors:
-	bool error = true;
-	
-	// construct interpolation set Y:
-	int min_Y_size = _p.get_model_quad_min_Y_size();
-	int max_Y_size = _p.get_model_quad_max_Y_size();
-	
-	model.construct_Y ( poll_center , interpolation_radius , max_Y_size );
-	
-	int nY = model.get_nY();
-	
+    
+    
+    // creation of the model for all bb outputs:
+    std::vector<NOMAD::bb_output_type> bbot = _p.get_bb_output_type();
+    NOMAD::Quad_Model  model ( out , bbot , cache , *signature );
+    NOMAD::Model_Stats tmp_stats;
+    NOMAD::Clock       clock;
+    
+    // flag to detect model or optimization errors:
+    bool error = true;
+    
+    // construct interpolation set Y:
+    int min_Y_size = _p.get_model_quad_min_Y_size();
+    int max_Y_size = _p.get_model_quad_max_Y_size();
+    
+    model.construct_Y ( poll_center , interpolation_radius , max_Y_size );
+    
+    int nY = model.get_nY();
+    
 #ifdef DEBUG
-	out << std::endl << "number of points in Y: " << nY;
-	if ( nY < 2 || ( min_Y_size < 0 && nY <= model.get_nfree() ) )
-		out << " (not enough)";
-	out << std::endl;
+    out << std::endl << "number of points in Y: " << nY;
+    if ( nY < 2 || ( min_Y_size < 0 && nY <= model.get_nfree() ) )
+        out << " (not enough)";
+    out << std::endl;
 #endif
-	
-	if ( nY < 2 || ( min_Y_size < 0 && nY <= model.get_nfree() ) )
-		tmp_stats.add_not_enough_pts();
-	else 
-	{
+    
+    if ( nY < 2 || ( min_Y_size < 0 && nY <= model.get_nfree() ) )
+        tmp_stats.add_not_enough_pts();
+    else
+    {
 #ifdef DEBUG
-		out << std::endl;
-		model.display_Y ( out , "unscaled interpolation set Y" );
+        out << std::endl;
+        model.display_Y ( out , "unscaled interpolation set Y" );
 #endif
-		
-		// define scaling with rotation: obtain an hypercube [0,1]^n formed by truncated directions  
-		model.define_scaling_by_directions ( dirs, delta ,epsilon);
-		
+        
+        // define scaling with rotation: obtain an hypercube [0,1]^n formed by truncated directions
+        model.define_scaling_by_directions ( dirs, delta ,epsilon);
+        
 #ifdef DEBUG
-		out << std::endl;
-		model.display_Y ( out , "scaled interpolation set Ys" );
+        out << std::endl;
+        model.display_Y ( out , "scaled interpolation set Ys" );
 #endif
-		
-		// error check:
-		if ( model.get_error_flag() )
-			tmp_stats.add_construction_error();
-		
-		// no model error:
-		else {
-			
-			// construct model:
-			model.construct ( _p.get_model_quad_use_WP() , NOMAD::SVD_EPS , NOMAD::SVD_MAX_MPN , max_Y_size );
-			tmp_stats.add_construction_time ( clock.get_CPU_time() );
-			tmp_stats.update_nY ( model.get_nY() );
-			
-			// display model characteristics:
+        
+        // error check:
+        if ( model.get_error_flag() )
+            tmp_stats.add_construction_error();
+        
+        // no model error:
+        else
+        {
+            
+            
+            // construct model:
+            model.construct ( _p.get_model_quad_use_WP() , NOMAD::SVD_EPS , NOMAD::SVD_MAX_MPN , max_Y_size );
+            tmp_stats.add_construction_time ( clock.get_CPU_time() );
+            tmp_stats.update_nY ( model.get_nY() );
+            
+            // display model characteristics:
 #ifdef DEBUG
-			out << std::endl;
-			model.display_model_coeffs ( out );
-			out << std::endl;
-			model.display_Y_error ( out );
+            out << std::endl;
+            model.display_model_coeffs ( out );
+            out << std::endl;
+            model.display_Y_error ( out );
 #endif
-			
-			
-			// count model:
-			if ( ev_type == NOMAD::TRUTH )
-				tmp_stats.add_nb_truth();
-			else
-				tmp_stats.add_nb_sgte();
-			
-			switch ( model.get_interpolation_type() ) 
-			{
-				case NOMAD::MFN:
-					tmp_stats.add_nb_MFN();
-					break;
-				case NOMAD::WP_REGRESSION:
-					tmp_stats.add_nb_WP_regression();
-					break;
-				case NOMAD::REGRESSION:
-					tmp_stats.add_nb_regression();
-					break;
-				default:
-					break;
-			}
-			
-			// check model error flag:
-			const NOMAD::Double & cond = model.get_cond();
-			if ( model.get_error_flag()     ||
-				!cond.is_defined()         ||
-				cond > NOMAD::SVD_MAX_COND    )
-			{
-				if ( model.get_error_flag() )
-					tmp_stats.add_construction_error();
-				else
-					tmp_stats.add_bad_cond();
-			}
-			else 
-			{
-				int         n     = model.get_n();
-				std::string error_str;
-				int         i;
-				
-				// initial displays:
-				if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
-				{
-					std::ostringstream oss;
-					oss << "Quad model optimization for prospect point";
-					out << std::endl << NOMAD::open_block ( oss.str() );
-				}
-				
-				// parameters creation:
-				NOMAD::Parameters model_param ( out );
-				
-				// number of variables:
-				model_param.set_DIMENSION ( n );
-				
-				// blackbox outputs:
-				model_param.set_BB_OUTPUT_TYPE ( bbot );
-				
-				// barrier parameters:
-				model_param.set_H_MIN  ( _p.get_h_min () );
-				model_param.set_H_NORM ( _p.get_h_norm() );
-				
-				// starting points:
-				model_param.set_X0 ( NOMAD::Point ( n , 500.0 ) );
-				
-				// fixed variables:
-				for ( i = 0 ; i < n ; ++i )
-					if ( model.variable_is_fixed(i) || _p.variable_is_fixed(i) )
-						model_param.set_FIXED_VARIABLE(i);
-				
-				// no model search and no model ordering:
-				model_param.set_MODEL_SEARCH        ( false );
-				model_param.set_MODEL_EVAL_SORT     ( false );
-				model_param.set_DIRECTION_TYPE (NOMAD::ORTHO_2N);   // use 2N for model search rather than the default Ortho n+1
-				
-				// display:
-				model_param.set_DISPLAY_DEGREE ( NOMAD::NO_DISPLAY );
-				
-				// mesh: use isotropic mesh
-				model_param.set_ANISOTROPIC_MESH ( false );
-				model_param.set_MESH_UPDATE_BASIS ( 4.0 );
-				model_param.set_MESH_COARSENING_EXPONENT ( 1 );
-				model_param.set_MESH_REFINING_EXPONENT ( -1 );
-				model_param.set_INITIAL_MESH_INDEX ( 0 );
-				model_param.set_INITIAL_MESH_SIZE ( NOMAD::Point ( n , 100.0 ) );
-				
-				// maximum number of evaluations:
-				model_param.set_MAX_BB_EVAL ( 50000 );
-				
-				model_param.set_SNAP_TO_BOUNDS ( true );
-				
-				// disable user calls:
-				model_param.set_USER_CALLS_ENABLED ( false );
-				
-				// set flags:
-				bool flag_check_bimads , flag_reset_mesh , flag_reset_barriers , flag_p1_active;
-				NOMAD::Mads::get_flags ( flag_check_bimads   ,
-										flag_reset_mesh     ,
-										flag_reset_barriers ,
-										flag_p1_active        );
-				
-				NOMAD::Mads::set_flag_check_bimads  (false  );					
-				NOMAD::Mads::set_flag_reset_mesh     ( true  );
-				NOMAD::Mads::set_flag_reset_barriers ( true  );
-				NOMAD::Mads::set_flag_p1_active      ( false );
-				
-				// bounds to optimize away from n first direction
-				// Bound are consistent with model evaluator: x in [0;1000] for optimziation -> x in [-1;1] for model evaluation
-				NOMAD::Point lb ( n , 0.0 );
-				NOMAD::Point ub ( n ,  1000.0 );
-				model_param.set_LOWER_BOUND ( lb );
-				model_param.set_UPPER_BOUND ( ub );
-				
-				try
-				{
-					
-					// parameters validation:
-					model_param.check();
-					
-					// model evaluator creation:
-					NOMAD::Evaluator *ev;
-					if (model_param.get_nb_obj()==2)
-						ev =new NOMAD::Multi_Obj_Quad_Model_Evaluator( model_param , model );
-					else
-						ev=new NOMAD::Single_Obj_Quad_Model_Evaluator( model_param , model );
-					
-					// algorithm creation and execution:
-					NOMAD::Mads    mads ( model_param , ev );
+            
+            
+            // count model:
+            if ( ev_type == NOMAD::TRUTH )
+                tmp_stats.add_nb_truth();
+            else
+                tmp_stats.add_nb_sgte();
+            
+            switch ( model.get_interpolation_type() )
+            {
+                case NOMAD::MFN:
+                    tmp_stats.add_nb_MFN();
+                    break;
+                case NOMAD::WP_REGRESSION:
+                    tmp_stats.add_nb_WP_regression();
+                    break;
+                case NOMAD::REGRESSION:
+                    tmp_stats.add_nb_regression();
+                    break;
+                default:
+                    break;
+            }
+            
+            // check model error flag:
+            const NOMAD::Double & cond = model.get_cond();
+            if ( model.get_error_flag()     ||
+                !cond.is_defined()         ||
+                cond > NOMAD::SVD_MAX_COND    )
+            {
+                if ( model.get_error_flag() )
+                    tmp_stats.add_construction_error();
+                else
+                    tmp_stats.add_bad_cond();
+            }
+            else
+            {
+                int         n     = model.get_n();
+                std::string error_str;
+                int         i;
+                
+                // initial displays:
+                if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
+                {
+                    std::ostringstream oss;
+                    oss << "Quad model optimization for prospect point";
+                    out << std::endl << NOMAD::open_block ( oss.str() );
+                }
+                
+                // parameters creation:
+                NOMAD::Parameters model_param ( out );
+                
+                // number of variables:
+                model_param.set_DIMENSION ( n );
+                
+                // blackbox outputs:
+                model_param.set_BB_OUTPUT_TYPE ( bbot );
+                
+                // barrier parameters:
+                model_param.set_H_MIN  ( _p.get_h_min () );
+                model_param.set_H_NORM ( _p.get_h_norm() );
+                
+                // starting points:
+                model_param.set_X0 ( NOMAD::Point ( n , 500.0 ) );
+                
+                // fixed variables:
+                for ( i = 0 ; i < n ; ++i )
+                    if ( model.variable_is_fixed(i) || _p.variable_is_fixed(i) )
+                        model_param.set_FIXED_VARIABLE(i);
+                
+                // no model search and no model ordering:
+                model_param.set_MODEL_SEARCH        ( false );
+                model_param.set_MODEL_EVAL_SORT     ( false );
+                model_param.set_DIRECTION_TYPE (NOMAD::ORTHO_2N);   // use 2N for model search rather than the default Ortho n+1
+                
+                // display:
+                model_param.set_DISPLAY_DEGREE ( NOMAD::NO_DISPLAY );
+                
+                // mesh: use isotropic mesh
+                model_param.set_ANISOTROPIC_MESH ( false );
+                model_param.set_MESH_UPDATE_BASIS ( 4.0 );
+                model_param.set_MESH_COARSENING_EXPONENT ( 1 );
+                model_param.set_MESH_REFINING_EXPONENT ( -1 );
+                model_param.set_INITIAL_MESH_INDEX ( 0 );
+                model_param.set_INITIAL_MESH_SIZE ( NOMAD::Point ( n , 100.0 ) );
+                
+                // maximum number of evaluations:
+                model_param.set_MAX_BB_EVAL ( 50000 );
+                
+                model_param.set_SNAP_TO_BOUNDS ( true );
+                
+                // disable user calls:
+                model_param.set_USER_CALLS_ENABLED ( false );
+                
+                // set flags:
+                bool flag_check_bimads , flag_reset_mesh , flag_reset_barriers , flag_p1_active;
+                NOMAD::Mads::get_flags ( flag_check_bimads   ,
+                                        flag_reset_mesh     ,
+                                        flag_reset_barriers ,
+                                        flag_p1_active        );
+                
+                NOMAD::Mads::set_flag_check_bimads  (false  );
+                NOMAD::Mads::set_flag_reset_mesh     ( true  );
+                NOMAD::Mads::set_flag_reset_barriers ( true  );
+                NOMAD::Mads::set_flag_p1_active      ( false );
+                
+                // bounds to optimize away from n first direction
+                // Bound are consistent with model evaluator: x in [0;1000] for optimziation -> x in [-1;1] for model evaluation
+                NOMAD::Point lb ( n , 0.0 );
+                NOMAD::Point ub ( n ,  1000.0 );
+                model_param.set_LOWER_BOUND ( lb );
+                model_param.set_UPPER_BOUND ( ub );
+                
+                try
+                {
+                    
+                    // parameters validation:
+                    model_param.check();
                     
-					NOMAD::Phase_One_Evaluator * p1ev=NULL;
-					if ( model_param.get_nb_obj() >= 2 && ! flag_check_bimads )
-					{
-						p1ev   = new NOMAD::Phase_One_Evaluator ( model_param , *ev );
-						mads.get_evaluator_control().set_evaluator ( p1ev );
-					}
-					NOMAD::stop_type st = mads.run();
-					
-					
-					delete ev;
-					if (p1ev)
-						delete p1ev;
-					
-					// reset flags:
-					NOMAD::Mads::set_flag_check_bimads   ( flag_check_bimads   );
-					NOMAD::Mads::set_flag_reset_mesh     ( flag_reset_mesh     );
-					NOMAD::Mads::set_flag_reset_barriers ( flag_reset_barriers );
-					NOMAD::Mads::set_flag_p1_active      ( flag_p1_active      );
-					
-					// check the stopping criterion:
-					if ( st == NOMAD::CTRL_C || st == NOMAD::MAX_CACHE_MEMORY_REACHED ) {
-						std::ostringstream oss;
-						oss << "quad model optimization for prospect point: " << st;
-						error_str   = oss.str();
-						error       = true;
-					}
-					
-					// display solution:
-					if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
-					{
-						NOMAD::Display out_tmp = out;
-						out_tmp.set_degrees ( NOMAD::NORMAL_DISPLAY );
-						out_tmp.open_block("Optimization results");
-						mads.display ( out_tmp );
-					}
-					
-					// get the solution(s):
-					const NOMAD::Eval_Point * best_feas   = mads.get_best_feasible  ();
-					const NOMAD::Eval_Point * best_infeas = mads.get_best_infeasible();
-					
-					
-					if ( best_infeas ) 
-					{
-						prospect_point  = *best_infeas;
-						prospect_point *= 0.001;
-						model.unscale ( prospect_point );
-						
-						if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
-						{
-							out << "best infeasible point before unscaling: ( ";
-							prospect_point.NOMAD::Point::display ( out );
-							out << " )" << std::endl;
-						}
-						
-						
-					}
-					else if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
-						out << "no infeasible solution" << std::endl;
-					
-					
-					if ( best_feas ) 
-					{
-						prospect_point  = *best_feas;
-						prospect_point *= 0.001;
-						model.unscale ( prospect_point );
-						if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
-						{
-							out << "best feasible point after unscaling  : ( ";
-							prospect_point.NOMAD::Point::display ( out );
-							out << " )" << std::endl;
-						}
-						
-					}						
-					else if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
-						out << "no feasible solution" << std::endl;
-					
-					
-					if ( !prospect_point.is_defined() )
-					{
-						error     = true;
-						error_str = "optimization error: no solution";
-					}
-					else 
-						error=false;
-				}
-				catch ( std::exception & e )
-				{
-					error     = true;
-					error_str = std::string ( "optimization error: " ) + e.what();
-					throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , error_str );
-				}
-			}
-		}
-	}
-	
-	// update the stats:
-	_stats.update_model_stats ( tmp_stats );
-	
-	if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
-	{
-		out << std::endl << "Prospect point. from quad. model: ";
-		if ( !error)
-			out << "( " << prospect_point << " )" << std::endl;
-		else
-			out << "failure" << std::endl;
-		
-		out << NOMAD::close_block() << std::endl;
-	}
-	
+                    // model evaluator creation:
+                    NOMAD::Evaluator *ev;
+                    if (model_param.get_nb_obj()==2)
+                        ev =new NOMAD::Multi_Obj_Quad_Model_Evaluator( model_param , model );
+                    else
+                        ev=new NOMAD::Single_Obj_Quad_Model_Evaluator( model_param , model );
+                    
+                    // algorithm creation and execution:
+                    NOMAD::Mads    mads ( model_param , ev );
+                    
+                    NOMAD::Phase_One_Evaluator * p1ev=NULL;
+                    if ( model_param.get_nb_obj() >= 2 && ! flag_check_bimads )
+                    {
+                        p1ev   = new NOMAD::Phase_One_Evaluator ( model_param , *ev );
+                        mads.get_evaluator_control().set_evaluator ( p1ev );
+                    }
+                    NOMAD::stop_type st = mads.run();
+                    
+                    
+                    delete ev;
+                    if (p1ev)
+                        delete p1ev;
+                    
+                    // reset flags:
+                    NOMAD::Mads::set_flag_check_bimads   ( flag_check_bimads   );
+                    NOMAD::Mads::set_flag_reset_mesh     ( flag_reset_mesh     );
+                    NOMAD::Mads::set_flag_reset_barriers ( flag_reset_barriers );
+                    NOMAD::Mads::set_flag_p1_active      ( flag_p1_active      );
+                    
+                    
+                    // check the stopping criterion:
+                    if ( st == NOMAD::CTRL_C || st == NOMAD::MAX_CACHE_MEMORY_REACHED )
+                    {
+                        std::ostringstream oss;
+                        oss << "quad model optimization for prospect point: " << st;
+                        error_str   = oss.str();
+                        error       = true;
+                    }
+                    
+                    // display solution:
+                    if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
+                    {
+                        NOMAD::Display out_tmp = out;
+                        out_tmp.set_degrees ( NOMAD::NORMAL_DISPLAY );
+                        out_tmp.open_block("Optimization results");
+                        mads.display ( out_tmp );
+                    }
+                    
+                    // get the solution(s):
+                    const NOMAD::Eval_Point * best_feas   = mads.get_best_feasible  ();
+                    const NOMAD::Eval_Point * best_infeas = mads.get_best_infeasible();
+                    
+                    
+                    if ( best_infeas )
+                    {
+                        prospect_point  = *best_infeas;
+                        prospect_point *= 0.001;
+                        model.unscale ( prospect_point );
+                        
+                        if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
+                        {
+                            out << "best infeasible point before unscaling: ( ";
+                            prospect_point.NOMAD::Point::display ( out );
+                            out << " )" << std::endl;
+                        }
+                        
+                        
+                    }
+                    else if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
+                        out << "no infeasible solution" << std::endl;
+                    
+                    
+                    if ( best_feas )
+                    {
+                        prospect_point  = *best_feas;
+                        prospect_point *= 0.001;
+                        model.unscale ( prospect_point );
+                        if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
+                        {
+                            out << "best feasible point after unscaling  : ( ";
+                            prospect_point.NOMAD::Point::display ( out );
+                            out << " )" << std::endl;
+                        }
+                        
+                    }
+                    else if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
+                        out << "no feasible solution" << std::endl;
+                    
+                    
+                    if ( !prospect_point.is_defined() )
+                    {
+                        error     = true;
+                        error_str = "optimization error: no solution";
+                    }
+                    else
+                        error=false;
+                }
+                catch ( std::exception & e )
+                {
+                    error     = true;
+                    error_str = std::string ( "optimization error: " ) + e.what();
+                    throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , error_str );
+                }
+            }
+        }
+    }
+    
+    // update the stats:
+    _stats.update_model_stats ( tmp_stats );
+    
+    if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
+    {
+        out << std::endl << "Prospect point. from quad. model: ";
+        if ( !error)
+            out << "( " << prospect_point << " )" << std::endl;
+        else
+            out << "failure" << std::endl;
+        
+        out << NOMAD::close_block() << std::endl;
+    }
+    
 #ifdef DEBUG
-	out << NOMAD::close_block() << std::endl;
+    out << NOMAD::close_block() << std::endl;
 #endif
-	
-	return !error;
+    
+    return !error;
 }
 
 
@@ -2402,96 +2389,212 @@ bool NOMAD::Mads::optimize_quad_model ( const NOMAD::Eval_Point           & poll
 /*     set the poll directions based on signatures (private)      */
 /*----------------------------------------------------------------*/
 void NOMAD::Mads::set_poll_directions ( std::list<NOMAD::Direction> & dirs        ,
-									   NOMAD::poll_type              i_pc        ,
+                                       NOMAD::poll_type              i_pc        ,
                                        size_t                        offset      ,
-									   const NOMAD::Eval_Point     & poll_center ,
-									   bool                        & stop        , 
-									   NOMAD::stop_type            & stop_reason   )
+                                       const NOMAD::Eval_Point     & poll_center ,
+                                       bool                        & stop        ,
+                                       NOMAD::stop_type            & stop_reason   )
 {
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_poll_dd();
-	
-	std::list<NOMAD::Direction>::const_iterator it , end;
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-	{
-		if ( i_pc == NOMAD::SECONDARY )
-			out << "secondary ";
-		out << "poll center: ( ";
-		poll_center.Point::display ( out, " ", 2, NOMAD::Point::get_display_limit() );
-		out << " )" << std::endl;
-	}
-	
-	// get the poll center's signature:
-	NOMAD::Signature * cur_signature = poll_center.get_signature();
-	
-	if ( !cur_signature )
-		throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-								"Mads::poll(): could not get the poll center's signature" );
-	
-	int n = cur_signature->get_n();
-	
-	if ( n != poll_center.size() )
-		throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-								"Mads::poll(): the poll center has an incompatible signature" );
-	
-	// get directions from the signature:
-	cur_signature->get_directions ( dirs							,
-								   i_pc							,
-								   poll_center						);
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_poll_dd();
     
-
-	
-	size_t k = 0;
+    std::list<NOMAD::Direction>::const_iterator it , end;
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
+        if ( i_pc == NOMAD::SECONDARY )
+            out << "secondary ";
+        out << "poll center: ( ";
+        poll_center.Point::display ( out, " ", 2, NOMAD::Point::get_display_limit() );
+        out << " )" << std::endl;
+    }
+    
+    // get the poll center's signature:
+    NOMAD::Signature * cur_signature = poll_center.get_signature();
+    
+    if ( !cur_signature )
+        throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                "Mads::set_poll_directions(): could not get the poll center's signature" );
+    
+    int n = cur_signature->get_n();
+    
+    if ( n != poll_center.size() )
+        throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                "Mads::set_poll_directions(): the poll center has an incompatible signature" );
+    
+    
+    // get directions from the signature:
+    cur_signature->get_directions ( dirs       ,
+                                   i_pc        ,
+                                   poll_center );
+    
+    size_t k = 0;
     for ( it = dirs.begin() ; it != dirs.end() ; ++it, ++k )
-		it->set_index ( static_cast<int>(offset + k) );
+        it->set_index ( static_cast<int>(offset + k) );
     
+    
+    
+    if ( !stop && dirs.empty() )
+    {
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+            out << "Mads::set_poll_directions(): could not get directions: stop"
+            << std::endl << NOMAD::close_block() << std::endl;
+        stop        = true;
+        stop_reason = NOMAD::MESH_PREC_REACHED;
+        return;
+        
+    }
+    
+    
+    // displays:
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
+        end = dirs.end();
+        
+        int nb_dirs = static_cast<int>(dirs.size());
+        
+        out << std::endl
+        << NOMAD::open_block ( "poll directions (include mesh size parameter)" );
+        for ( it = dirs.begin() ; it != end ; ++it )
+        {
+            out << "dir ";
+            out.display_int_w ( (*it).get_index() , nb_dirs );
+            out << " : " << *it << std::endl;
+        }
+        out.close_block();
+    }
+}
 
-	
-	if ( !stop && dirs.empty() ) 
-	{
-		if ( display_degree == NOMAD::FULL_DISPLAY )
-			out << "Mads::poll(): could not get directions: stop"
-			<< std::endl << NOMAD::close_block() << std::endl;
-		stop        = true;
-		stop_reason = NOMAD::MESH_PREC_REACHED;
-		return;
-		
-	}
-	
-	
-	// displays:
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-	{
-		end = dirs.end();
-		
-		int nb_dirs = static_cast<int>(dirs.size());
-		
-		out << std::endl
-		<< NOMAD::open_block ( "poll directions (include mesh size parameter)" );
-		for ( it = dirs.begin() ; it != end ; ++it ) 
-		{
-			out << "dir ";
-			out.display_int_w ( (*it).get_index() , nb_dirs );
-			out << " : " << *it << std::endl;
-		}
-		out.close_block();
-	} 
+/*----------------------------------------------------------------*/
+/*     set the poll intensification points  (private)                       */
+/*----------------------------------------------------------------*/
+void NOMAD::Mads::set_poll_intensification_points ( const NOMAD::Eval_Point     & poll_center ,
+                                                   size_t &                     offset        ,
+                                                   bool                        & stop        ,
+                                                   NOMAD::stop_type            & stop_reason   )
+{
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_poll_dd();
+    
+    std::list<NOMAD::Direction>::const_iterator it , end;
+    
+    
+    // get the poll center's signature:
+    NOMAD::Signature * cur_signature = poll_center.get_signature();
+    
+    if ( !cur_signature )
+        throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                "Mads::set_poll_intensification_points(): could not get the poll center's signature" );
+    
+    int n = cur_signature->get_n();
+    
+    if ( n != poll_center.size() )
+        throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                "Mads::set_poll_intensification_points(): the poll center has an incompatible signature" );
+    
+    // Number of eval points already submitted for polling
+    int n_eval_sub = _ev_control.get_nb_eval_points();
+    
+    // Number of extra intensification points
+    int n_max_size_poll_set = cur_signature->get_max_size_poll_set();
+    int n_eval_tot = std::min( n_max_size_poll_set , _p.get_max_eval_intensification() );
+    int n_extra = n_eval_tot - n_eval_sub ;
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY && n_extra > 0 )
+    {
+        out << std::endl << NOMAD::open_block ( "Poll intensification: " )<< std::endl;
+        
+        if ( n_extra == n_max_size_poll_set )
+            out << "reduced to max size of poll set"<< std::endl;
+        out << "target number of poll points: " << n_extra << std::endl;
+    }
+    if ( display_degree == NOMAD::FULL_DISPLAY && n_extra <= 0 )
+    {
+        out << std::endl << NOMAD::open_block ( "No poll intensification" )<< std::endl;
+        out << close_block();
+    }
+    
+    if ( n_extra <= 0 )
+        return;
+    
+    
+    // Loop for adding extra points
+    size_t k = offset;
+    int n_tries = 0;
+    int n_eval_cur = _ev_control.get_nb_eval_points();
+    while (  n_eval_cur < n_eval_tot && n_tries < 2 * n_extra )
+    {
+        
+        NOMAD::Direction dir( n, 0.0, NOMAD::UNDEFINED_DIRECTION );
+        std::list<NOMAD::Direction> dirs;
+        
+        n_tries++;
+        
+        // get a direction for a randomly selected variable group
+        cur_signature->get_variable_group_direction ( dir, poll_center );
+        
+        if ( dir.is_complete() )
+        {
+            dir.set_type( NOMAD::ORTHO_1 );
+            dir.set_index ( static_cast<int>(k++) );
+            
+            offset++;
+            
+            dirs.push_back(dir);
+        }
+        
+        
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
+            if ( ! dir.is_defined() )
+                out << "dir "<<k-1<<" : null" << std::endl ;
+            else
+                out << "dir "<<k-1<<" : " << dir << std::endl;
+        }
+        
+        if ( dirs.size() !=0 )
+            set_poll_trial_points( dirs, offset, poll_center, stop, stop_reason, false );
+        
+        int n_eval_tmp = _ev_control.get_nb_eval_points();
+        
+        if ( n_eval_cur == n_eval_tmp )
+        {
+            k--;
+            if ( display_degree == NOMAD::FULL_DISPLAY )
+                out << "reinsert a point"<< std::endl;
+        }
+        else
+            n_eval_cur = n_eval_tmp;
+    }
+    
+    if ( _ev_control.get_nb_eval_points() < n_eval_tot )
+        out << " cannot reached the target number of points" <<std::endl;
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out.close_block();
+    
+    // Failed intensification cannot stop algo. Force the stop to be false.
+    stop = false;
+    stop_reason = NOMAD::NO_STOP;
+    
+    
+    
 }
 
 
-/*----------------------------------------------------------------------------------*/
-/*  check if a set of directions includes one Ortho-MADS N+1 direction (private)    */
-/*  (true if at least one direction in the set is of type Ortho-MADS N+1)           */
-/*----------------------------------------------------------------------------------*/
-bool NOMAD::Mads::dirs_have_orthomads_np1( const std::list<NOMAD::Direction> & dirs)
+
+/*------------------------------------------------------------------------------------------*/
+/*  check if a set of directions includes one Ortho-MADS N+1 dynamic direction (private)    */
+/*  (true if at least one direction in the set is of type Ortho-MADS N+1)                   */
+/*------------------------------------------------------------------------------------------*/
+bool NOMAD::Mads::dirs_have_orthomads_np1_dyn( const std::list<NOMAD::Direction> & dirs)
 {
-	std::list<NOMAD::Direction>::const_iterator it , end = dirs.end();
-	for ( it = dirs.begin() ; it != end ; ++it )
-		if ( (*it).get_type()==NOMAD::ORTHO_NP1_QUAD ||
-			(*it).get_type()==NOMAD::ORTHO_NP1_NEG)
-			return true;
-	return false;
+    std::list<NOMAD::Direction>::const_iterator it , end = dirs.end();
+    for ( it = dirs.begin() ; it != end ; ++it )
+        if ( (*it).get_type()==NOMAD::ORTHO_NP1_QUAD ||
+            (*it).get_type()==NOMAD::ORTHO_NP1_NEG)
+            return true;
+    return false;
 }
 
 
@@ -2501,11 +2604,11 @@ bool NOMAD::Mads::dirs_have_orthomads_np1( const std::list<NOMAD::Direction> & d
 /*-------------------------------------------------------------------------*/
 bool NOMAD::Mads::dir_from_model_opt( const std::list<NOMAD::Direction> & dirs)
 {
-	std::list<NOMAD::Direction>::const_iterator it , end = dirs.end();
-	for ( it = dirs.begin() ; it != end ; ++it )
-		if ( (*it).get_type()!=NOMAD::ORTHO_NP1_QUAD )
-			return false;
-	return true;
+    std::list<NOMAD::Direction>::const_iterator it , end = dirs.end();
+    for ( it = dirs.begin() ; it != end ; ++it )
+        if ( (*it).get_type()!=NOMAD::ORTHO_NP1_QUAD )
+            return false;
+    return true;
 }
 
 
@@ -2514,274 +2617,280 @@ bool NOMAD::Mads::dir_from_model_opt( const std::list<NOMAD::Direction> & dirs)
 /*   set the poll trial points based on poll directions (private) */
 /*----------------------------------------------------------------*/
 void NOMAD::Mads::set_poll_trial_points (std::list<NOMAD::Direction> &dirs,
-										 size_t offset,
-										 const NOMAD::Eval_Point & poll_center,
-										 bool & stop,
-										 NOMAD::stop_type &stop_reason,
-										 bool sorting)
+                                         size_t offset,
+                                         const NOMAD::Eval_Point & poll_center,
+                                         bool & stop,
+                                         NOMAD::stop_type &stop_reason,
+                                         bool sorting)
 {
-	NOMAD::Signature * cur_signature=poll_center.get_signature();
-	NOMAD::poll_center_type pc_type=( poll_center.is_feasible ( _p.get_h_min() ) ) ? NOMAD::FEASIBLE : NOMAD::INFEASIBLE;
-	
-	int n = cur_signature->get_n();
-	int m = _p.get_bb_nb_outputs();
-	const std::vector<NOMAD::bb_input_type> & bbit = _p.get_bb_input_type();  
-	
-	std::list<NOMAD::Direction>::const_iterator it;
-	
-	const NOMAD::Direction                    * dir;
-	NOMAD::Eval_Point                         * pt;
-	
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_poll_dd();
-	
-	int k=0;
-	for ( it = dirs.begin() ; it != dirs.end() ; ++it )
-	{
-		dir = &(*it);  
-		pt = new NOMAD::Eval_Point ( n , m );
-		
-		// pt = poll_center + dir: with a particular case for binary variables
-		// equal to 1 with dir=1: the variables are set to 0 (1+1=0 in binary):
-		for (int i = 0 ; i < n ; ++i )
-			(*pt)[i] =	( bbit[i]==NOMAD::BINARY && (*dir)[i]==1.0 && (poll_center)[i]==1.0 ) ? 0.0 : (*pt)[i] = (poll_center)[i] + (*dir)[i];
-		
-
+    
+    NOMAD::Signature * cur_signature=poll_center.get_signature();
+    NOMAD::poll_center_type pc_type=( poll_center.is_feasible ( _p.get_h_min() ) ) ? NOMAD::FEASIBLE : NOMAD::INFEASIBLE;
+    
+    int n = cur_signature->get_n();
+    int m = _p.get_bb_nb_outputs();
+    const std::vector<NOMAD::bb_input_type> & bbit = _p.get_bb_input_type();
+    
+    std::list<NOMAD::Direction>::const_iterator it;
+    
+    const NOMAD::Direction                    * dir;
+    NOMAD::Eval_Point                         * pt;
+    
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_poll_dd();
+    
+    int k=0;
+    for ( it = dirs.begin() ; it != dirs.end() ; ++it )
+    {
+        dir = &(*it);
+        pt = new NOMAD::Eval_Point ( n , m );
+        
+        // pt = poll_center + dir: with a particular case for binary variables
+        // equal to 1 with dir=1: the variables are set to 0 (1+1=0 in binary):
+        for (int i = 0 ; i < n ; ++i )
+            (*pt)[i] =    ( bbit[i]==NOMAD::BINARY && (*dir)[i]==1.0 && (poll_center)[i]==1.0 ) ? 0.0 : (*pt)[i] = (poll_center)[i] + (*dir)[i];
+        
         if ( pt->Point::operator == ( poll_center ) )
-			delete pt;
+            delete pt;
         else
         {
-		pt->set_signature        ( cur_signature );
-		pt->set_direction        ( dir           );
-		pt->set_poll_center_type ( pc_type       );
-		pt->set_poll_center		 ( &poll_center );
-		
-		// random direction?
-		if ( NOMAD::dir_is_random ( dir->get_type() ) )
-		{
-			int nb_dirs = static_cast<int>(dirs.size());
-			NOMAD::Random_Pickup rp ( nb_dirs );  
-			pt->set_rand_eval_priority ( rp.pickup() );
-		}
-		
-		if (!sorting)
-			_ev_control.add_eval_point ( pt                      ,
-										display_degree          ,
-										_p.get_snap_to_bounds() ,
-										NOMAD::Double()         ,
-										NOMAD::Double()         ,
-										NOMAD::Double()         ,
-										NOMAD::Double()          );
-		else
-		{
-			_ev_control_for_sorting.add_eval_point ( pt                      ,
-													display_degree          ,
-													_p.get_snap_to_bounds() ,
-													NOMAD::Double()         ,
-													NOMAD::Double()         ,
-													NOMAD::Double()         ,
-													NOMAD::Double()         );
-		}
-		
-		++k;
-        }
-	}
-
+            pt->set_signature        ( cur_signature );
+            pt->set_direction        ( dir           );
+            pt->set_poll_center_type ( pc_type       );
+            pt->set_poll_center      ( &poll_center );
+            
+            // random direction?
+            if ( NOMAD::dir_is_random ( dir->get_type() ) )
+            {
+                int nb_dirs = static_cast<int>(dirs.size());
+                NOMAD::Random_Pickup rp ( nb_dirs );
+                pt->set_rand_eval_priority ( rp.pickup() );
+            }
+            
+            if ( !sorting )
+                _ev_control.add_eval_point ( pt                      ,
+                                            display_degree          ,
+                                            _p.get_snap_to_bounds() ,
+                                            NOMAD::Double()         ,
+                                            NOMAD::Double()         ,
+                                            NOMAD::Double()         ,
+                                            NOMAD::Double()          );
+            else
+            {
+                _ev_control_for_sorting.add_eval_point ( pt                      ,
+                                                        display_degree          ,
+                                                        _p.get_snap_to_bounds() ,
+                                                        NOMAD::Double()         ,
+                                                        NOMAD::Double()         ,
+                                                        NOMAD::Double()         ,
+                                                        NOMAD::Double()         );
+            }
+            
+            ++k;
+        }
+    }
+    
     if ( k==0 )
     {
         if ( display_degree == NOMAD::FULL_DISPLAY )
-            out << "Mads::poll(): could not generate poll trial points: stop"
-            << std::endl << NOMAD::close_block() << std::endl;
+            out << "Mads::set_poll_trial_points(): could not generate poll trial points" << std::endl; //  << NOMAD::close_block() << std::endl;
         stop        = true;
         stop_reason = NOMAD::MESH_PREC_REACHED;
     }
-
-	
-	return;
+    
+    
+    return;
 }
 
 
 /*-------------------------------------------------------------*/
-/*     compute the poll directions dynamically  (private)	   */
+/*     compute the poll directions dynamically  (private)       */
 /*-------------------------------------------------------------*/
-bool NOMAD::Mads::get_dynamic_directions (const std::list<NOMAD::Direction>	&	dirs,
-										  std::list<NOMAD::Direction>			&	newDirs,
-										  const NOMAD::Eval_Point				&	poll_center   ) 
+bool NOMAD::Mads::get_dynamic_directions (const std::list<NOMAD::Direction> &   dirs        ,
+                                          std::list<NOMAD::Direction>       &   newDirs     ,
+                                          const NOMAD::Eval_Point           &   poll_center )
 {
-	
-	const NOMAD::Signature * cur_signature=poll_center.get_signature();
-	size_t n = cur_signature->get_n()-cur_signature->get_nb_fixed_variables();
-	size_t n_cat = cur_signature->get_n_categorical();
-	
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_poll_dd();
-	
-	// Dynamic completion only if sufficient directions provided: (n-n_cat)->(n-n_cat)+1
-	if ( dirs.size() < n-n_cat )
-		return false;
-	
-	
-	// Get the maximum number of direction groups
-	std::list<NOMAD::Direction>::const_iterator itDir;
-	int maxDirGroupIndex=0;
-	int dgi;
-	for (itDir=dirs.begin();itDir!=dirs.end() ; ++itDir)
-    {
-		dgi=(*itDir).get_dir_group_index();
-		if (dgi>maxDirGroupIndex)
+    
+    const NOMAD::Signature * cur_signature=poll_center.get_signature();
+    
+    // get the number of free variables using the signature (because of extended poll and changing signature)
+    size_t n = cur_signature->get_n()-cur_signature->get_nb_fixed_variables();
+    size_t n_cat = cur_signature->get_n_categorical();
+    
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_poll_dd();
+    
+    // Dynamic completion only if sufficient directions provided: (n-n_cat)->(n-n_cat)+1
+    if ( dirs.size() < n-n_cat )
+        return false;
+    
+    
+    // Get the maximum number of direction groups
+    std::list<NOMAD::Direction>::const_iterator itDir;
+    int maxDirGroupIndex=0;
+    int dgi;
+    for (itDir=dirs.begin();itDir!=dirs.end() ; ++itDir)
+    {
+        dgi=(*itDir).get_dir_group_index();
+        if (dgi>maxDirGroupIndex)
             maxDirGroupIndex=dgi;
-	}
-	
-	// Loop on each direction group to obtain a new direction 
-	for (dgi=0;dgi<=maxDirGroupIndex;++dgi)
-	{
-		int maxIndex=0;
-		
-		// 1 - Search directions having the same direction group index
-		std::list<NOMAD::Direction> rDirs;
-		std::list<NOMAD::Double>::iterator it_fv;
-		for (itDir=dirs.begin();itDir!=dirs.end() ; ++itDir)
-		{
-			if ((*itDir).get_index()>maxIndex)
-				maxIndex=(*itDir).get_index();
-			if ((*itDir).get_dir_group_index()==dgi) 
-				rDirs.push_back(*itDir);
-		}		
-		
-		// 2 - add a dynamic direction from a quad model optimization or sum of direction negatives 
-		NOMAD::Direction dyn_dir=get_single_dynamic_direction(rDirs,poll_center);
-		if ( dyn_dir.get_type()==NOMAD::DYN_ADDED )
-		{
-			dyn_dir.set_index(maxIndex+1);
-			newDirs.push_back(dyn_dir);
-		}
-	}
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
+    }
+    
+    // Loop on each direction group to obtain a new direction
+    for (dgi=0;dgi<=maxDirGroupIndex;++dgi)
+    {
+        int maxIndex=0;
+        
+        // 1 - Search directions having the same direction group index
+        std::list<NOMAD::Direction> rDirs;
+        std::list<NOMAD::Double>::iterator it_fv;
+        for (itDir=dirs.begin();itDir!=dirs.end() ; ++itDir)
+        {
+            if ( (*itDir).get_index()>maxIndex )
+                maxIndex=(*itDir).get_index();
+            if ( (*itDir).get_dir_group_index()==dgi )
+                rDirs.push_back(*itDir);
+        }
+        
+        // 2 - add a dynamic direction from a quad model optimization or sum of direction negatives
+        NOMAD::Direction dyn_dir=get_single_dynamic_direction( rDirs , poll_center );
+        if ( dyn_dir.get_type()==NOMAD::DYN_ADDED )
+        {
+            dyn_dir.set_index(maxIndex+1);
+            newDirs.push_back(dyn_dir);
+        }
+    }
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
     {
         out << std::endl;
         if ( newDirs.size()!= 0 )
             out << NOMAD::open_block ( "Added (n+1)th poll direction(s) (include mesh size parameter)" );
         else
             out << NOMAD::open_block ( "Cannot generate a (n+1)th poll direction" );
-            
-		for ( itDir = newDirs.begin() ; itDir != newDirs.end() ; ++itDir )
+        
+        for ( itDir = newDirs.begin() ; itDir != newDirs.end() ; ++itDir )
         {
-			out << "dir ";
-			out.display_int_w ( (*itDir).get_index() , static_cast<int>(newDirs.size()) );
-			out << " : " << *itDir << std::endl;
-		}
-		out.close_block();
-		out << std::endl;
-		
-	}
+            out << "dir ";
+            out.display_int_w ( (*itDir).get_index() , static_cast<int>(newDirs.size()) );
+            out << " : " << *itDir << std::endl;
+        }
+        out.close_block();
+        out << std::endl;
+        
+    }
     
     if ( newDirs.size()==0 )
         return false;
-	
-	
-	return true;
+    
+    
+    return true;
 }
 
 
 
 /*------------------------------------------------------------------------------*/
-/*     get a single dynamic direction from incomplete poll			        	*/
-/*     directions by optimization of a quad model or sum of negative (private)	*/
+/*     get a single dynamic direction from incomplete poll                      */
+/*     directions by optimization of a quad model or sum of negative (private)  */
 /*------------------------------------------------------------------------------*/
 /*  The new direction calculation is described in paper from      */
 /*  Audet, Ianni, Le Digabel and Tribes : Reducing the number of  */
 /*  function evaluations in Mesh Adaptive Direct Search Algorithms*/
 /*----------------------------------------------------------------*/
-NOMAD::Direction NOMAD::Mads::get_single_dynamic_direction (const std::list<NOMAD::Direction>	&	dirs,
-															const NOMAD::Eval_Point			&	poll_center) 
+NOMAD::Direction NOMAD::Mads::get_single_dynamic_direction (const std::list<NOMAD::Direction>   &   dirs,
+                                                            const NOMAD::Eval_Point             &   poll_center)
 {
-	const NOMAD::Signature * cur_signature=poll_center.get_signature();
-	int n=cur_signature->get_n();
-	
-	NOMAD::Direction Vb1( n , 0.0 ,NOMAD::UNDEFINED_DIRECTION);
-	
-	
-	std::vector<NOMAD::Double> alpha;
-	NOMAD::Double f_pc=(poll_center.is_feasible(_p.get_h_min())) ? poll_center.get_f():poll_center.get_h();
-	NOMAD::Double lambda=0;
-	std::list<NOMAD::Direction>::const_iterator itDir;
-	
-	// -sum(d^i)
-	for (itDir=dirs.begin();itDir!=dirs.end();++itDir)
-	{
-		for (int i=0; i<n; i++)
-		{
-			Vb1[i]-=(*itDir)[i].value();
-		}
-	}
-	
-	// New direction
-	int dirGroupIndex=(*dirs.begin()).get_dir_group_index();
-	NOMAD::Direction V( n , 0.0 ,NOMAD::DYN_ADDED,dirGroupIndex);
-	
-	// New direction obtained by quad model optimization or negative sum of directions
-	NOMAD::Point prospect_point;
-	bool success=false;
-	if (dir_from_model_opt(dirs))
-		success=optimize_quad_model(poll_center,dirs,prospect_point);
-	for (int i=0; i<n; i++)
-	{
-		if (success)
-			V[i]=prospect_point[i].value()-poll_center[i].value();
-		else
-			V[i]=Vb1[i];  // use -sum(d^i) if model optimization unsucessfull or no dynamic direction requested
-	}
-	
-	// Update the new directions depending on the input_types
-	const std::vector<NOMAD::bb_input_type> & input_types=cur_signature->get_input_types();
-	
-	NOMAD::Point delta,Delta;
-	_mesh->get_delta ( delta );
-	_mesh->get_Delta ( Delta );
-	bool isZero=true;
-	for (int i=0; i<n; ++i) 
-	{
-		NOMAD::Double v=V[i].value(),vb1=Vb1[i].value(),dm=delta[i].value(),dp=Delta[i].value();
-		
-		// Continous variables  ---> rounding towards mesh node.	
-		if (input_types[i]==NOMAD::CONTINUOUS)
-		{
-			if ((vb1/dm).round()>=(v/dm).round())
-				V[i] = (v/dm).ceil()*dm;
-			else
-				V[i] = (v/dm).floor()*dm;
-		}
-		// Integer variables:
-		else if ( input_types[i] == NOMAD::INTEGER )
-		{
-			if ( v >= dp/3.0 )
-				V[i] =  v.ceil();
-			else if ( v <= -dp/3.0 )
-				V[i] =  v.floor();
-			else
-				V[i] =  v.round();
-		}
-		// binary variables:   
-		else if ( input_types[i] == NOMAD::BINARY ) 
-		{
-			if ( v != 0.0 )	V[i] = 1.0;
-		}
-		// categorical variables: set direction=0:
-		else if ( input_types[i] == NOMAD::CATEGORICAL ) 
-			V[i] = 0.0;
-		
-		if (V[i]!=0)
-			isZero=false;
-	}
-	
-	if (isZero)
-	{
-		NOMAD::Direction Vzero( n , 0.0 ,NOMAD::UNDEFINED_DIRECTION);
-		return Vzero;
-	}
-	else
-		return V;
+    const NOMAD::Signature * cur_signature=poll_center.get_signature();
+    int n=cur_signature->get_n();
+    
+    NOMAD::Direction Vb1( n , 0.0 ,NOMAD::UNDEFINED_DIRECTION);
+    
+    
+    std::vector<NOMAD::Double> alpha;
+    NOMAD::Double f_pc=(poll_center.is_feasible(_p.get_h_min())) ? poll_center.get_f():poll_center.get_h();
+    NOMAD::Double lambda=0;
+    std::list<NOMAD::Direction>::const_iterator itDir;
+    
+    // -sum(d^i)
+    for (itDir=dirs.begin();itDir!=dirs.end();++itDir)
+    {
+        for (int i=0; i<n; i++)
+        {
+            Vb1[i]-=(*itDir)[i].value();
+        }
+    }
+    
+    // New direction
+    int dirGroupIndex=(*dirs.begin()).get_dir_group_index();
+    NOMAD::Direction V( n , 0.0 ,NOMAD::DYN_ADDED,dirGroupIndex);
+    
+    // New direction obtained by quad model optimization or negative sum of directions
+    NOMAD::Point prospect_point;
+    bool success=false;
+    if (dir_from_model_opt(dirs))
+        success=optimize_quad_model(poll_center,dirs,prospect_point);
+    for (int i=0; i<n; i++)
+    {
+        if (success)
+            V[i]=prospect_point[i].value()-poll_center[i].value();
+        else
+            V[i]=Vb1[i];  // use -sum(d^i) if model optimization unsucessfull or no dynamic direction requested
+    }
+    
+    // Update the new directions depending on the input_types
+    const std::vector<NOMAD::bb_input_type> & input_types=cur_signature->get_input_types();
+    
+    NOMAD::Point delta,Delta;
+    _mesh->get_delta ( delta );
+    _mesh->get_Delta ( Delta );
+    bool isZero=true;
+    for (int i=0; i<n; ++i)
+    {
+        NOMAD::Double v=V[i].value(),vb1=Vb1[i].value(),dm=delta[i].value(),dp=Delta[i].value();
+        
+        // Continous variables  ---> rounding towards mesh node.
+        if (input_types[i]==NOMAD::CONTINUOUS)
+        {
+            NOMAD::Double d1 = vb1/dm;
+            NOMAD::Double d2 = v/dm;
+            NOMAD::Double r1 = ( d1 < 0.0  ? -std::floor(.5-d1.value()) : std::floor(.5+d1.value() ) );
+            NOMAD::Double r2 = ( d2 < 0.0  ? -std::floor(.5-d2.value()) : std::floor(.5+d2.value() ) );
+            if ( r1 >= r2 )
+                V[i] = (v/dm).ceil()*dm;
+            else
+                V[i] = (v/dm).floor()*dm;
+        }
+        // Integer variables:
+        else if ( input_types[i] == NOMAD::INTEGER )
+        {
+            if ( v >= dp/3.0 )
+                V[i] =  v.ceil();
+            else if ( v <= -dp/3.0 )
+                V[i] =  v.floor();
+            else
+                V[i] =  v.round();
+        }
+        // binary variables:
+        else if ( input_types[i] == NOMAD::BINARY )
+        {
+            if ( v != 0.0 )
+                V[i] = 1.0;
+        }
+        // categorical variables: set direction=0:
+        else if ( input_types[i] == NOMAD::CATEGORICAL )
+            V[i] = 0.0;
+        
+        if ( V[i]!=0 )
+            isZero=false;
+    }
+    
+    if (isZero )
+    {
+        NOMAD::Direction Vzero( n , 0.0 ,NOMAD::UNDEFINED_DIRECTION);
+        return Vzero;
+    }
+    else
+        return V;
 }
 
 
@@ -2793,55 +2902,55 @@ NOMAD::Direction NOMAD::Mads::get_single_dynamic_direction (const std::list<NOMA
 /*----------------------------------------------------------------*/
 void NOMAD::Mads::check_directions ( bool & forbid_poll_size_stop )
 {
-	if ( !_p.get_min_poll_size_defined() )
-    {
-		
-		NOMAD::Double        v , min;
-		const NOMAD::Point * dir;
-		int                  i , n;
-		
-		const NOMAD::Signature * signature;
-		
-		const std::set<NOMAD::Priority_Eval_Point> & poll_pts = _ev_control.get_eval_lop();
-		std::set<NOMAD::Priority_Eval_Point>::const_iterator end = poll_pts.end() , it;
-		for ( it = poll_pts.begin() ; it != end ; ++it )
-        {
-			
-			signature = it->get_point()->get_signature();
-			
-			if ( signature )
+    if ( !_p.get_min_poll_size_defined() )
+    {
+        
+        NOMAD::Double        v , min;
+        const NOMAD::Point * dir;
+        int                  i , n;
+        
+        const NOMAD::Signature * signature;
+        
+        const std::set<NOMAD::Priority_Eval_Point> & poll_pts = _ev_control.get_eval_lop();
+        std::set<NOMAD::Priority_Eval_Point>::const_iterator end = poll_pts.end() , it;
+        for ( it = poll_pts.begin() ; it != end ; ++it )
+        {
+            
+            signature = it->get_point()->get_signature();
+            
+            if ( signature )
             {
-				
-				dir = it->get_point()->get_direction();
-				
-				if ( dir )
+                
+                dir = it->get_point()->get_direction();
+                
+                if ( dir )
                 {
-					
-					n = dir->size();
-					
-					if ( n == signature->get_n() )
+                    
+                    n = dir->size();
+                    
+                    if ( n == signature->get_n() )
                     {
-						
-						const std::vector<NOMAD::bb_input_type> & bbit
-						= signature->get_input_types();
-						
-						for ( i = 0 ; i < n ; ++i )
+                        
+                        const std::vector<NOMAD::bb_input_type> & bbit
+                        = signature->get_input_types();
+                        
+                        for ( i = 0 ; i < n ; ++i )
                         {
-							if ( bbit[i] == NOMAD::INTEGER )
+                            if ( bbit[i] == NOMAD::INTEGER )
                             {
-								v = (*dir)[i].abs();
-								if ( v.is_defined() && v > 0.0 && ( !min.is_defined() || v < min ) )
-									min = v;
-							}
-						}
-					}
-				}
-			}
-		}
-		
-		if ( min.is_defined() && min > 1.0 )
-			forbid_poll_size_stop = true;
-	}
+                                v = (*dir)[i].abs();
+                                if ( v.is_defined() && v > 0.0 && ( !min.is_defined() || v < min ) )
+                                    min = v;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        
+        if ( min.is_defined() && min > 1.0 )
+            forbid_poll_size_stop = true;
+    }
 }
 
 /*---------------------------------------------------------*/
@@ -2849,25 +2958,25 @@ void NOMAD::Mads::check_directions ( bool & forbid_poll_size_stop )
 /*    (private)                                            */
 /*---------------------------------------------------------*/
 void NOMAD::Mads::update_success_directions ( const NOMAD::Eval_Point         * new_inc    ,
-											 bool                              feasible     ) const
+                                             bool                              feasible     ) const
 {
-	if ( new_inc && new_inc->get_direction() ) 
-    {
-		
-		const NOMAD::Direction * dir       = new_inc->get_direction();
-		NOMAD::Signature       * signature = new_inc->get_signature();
-		
-		
-		if ( !signature )
-			throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
-									"Mads::update_success_directions(): new incumbent has no signature" );
-		
-		if ( feasible )
-			new_inc->get_signature()->set_feas_success_dir ( *dir );
-		else
-			new_inc->get_signature()->set_infeas_success_dir ( *dir );
-		
-	}
+    if ( new_inc && new_inc->get_direction() )
+    {
+        
+        const NOMAD::Direction * dir       = new_inc->get_direction();
+        NOMAD::Signature       * signature = new_inc->get_signature();
+        
+        
+        if ( !signature )
+            throw NOMAD::Exception ( "Mads.cpp" , __LINE__ ,
+                                    "Mads::update_success_directions(): new incumbent has no signature" );
+        
+        if ( feasible )
+            new_inc->get_signature()->set_feas_success_dir ( *dir );
+        else
+            new_inc->get_signature()->set_infeas_success_dir ( *dir );
+        
+    }
 }
 
 
@@ -2875,540 +2984,532 @@ void NOMAD::Mads::update_success_directions ( const NOMAD::Eval_Point         *
 /*                      the search (private)               */
 /*---------------------------------------------------------*/
 void NOMAD::Mads::search ( bool                     & stop           ,
-						  NOMAD::stop_type         & stop_reason    ,
-						  NOMAD::success_type      & success        ,
-						  const NOMAD::Eval_Point *& new_feas_inc   ,
-						  const NOMAD::Eval_Point *& new_infeas_inc   )
+                          NOMAD::stop_type         & stop_reason    ,
+                          NOMAD::success_type      & success        ,
+                          const NOMAD::Eval_Point *& new_feas_inc   ,
+                          const NOMAD::Eval_Point *& new_infeas_inc   )
 {
-	int                    nb_search_pts;
-	bool                   count_search;
-	int                    mads_iteration  = _stats.get_iterations();
-	const NOMAD::Display & out             = _p.out();
-	NOMAD::dd_type         display_degree  = out.get_search_dd();
-	NOMAD::success_type    last_it_success = success;
-	success                                = NOMAD::UNSUCCESSFUL;
-	
-	// first display:
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-		out << std::endl << NOMAD::open_block ( "MADS search" );
-	
-	// 1. speculative search:
-	if ( _p.get_speculative_search() )
-	{
-		if ( new_feas_inc || new_infeas_inc )
-		{
-			Speculative_Search ss ( _p );
-			
-			ss.search ( *this          ,
-					   nb_search_pts  ,
-					   stop           ,
-					   stop_reason    ,
-					   success        ,
-					   count_search   ,
-					   new_feas_inc   ,
-					   new_infeas_inc   );
-			
-			if ( success == NOMAD::FULL_SUCCESS )
-				_stats.add_spec_success();
-			if ( count_search )
-				_stats.add_nb_spec_searches();
-			_stats.add_spec_pts ( nb_search_pts );
-		}
-	}
-	
-	// 2. user search:
-	if ( success != NOMAD::FULL_SUCCESS && _user_search )
-    {
-		
-		// initial user search display:
-		if ( display_degree == NOMAD::FULL_DISPLAY )
-        {
-			std::ostringstream oss;
-			oss << NOMAD::USER_SEARCH;
-			out << std::endl << NOMAD::open_block ( oss.str() ) << std::endl;
-		}
-		
-		// the search:
-		_user_search->search ( *this          ,
-							  nb_search_pts  ,
-							  stop           ,
-							  stop_reason    ,
-							  success        ,
-							  count_search   ,
-							  new_feas_inc   ,
-							  new_infeas_inc   );
-		
-		// update stats:
-		if ( success == NOMAD::FULL_SUCCESS )
-			_stats.add_usr_srch_success();
-		if ( count_search )
-			_stats.add_nb_usr_searches();
-		_stats.add_usr_srch_pts ( nb_search_pts );
-		
-		// final user search display:
-		if ( display_degree == NOMAD::FULL_DISPLAY )
-        {
-			std::ostringstream oss;
-			oss << "end of " << NOMAD::USER_SEARCH << " (" << success << ")";
-			out << std::endl << NOMAD::close_block ( oss.str() ) << std::endl;
-		}
-	}
-	
-	// 3. cache search:
-	if ( success != NOMAD::FULL_SUCCESS && _p.get_cache_search() )
-    {
-		
-		// the search:
-		_cache_search->search ( *this          ,
-							   nb_search_pts  ,
-							   stop           ,
-							   stop_reason    ,
-							   success        ,
-							   count_search   ,
-							   new_feas_inc   ,
-							   new_infeas_inc   );
-		
-		// update stats:
-		if ( success == NOMAD::FULL_SUCCESS )
-			_stats.add_CS_success();
-		if ( count_search )
-			_stats.add_nb_cache_searches();
-		_stats.add_CS_pts ( nb_search_pts );
-	}
-	
-	// 4. Model Searches (stats are updated inside the searches):
-	if ( success != NOMAD::FULL_SUCCESS && _p.has_model_search() )
-    {
-		
+    int                    nb_search_pts;
+    bool                   count_search;
+    int                    mads_iteration  = _stats.get_iterations();
+    const NOMAD::Display & out             = _p.out();
+    NOMAD::dd_type         display_degree  = out.get_search_dd();
+    NOMAD::success_type    last_it_success = success;
+    success                                = NOMAD::UNSUCCESSFUL;
+    
+    // first display:
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out << std::endl << NOMAD::open_block ( "MADS search" );
+    
+    // 1. speculative search:
+    if ( _p.get_speculative_search() )
+    {
+        if ( new_feas_inc || new_infeas_inc )
+        {
+            Speculative_Search ss ( _p );
+            
+            ss.search ( *this          ,
+                       nb_search_pts  ,
+                       stop           ,
+                       stop_reason    ,
+                       success        ,
+                       count_search   ,
+                       new_feas_inc   ,
+                       new_infeas_inc   );
+            
+            if ( success == NOMAD::FULL_SUCCESS )
+                _stats.add_spec_success();
+            if ( count_search )
+                _stats.add_nb_spec_searches();
+            _stats.add_spec_pts ( nb_search_pts );
+        }
+    }
+    
+    // 2. user search:
+    if ( success != NOMAD::FULL_SUCCESS && _user_search )
+    {
+        
+        // initial user search display:
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
+            std::ostringstream oss;
+            oss << NOMAD::USER_SEARCH;
+            out << std::endl << NOMAD::open_block ( oss.str() ) << std::endl;
+        }
+        
+        // the search:
+        _user_search->search ( *this          ,
+                              nb_search_pts  ,
+                              stop           ,
+                              stop_reason    ,
+                              success        ,
+                              count_search   ,
+                              new_feas_inc   ,
+                              new_infeas_inc   );
+        
+        // update stats:
+        if ( success == NOMAD::FULL_SUCCESS )
+            _stats.add_usr_srch_success();
+        if ( count_search )
+            _stats.add_nb_usr_searches();
+        _stats.add_usr_srch_pts ( nb_search_pts );
+        
+        // final user search display:
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
+            std::ostringstream oss;
+            oss << "end of " << NOMAD::USER_SEARCH << " (" << success << ")";
+            out << std::endl << NOMAD::close_block ( oss.str() ) << std::endl;
+        }
+    }
+    
+    // 3. cache search:
+    if ( success != NOMAD::FULL_SUCCESS && _p.get_cache_search() )
+    {
+        
+        // the search:
+        _cache_search->search ( *this          ,
+                               nb_search_pts  ,
+                               stop           ,
+                               stop_reason    ,
+                               success        ,
+                               count_search   ,
+                               new_feas_inc   ,
+                               new_infeas_inc   );
+        
+        // update stats:
+        if ( success == NOMAD::FULL_SUCCESS )
+            _stats.add_CS_success();
+        if ( count_search )
+            _stats.add_nb_cache_searches();
+        _stats.add_CS_pts ( nb_search_pts );
+    }
+    
+    // 4. Model Searches (stats are updated inside the searches):
+    if ( success != NOMAD::FULL_SUCCESS && _p.has_model_search() )
+    {
+        
 #ifdef USE_MPI
-		// asynchronous mode: wait for the evaluations in progress:
-		if ( _p.get_asynchronous() )
-        {
-			std::list<const NOMAD::Eval_Point *> evaluated_pts;
-			_ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
-											  _true_barrier       ,
-											  _sgte_barrier       ,
-											  _pareto_front       ,
-											  stop                ,
-											  stop_reason         ,
-											  success             ,
-											  evaluated_pts         );
-		}
-#endif
-		
-		// model search #1:
-		_model_search1->search ( *this          ,
-								nb_search_pts  ,
-								stop           ,
-								stop_reason    ,
-								success        ,
-								count_search   ,
-								new_feas_inc   ,
-								new_infeas_inc   );
-		
-		// save the TGP model for the model ordering:
-		if ( _p.get_model_search(1) == NOMAD::TGP_MODEL )
-        {
-#ifdef USE_TGP
-			_ev_control.set_last_TGP_model
-			( static_cast<NOMAD::TGP_Model_Search *>(_model_search1)->get_model() );
+        // asynchronous mode: wait for the evaluations in progress:
+        if ( _p.get_asynchronous() )
+        {
+            std::list<const NOMAD::Eval_Point *> evaluated_pts;
+            _ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
+                                              _true_barrier       ,
+                                              _sgte_barrier       ,
+                                              _pareto_front       ,
+                                              stop                ,
+                                              stop_reason         ,
+                                              success             ,
+                                              evaluated_pts         );
+        }
 #endif
-		}
-		// model search #2:
-		if ( success != NOMAD::FULL_SUCCESS && _model_search2 )
+        
+        // model search #1:
+        _model_search1->search ( *this          ,
+                                nb_search_pts  ,
+                                stop           ,
+                                stop_reason    ,
+                                success        ,
+                                count_search   ,
+                                new_feas_inc   ,
+                                new_infeas_inc   );
+        
+        // model search #2:
+        if ( success != NOMAD::FULL_SUCCESS && _model_search2 )
         {
-			
+            
 #ifdef USE_MPI
-			// asynchronous mode: wait for the evaluations in progress:
-			if ( _p.get_asynchronous() )
-            {
-				std::list<const NOMAD::Eval_Point *> evaluated_pts;
-				_ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
-												  _true_barrier       ,
-												  _sgte_barrier       ,
-												  _pareto_front       ,
-												  stop                ,
-												  stop_reason         ,
-												  success             ,
-												  evaluated_pts         );
-			}
-#endif
-			_model_search2->search ( *this          ,
-									nb_search_pts  ,
-									stop           ,
-									stop_reason    ,
-									success        ,
-									count_search   ,
-									new_feas_inc   ,
-									new_infeas_inc   );
-			
-			// save the TGP model for the model ordering:
-			if ( _p.get_model_search(2) == NOMAD::TGP_MODEL )
+            // asynchronous mode: wait for the evaluations in progress:
+            if ( _p.get_asynchronous() )
             {
-#ifdef USE_TGP
-				_ev_control.set_last_TGP_model
-				( static_cast<NOMAD::TGP_Model_Search *>(_model_search2)->get_model() );
+                std::list<const NOMAD::Eval_Point *> evaluated_pts;
+                _ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
+                                                  _true_barrier       ,
+                                                  _sgte_barrier       ,
+                                                  _pareto_front       ,
+                                                  stop                ,
+                                                  stop_reason         ,
+                                                  success             ,
+                                                  evaluated_pts         );
+            }
 #endif
-			}
-		}
-	}
-	
-	// 5. VNS search:
-	if ( _p.get_VNS_search()                    &&
-		success         != NOMAD::FULL_SUCCESS &&
-		last_it_success == NOMAD::UNSUCCESSFUL &&
+            _model_search2->search ( *this          ,
+                                    nb_search_pts  ,
+                                    stop           ,
+                                    stop_reason    ,
+                                    success        ,
+                                    count_search   ,
+                                    new_feas_inc   ,
+                                    new_infeas_inc   );
+        }
+    }
+    
+    // 5. VNS search:
+    if ( _p.get_VNS_search()                    &&
+        success         != NOMAD::FULL_SUCCESS &&
+        last_it_success == NOMAD::UNSUCCESSFUL &&
         _mesh->is_finer_than_initial()  &&
-		_stats.get_iterations() > 0               )
+        _stats.get_iterations() > 0               )
     {
-		
-		// check the VNS_trigger criterion:
-		int bbe = _stats.get_bb_eval();
-		if ( bbe==0 ||
-			_stats.get_VNS_bb_eval() / static_cast<float>(bbe) < _p.get_VNS_trigger() )
+        
+        // check the VNS_trigger criterion:
+        int bbe = _stats.get_bb_eval();
+        if ( bbe==0 ||
+            _stats.get_VNS_bb_eval() / static_cast<float>(bbe) < _p.get_VNS_trigger() )
         {
-			
+            
 #ifdef USE_MPI
-			// asynchronous mode: wait for the evaluations in progress:
-			if ( _p.get_asynchronous() )
+            // asynchronous mode: wait for the evaluations in progress:
+            if ( _p.get_asynchronous() )
             {
-				std::list<const NOMAD::Eval_Point *> evaluated_pts;
-				_ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
-												  _true_barrier       ,
-												  _sgte_barrier       ,
-												  _pareto_front       ,
-												  stop                ,
-												  stop_reason         ,
-												  success             ,
-												  evaluated_pts         );
-			}
+                std::list<const NOMAD::Eval_Point *> evaluated_pts;
+                _ev_control.wait_for_evaluations ( NOMAD::ASYNCHRONOUS ,
+                                                  _true_barrier       ,
+                                                  _sgte_barrier       ,
+                                                  _pareto_front       ,
+                                                  stop                ,
+                                                  stop_reason         ,
+                                                  success             ,
+                                                  evaluated_pts         );
+            }
 #endif
-			
-			_VNS_search->search ( *this          ,
-								 nb_search_pts  ,
-								 stop           ,
-								 stop_reason    ,
-								 success        ,
-								 count_search   ,
-								 new_feas_inc   ,
-								 new_infeas_inc   );
-			
-			if ( success == NOMAD::FULL_SUCCESS )
-				_stats.add_VNS_success();
-            
-			if ( count_search )
-				_stats.add_nb_VNS_searches();
-            
-			_stats.add_VNS_pts ( nb_search_pts );
-		}
-	}
-	
-	// 6. Latin-Hypercube (LH) search:
-	if ( success != NOMAD::FULL_SUCCESS && _p.get_LH_search_pi() > 0 )
-    {
-		
-		// for the first iteration: do not perform the
-		// search if there was an initial LH search:
-		if ( mads_iteration > 0 || _p.get_LH_search_p0() <= 0 ) {
-			
-			LH_Search lh ( _p , false , _flag_p1_active );
-			
-			lh.search ( *this          ,
-					   nb_search_pts  ,
-					   stop           ,
-					   stop_reason    ,
-					   success        ,
-					   count_search   ,
-					   new_feas_inc   ,
-					   new_infeas_inc   );
-            
-			if ( success == NOMAD::FULL_SUCCESS )
-				_stats.add_LH_success();
-            
-			if ( count_search )
-				_stats.add_nb_LH_searches();
-            
-			_stats.add_LH_pts ( nb_search_pts );
-		}
-	}
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-		out << NOMAD::close_block ( "end of search" );
+            
+            _VNS_search->search ( *this          ,
+                                 nb_search_pts  ,
+                                 stop           ,
+                                 stop_reason    ,
+                                 success        ,
+                                 count_search   ,
+                                 new_feas_inc   ,
+                                 new_infeas_inc   );
+            
+            if ( success == NOMAD::FULL_SUCCESS )
+                _stats.add_VNS_success();
+            
+            if ( count_search )
+                _stats.add_nb_VNS_searches();
+            
+            _stats.add_VNS_pts ( nb_search_pts );
+        }
+    }
+    
+    // 6. Latin-Hypercube (LH) search:
+    if ( success != NOMAD::FULL_SUCCESS && _p.get_LH_search_pi() > 0 )
+    {
+        
+        // for the first iteration: do not perform the
+        // search if there was an initial LH search:
+        if ( mads_iteration > 0 || _p.get_LH_search_p0() <= 0 )
+        {
+            
+            LH_Search lh ( _p , false , _flag_p1_active );
+            
+            lh.search ( *this          ,
+                       nb_search_pts  ,
+                       stop           ,
+                       stop_reason    ,
+                       success        ,
+                       count_search   ,
+                       new_feas_inc   ,
+                       new_infeas_inc   );
+            
+            if ( success == NOMAD::FULL_SUCCESS )
+                _stats.add_LH_success();
+            
+            if ( count_search )
+                _stats.add_nb_LH_searches();
+            
+            _stats.add_LH_pts ( nb_search_pts );
+        }
+    }
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out << NOMAD::close_block ( "end of search" );
 }
 
 /*---------------------------------------------------------*/
 /*                       x0 eval (private)                 */
 /*---------------------------------------------------------*/
 void NOMAD::Mads::eval_x0 ( bool             & stop        ,
-						   NOMAD::stop_type & stop_reason   )
+                           NOMAD::stop_type & stop_reason   )
 {
-	const std::vector<NOMAD::Point *> & x0s           = _p.get_x0s();
-	const std::string                 & x0_cache_file = _p.get_x0_cache_file();
-	if ( x0s.empty() && x0_cache_file.empty() )
-		return;
-	
-	const NOMAD::Display    & out = _p.out();
-	NOMAD::dd_type display_degree = out.get_gen_dd();
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-		out << std::endl << NOMAD::open_block ( "starting point evaluation" );
-	
-	NOMAD::Eval_Point * pt;
-	size_t              k;
-	int                 m = _p.get_bb_nb_outputs();
-	int                 n = _p.get_dimension();
-	std::ostringstream  err;
-	
-	// x0s from vector Parameters::_x0s:
-	// ---------------------------------
-	size_t x0s_size = x0s.size();
-	for ( k = 0 ; k < x0s_size ; ++k )
-	{
-		
-		// the current starting point has to be in dimension n:
-		if ( x0s[k]->size() != n )
-		{
-			err << "starting point ( " << *x0s[k] << " ) is not of dimension " << n;
-			throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , err.str() );
-		}
-		
-		// creation of the Eval_Point:
-		pt = new NOMAD::Eval_Point;
-		pt->set           ( *x0s[k] , m        );
-		pt->set_signature ( _p.get_signature() );
-		
-		_ev_control.add_eval_point ( pt              ,
-									display_degree  ,
-									false           ,
-									NOMAD::Double() ,
-									NOMAD::Double() ,
-									NOMAD::Double() ,
-									NOMAD::Double()    );
-	}
-	
-	// x0 from a cache file:
-	// ---------------------
-	if ( !x0_cache_file.empty() )
-	{
-		
-		NOMAD::Cache            & cache = _ev_control.get_cache();
-		const NOMAD::Eval_Point * x;
-		
-		// another cache file (this file won't be modified):
-		if ( x0_cache_file != _p.get_cache_file() ) 
-		{
-			
-			NOMAD::Cache x0_cache ( out , ( _p.get_opt_only_sgte() ) ? NOMAD::SGTE  : NOMAD::TRUTH   );
-			std::string  file_name = _p.get_problem_dir() + x0_cache_file;
-			
-			if ( !x0_cache.load ( file_name , NULL , display_degree==NOMAD::FULL_DISPLAY ) ) 
-			{
-				err << "could not load (or create) the cache file " << file_name;
-				throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , err.str() );
-			}
-			
-			// we copy all the temporary cache points
-			// into the list of points to be evaluated:
-			x = x0_cache.begin();
-			while ( x )
-			{
-				
-				pt = new NOMAD::Eval_Point;
-				pt->set ( *x , m );
-				
-				if ( x->get_signature() )
-					pt->set_signature ( x->get_signature() );
-				else if ( x->size() == n )
-					pt->set_signature ( _p.get_signature() );
-				
-				if ( pt->get_signature() )
-					_ev_control.add_eval_point ( pt              ,
-												display_degree  ,
-												false           ,
-												NOMAD::Double() ,
-												NOMAD::Double() ,
-												NOMAD::Double() ,
-												NOMAD::Double()   );
-				else
-				{
-					if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
-						out << std::endl << "Warning (" << "Mads.cpp" << ", " << __LINE__
-						<< "): could not use the starting point " << *pt
-						<< " (no signature)" << std::endl << std::endl;
-					delete pt;
-				}
-				
-				x = x0_cache.next();
-			}
-			
-			// insertion of this temporary cache in the algorithm's cache:
-			cache.insert ( x0_cache );
-		}
-		
-		// x0 cache file and the algorithm's cache file are the same:
-		else {
-			
-			x = cache.begin();
-			while ( x ) {
-				pt = &NOMAD::Cache::get_modifiable_point ( *x );
-				
-				if ( x->get_signature() )
-					pt->set_signature ( x->get_signature() );
-				else if ( x->size() == n )
-					pt->set_signature ( _p.get_signature() );
-				
-				if ( pt->get_signature() )
-					_ev_control.add_eval_point ( pt              ,
-												display_degree  ,
-												false           ,
-												NOMAD::Double() ,
-												NOMAD::Double() ,
-												NOMAD::Double() ,
-												NOMAD::Double()    );
-				else {
-					if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
-						out << std::endl << "Warning (" << "Mads.cpp" << ", " << __LINE__
-						<< "): could not use the starting point " << *pt
-						<< "(no signature)" << std::endl;
-				}
-				x = cache.next();
-			}
-		}
-	}
-	
-	// display of all starting points:
-	if ( display_degree == NOMAD::FULL_DISPLAY ) {
-		
-		const std::set<NOMAD::Priority_Eval_Point> & pts = _ev_control.get_eval_lop();
-		
-		// one starting point:
-		if ( pts.size() == 1 ) {
-			out << std::endl << "x0 eval point: ( ";
-			pts.begin()->get_point()->Point::display ( out                               ,
-													  " "                               ,
-													  2                                 ,
-													  NOMAD::Point::get_display_limit()   );
-			out << " )" << std::endl;
-		}
-		
-		// several starting points:
-		else
-			_ev_control.display_eval_lop ( NOMAD::X0_EVAL );
-	}
-	
-	NOMAD::success_type       success;   
-	const NOMAD::Eval_Point * new_feas_inc   = NULL;
-	const NOMAD::Eval_Point * new_infeas_inc = NULL;
-	
-	// eval_list_of_points (x0):
-	// -------------------------
-	_ev_control.eval_list_of_points ( NOMAD::X0_EVAL ,
-									 _true_barrier  ,
-									 _sgte_barrier  ,
-									 _pareto_front  ,
-									 stop           ,
-									 stop_reason    ,
-									 new_feas_inc   ,
-									 new_infeas_inc ,
-									 success          );
-	if ( !stop &&
-		( success == NOMAD::UNSUCCESSFUL      ||
-		 (!new_feas_inc && !new_infeas_inc ) ||
-		 ( _p.get_barrier_type() == NOMAD::EB &&
-		  !get_active_barrier().get_best_feasible() ) ) ) {
-			 stop        = true;
-			 stop_reason = NOMAD::X0_FAIL;
-		 }
-	
-	
-	// displays:
-	display_iteration_end ( stop           ,
-						   stop_reason    ,
-						   success        ,
-						   new_feas_inc   ,
-						   new_infeas_inc   );
-	
-	// stop the algorithm if no iterations are allowed:
-	if ( !stop && _p.get_max_iterations() == 0 )
-	{
-		stop        = true;
-		stop_reason = NOMAD::MAX_ITER_REACHED;
-	}
-	
-	if ( display_degree == NOMAD::FULL_DISPLAY ) 
-		out << std::endl << NOMAD::close_block ( "end of starting point evaluation" );
+    const std::vector<NOMAD::Point *> & x0s           = _p.get_x0s();
+    const std::string                 & x0_cache_file = _p.get_x0_cache_file();
+    if ( x0s.empty() && x0_cache_file.empty() )
+        return;
+    
+    const NOMAD::Display    & out = _p.out();
+    NOMAD::dd_type display_degree = out.get_gen_dd();
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out << std::endl << NOMAD::open_block ( "starting point evaluation" );
+    
+    NOMAD::Eval_Point * pt;
+    size_t              k;
+    int                 m = _p.get_bb_nb_outputs();
+    int                 n = _p.get_dimension();
+    std::ostringstream  err;
+    
+    // x0s from vector Parameters::_x0s:
+    // ---------------------------------
+    size_t x0s_size = x0s.size();
+    for ( k = 0 ; k < x0s_size ; ++k )
+    {
+        
+        // the current starting point has to be in dimension n:
+        if ( x0s[k]->size() != n )
+        {
+            err << "starting point ( " << *x0s[k] << " ) is not of dimension " << n;
+            throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , err.str() );
+        }
+        
+        // creation of the Eval_Point:
+        pt = new NOMAD::Eval_Point;
+        pt->set           ( *x0s[k] , m        );
+        pt->set_signature ( _p.get_signature() );
+        
+        _ev_control.add_eval_point ( pt              ,
+                                    display_degree  ,
+                                    false           ,
+                                    NOMAD::Double() ,
+                                    NOMAD::Double() ,
+                                    NOMAD::Double() ,
+                                    NOMAD::Double()    );
+    }
+    
+    // x0 from a cache file:
+    // ---------------------
+    if ( !x0_cache_file.empty() )
+    {
+        
+        NOMAD::Cache            & cache = _ev_control.get_cache();
+        const NOMAD::Eval_Point * x;
+        
+        // another cache file (this file won't be modified):
+        if ( x0_cache_file != _p.get_cache_file() )
+        {
+            
+            NOMAD::Cache x0_cache ( out , ( _p.get_opt_only_sgte() ) ? NOMAD::SGTE  : NOMAD::TRUTH   );
+            std::string  file_name = _p.get_problem_dir() + x0_cache_file;
+            
+            if ( !x0_cache.load ( file_name , NULL , display_degree==NOMAD::FULL_DISPLAY ) )
+            {
+                err << "could not load (or create) the cache file " << file_name;
+                throw NOMAD::Exception ( "Mads.cpp" , __LINE__ , err.str() );
+            }
+            
+            // we copy all the temporary cache points
+            // into the list of points to be evaluated:
+            x = x0_cache.begin();
+            while ( x )
+            {
+                
+                pt = new NOMAD::Eval_Point;
+                pt->set ( *x , m );
+                
+                if ( x->get_signature() )
+                    pt->set_signature ( x->get_signature() );
+                else if ( x->size() == n )
+                    pt->set_signature ( _p.get_signature() );
+                
+                if ( pt->get_signature() )
+                    _ev_control.add_eval_point ( pt              ,
+                                                display_degree  ,
+                                                false           ,
+                                                NOMAD::Double() ,
+                                                NOMAD::Double() ,
+                                                NOMAD::Double() ,
+                                                NOMAD::Double()   );
+                else
+                {
+                    if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+                        out << std::endl << "Warning (" << "Mads.cpp" << ", " << __LINE__
+                        << "): could not use the starting point " << *pt
+                        << " (no signature)" << std::endl << std::endl;
+                    delete pt;
+                }
+                
+                x = x0_cache.next();
+            }
+            
+            // insertion of this temporary cache in the algorithm's cache:
+            cache.insert ( x0_cache );
+        }
+        
+        // x0 cache file and the algorithm's cache file are the same:
+        else
+        {
+            
+            
+            x = cache.begin();
+            while ( x )
+            {
+                pt = &NOMAD::Cache::get_modifiable_point ( *x );
+                
+                if ( x->get_signature() )
+                    pt->set_signature ( x->get_signature() );
+                else if ( x->size() == n )
+                    pt->set_signature ( _p.get_signature() );
+                
+                if ( pt->get_signature() )
+                    _ev_control.add_eval_point ( pt              ,
+                                                display_degree  ,
+                                                false           ,
+                                                NOMAD::Double() ,
+                                                NOMAD::Double() ,
+                                                NOMAD::Double() ,
+                                                NOMAD::Double()    );
+                else
+                {
+                    
+                    if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+                        out << std::endl << "Warning (" << "Mads.cpp" << ", " << __LINE__
+                        << "): could not use the starting point " << *pt
+                        << "(no signature)" << std::endl;
+                }
+                x = cache.next();
+            }
+        }
+    }
+    
+    // display of all starting points:
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
+        
+        const std::set<NOMAD::Priority_Eval_Point> & pts = _ev_control.get_eval_lop();
+        
+        // one starting point:
+        if ( pts.size() == 1 )
+        {
+            out << std::endl << "x0 eval point: ( ";
+            pts.begin()->get_point()->Point::display ( out                               ,
+                                                      " "                               ,
+                                                      2                                 ,
+                                                      NOMAD::Point::get_display_limit()   );
+            out << " )" << std::endl;
+        }
+        
+        // several starting points:
+        else
+            _ev_control.display_eval_lop ( NOMAD::X0_EVAL );
+    }
+    
+    NOMAD::success_type       success;
+    const NOMAD::Eval_Point * new_feas_inc   = NULL;
+    const NOMAD::Eval_Point * new_infeas_inc = NULL;
+    
+    // eval_list_of_points (x0):
+    // -------------------------
+    _ev_control.eval_list_of_points ( NOMAD::X0_EVAL ,
+                                     _true_barrier  ,
+                                     _sgte_barrier  ,
+                                     _pareto_front  ,
+                                     stop           ,
+                                     stop_reason    ,
+                                     new_feas_inc   ,
+                                     new_infeas_inc ,
+                                     success          );
+    if ( !stop &&
+        ( success == NOMAD::UNSUCCESSFUL      ||
+         (!new_feas_inc && !new_infeas_inc ) ||
+         ( _p.get_barrier_type() == NOMAD::EB &&
+          !get_active_barrier().get_best_feasible() ) ) )
+    {
+        stop        = true;
+        stop_reason = NOMAD::X0_FAIL;
+    }
+    
+    
+    // displays:
+    display_iteration_end ( stop           ,
+                           stop_reason    ,
+                           success        ,
+                           new_feas_inc   ,
+                           new_infeas_inc   );
+    
+    // stop the algorithm if no iterations are allowed:
+    if ( !stop && _p.get_max_iterations() == 0 )
+    {
+        stop        = true;
+        stop_reason = NOMAD::MAX_ITER_REACHED;
+    }
+    
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+        out << std::endl << NOMAD::close_block ( "end of starting point evaluation" );
 }
 
 /*---------------------------------------------------------*/
 /*                  display the Pareto front               */
 /*---------------------------------------------------------*/
 void NOMAD::Mads::display_pareto_front ( void ) const
-{   
-	if ( !_pareto_front )
-		return;
-	
-	const std::string    & stats_file_name = _p.get_stats_file_name();
-	const NOMAD::Display & out             = _p.out();
-	NOMAD::dd_type         display_degree  = out.get_gen_dd();
-	
-	// loop on the Pareto points:
-	if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
-		out << std::endl << NOMAD::open_block ( "Pareto front" ) << std::endl;
-	
-	const NOMAD::Eval_Point * cur = _pareto_front->begin();
-	while ( cur ) 
-	{
-		
-		if ( cur->is_eval_ok() && cur->is_feasible ( _p.get_h_min() ) )
-		{
-			
-			const std::list<int>           & index_obj = _p.get_index_obj();
-			std::list<int>::const_iterator   it , end  = index_obj.end();
-			const NOMAD::Point             & bbo       = cur->get_bb_outputs();
-			int                              i         = 0;
-			NOMAD::Point multi_obj ( static_cast<int>(index_obj.size()) );
-			
-			for ( it = index_obj.begin() ; it != end ; ++it )
-				multi_obj[i++] = bbo[*it];
-			
-			if ( !stats_file_name.empty() )
-				_ev_control.stats_file ( stats_file_name , cur , true , &multi_obj );
-			
-			if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY && !_p.get_display_stats().empty() )
-				_ev_control.display_stats ( false                  ,
-										   out                    ,
-										   _p.get_display_stats() ,
-										   cur                    ,
-										   true                   ,
-										   &multi_obj               );
-		} 
-		cur = _pareto_front->next();
-	}
-	
-	if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
-		out << NOMAD::close_block();
-	
-	// other stats:
-	if ( display_degree == NOMAD::FULL_DISPLAY )
-	{
-		
-		out << std::endl << "number of pts : " << _pareto_front->size() << std::endl;
-		
-		NOMAD::Double delta , surf;
-		_pareto_front->get_delta_surf ( delta , surf  ,
-									   _p.get_multi_f_bounds() ); // f1_min, f1_max,
-		// f2_min, f2_max
-		out << "delta_j       : " << delta << std::endl
-		<< "surf          : ";
-		if ( surf.is_defined() )
-			out << 100*surf << "%" << std::endl;
-		else
-			out << NOMAD::Double()
-			<< " (define valid MULTI_F_BOUNDS values to access this output)"
-			<< std::endl;
-	}
-	else if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
-		out << std::endl << "number of Pareto points: " << _pareto_front->size()
-		<< std::endl;
+{
+    if ( !_pareto_front )
+        return;
+    
+    const std::string    & stats_file_name = _p.get_stats_file_name();
+    const NOMAD::Display & out             = _p.out();
+    NOMAD::dd_type         display_degree  = out.get_gen_dd();
+    
+    // loop on the Pareto points:
+    if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+        out << std::endl << NOMAD::open_block ( "Pareto front" ) << std::endl;
+    
+    const NOMAD::Eval_Point * cur = _pareto_front->begin();
+    while ( cur )
+    {
+        
+        if ( cur->is_eval_ok() && cur->is_feasible ( _p.get_h_min() ) )
+        {
+            
+            const std::list<int>           & index_obj = _p.get_index_obj();
+            std::list<int>::const_iterator   it , end  = index_obj.end();
+            const NOMAD::Point             & bbo       = cur->get_bb_outputs();
+            int                              i         = 0;
+            NOMAD::Point multi_obj ( static_cast<int>(index_obj.size()) );
+            
+            for ( it = index_obj.begin() ; it != end ; ++it )
+                multi_obj[i++] = bbo[*it];
+            
+            if ( !stats_file_name.empty() )
+                _ev_control.stats_file ( stats_file_name , cur , true , &multi_obj );
+            
+            if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY && !_p.get_display_stats().empty() )
+                _ev_control.display_stats ( false                  ,
+                                           out                    ,
+                                           _p.get_display_stats() ,
+                                           cur                    ,
+                                           true                   ,
+                                           &multi_obj               );
+        }
+        cur = _pareto_front->next();
+    }
+    
+    if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+        out << NOMAD::close_block();
+    
+    // other stats:
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
+        
+        out << std::endl << "number of pts : " << _pareto_front->size() << std::endl;
+        
+        NOMAD::Double delta , surf;
+        _pareto_front->get_delta_surf ( delta , surf  ,
+                                       _p.get_multi_f_bounds() ); // f1_min, f1_max,
+        // f2_min, f2_max
+        out << "delta_j       : " << delta << std::endl
+        << "surf          : ";
+        if ( surf.is_defined() )
+            out << 100*surf << "%" << std::endl;
+        else
+            out << NOMAD::Double()
+            << " (define valid MULTI_F_BOUNDS values to access this output)"
+            << std::endl;
+    }
+    else if ( display_degree != NOMAD::NO_DISPLAY && display_degree != NOMAD::MINIMAL_DISPLAY)
+        out << std::endl << "number of Pareto points: " << _pareto_front->size()
+        << std::endl;
 }
 
 /*---------------------------------------------------------*/
@@ -3416,168 +3517,168 @@ void NOMAD::Mads::display_pareto_front ( void ) const
 /*---------------------------------------------------------*/
 void NOMAD::Mads::display ( const NOMAD::Display & out ) const
 {
-	NOMAD::dd_type display_degree = out.get_gen_dd();
-	
-	if ( !NOMAD::Slave::is_master() )
-		return;
-	
-	// 0. no display:
-	// --------------
-	if ( display_degree == NOMAD::NO_DISPLAY || display_degree == NOMAD::MINIMAL_DISPLAY) 
-	{
-		
-		// there may be a pareto front to write as a stats file:
-		if ( _pareto_front           &&
-			!_pareto_front->empty() &&
-			!_p.get_stats_file_name().empty() )
-			display_pareto_front();
-		
-		return;
-	}
-	
-	// incumbents:
-	const NOMAD::Eval_Point * bf = get_best_feasible();
-	const NOMAD::Eval_Point * bi = get_best_infeasible();
-	const NOMAD::Eval_Point *bimv = get_best_infeasible_min_viol();
-	
-	// save the solution file:
-	if ( bf ) 
-		_ev_control.write_solution_file ( *bf , false);
-	else if (bimv)
-		_ev_control.write_solution_file ( *bimv , true );
-	
-	
-	
-	// 1. detailed display:
-	// --------------------
-	if ( display_degree == NOMAD::FULL_DISPLAY ) 
-	{
-		
-		// cache:
-		out << std::endl
-		<< NOMAD::open_block ( "cache" )
-		<< ( _p.get_opt_only_sgte() ? _ev_control.get_sgte_cache() : _ev_control.get_cache() )
-		<< NOMAD::close_block();
-		
-		// constraints:
-		if ( _p.has_constraints() )
-			out << std::endl
-			<< NOMAD::open_block ( "constraints handling") << std::endl
-			<< get_active_barrier()
-			<< NOMAD::close_block();
-		
-		// Pareto front:
-		if ( _pareto_front )
-		{
-			if ( _pareto_front->empty() )
-				out << std::endl << "Pareto front empty" << std::endl;
-			else
-				display_pareto_front();
-		}
-		
-		// stats:
-		out << std::endl
-		<< NOMAD::open_block ( "stats" )
-		<< _stats
-		<< NOMAD::close_block();
-		
-		// model stats:
+    NOMAD::dd_type display_degree = out.get_gen_dd();
+    
+    if ( !NOMAD::Slave::is_master() )
+        return;
+    
+    // 0. no display:
+    // --------------
+    if ( display_degree == NOMAD::NO_DISPLAY || display_degree == NOMAD::MINIMAL_DISPLAY)
+    {
+        
+        // there may be a pareto front to write as a stats file:
+        if ( _pareto_front           &&
+            !_pareto_front->empty() &&
+            !_p.get_stats_file_name().empty() )
+            display_pareto_front();
+        
+        return;
+    }
+    
+    // incumbents:
+    const NOMAD::Eval_Point * bf = get_best_feasible();
+    const NOMAD::Eval_Point * bi = get_best_infeasible();
+    const NOMAD::Eval_Point *bimv = get_best_infeasible_min_viol();
+    
+    // save the solution file:
+    if ( bf )
+        _ev_control.write_solution_file ( *bf , false);
+    else if (bimv)
+        _ev_control.write_solution_file ( *bimv , true );
+    
+    
+    
+    // 1. detailed display:
+    // --------------------
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
+        
+        // cache:
+        out << std::endl
+        << NOMAD::open_block ( "cache" )
+        << ( _p.get_opt_only_sgte() ? _ev_control.get_sgte_cache() : _ev_control.get_cache() )
+        << NOMAD::close_block();
+        
+        // constraints:
+        if ( _p.has_constraints() )
+            out << std::endl
+            << NOMAD::open_block ( "constraints handling") << std::endl
+            << get_active_barrier()
+            << NOMAD::close_block();
+        
+        // Pareto front:
+        if ( _pareto_front )
+        {
+            if ( _pareto_front->empty() )
+                out << std::endl << "Pareto front empty" << std::endl;
+            else
+                display_pareto_front();
+        }
+        
+        // stats:
+        out << std::endl
+        << NOMAD::open_block ( "stats" )
+        << _stats
+        << NOMAD::close_block();
+        
+        // model stats:
 #ifdef DEBUG
-		display_model_stats ( out );
+        display_model_stats ( out );
 #endif
-		
-		// miscellaneous:
-		if ( !_pareto_front )
-		{
-			out << std::endl
-			<< NOMAD::open_block ( "miscellaneous" )
-			<< "mesh indices                             : min= ("
-			<< _mesh->get_min_mesh_indices() << " ), max = ("
-			<< _mesh->get_max_mesh_indices() << " ), last= ( "
-			<< _mesh->get_mesh_indices() << " ) " << std::endl;
-			
-			if ( bimv ) 
-			{
-				out << "best infeasible solution (min. violation): ( ";
-				bimv->Point::display ( out , " " , -1 , -1 );
-				out << " ) h=" << bimv->get_h()
-				<< " f="  << bimv->get_f() << std::endl;
-			}
-			
-			out << "best feasible solution                   : ";
-			
-			if ( bf )
-			{
-				out << "( ";
-				bf->Point::display ( out , " " , -1 , -1 );
-				out << " ) h=" << bf->get_h()
-				<< " f="  << bf->get_f() << std::endl;
-			}
-			else
-				out << "no feasible solution has been found" << std::endl;
-			
-			
-			out.close_block();
-		}
-	}
-	
-	// 2. normal display:
-	// ------------------
-	else
-	{
-		
-		// blackbox evaluations:
-		out << std::endl
-		<< "blackbox evaluations                     : " << _stats.get_bb_eval() << std::endl;
-		
-		// output stats:
-		if ( _stats.get_stat_sum().is_defined() )
-			out << "stat sum                                 : " << _stats.get_stat_sum() << std::endl;
-		if ( _stats.get_stat_avg().is_defined() )
-			out << "stat avg                                 : " << _stats.get_stat_avg() << std::endl;
-		
-		// Pareto front (multi-objective optimization):
-		if ( _pareto_front ) 
-		{
-			out << "number of MADS runs                      : " << _stats.get_mads_runs() << std::endl;
-			if ( _pareto_front->empty() )
-				out << "Pareto front                             : empty" << std::endl;
-			else
-				display_pareto_front();
-		}
-		
-		// single-objective optimization (display of best solutions):
-		else 
-		{
-			
-			if ( !bf && !bi )
-				out << "no solution" << std::endl;
-			else
-			{
-				if ( bimv ) 
-				{
-					out << "best infeasible solution (min. violation): ( ";
-					bimv->Point::display ( out , " " , -1 , -1 );
-					out << " ) h=" << bimv->get_h()
-					<< " f="  << bimv->get_f() << std::endl;
-				}
-				
-				out << "best feasible solution                   : ";
-				
-				if ( bf )
-				{
-					out << "( ";
-					bf->Point::display ( out , " " , -1 , -1 );
-					out << " ) h=" << bf->get_h()
-					<< " f="  << bf->get_f() << std::endl;
-				}
-				else
-					out << "no feasible solution has been found" << std::endl;
-				
-			}
-		}
-		out.close_block();
-	}
+        
+        // miscellaneous:
+        if ( !_pareto_front )
+        {
+            out << std::endl
+            << NOMAD::open_block ( "miscellaneous" )
+            << "mesh indices                             : min= ("
+            << _mesh->get_min_mesh_indices() << " ), max = ("
+            << _mesh->get_max_mesh_indices() << " ), last= ( "
+            << _mesh->get_mesh_indices() << " ) " << std::endl;
+            
+            if ( bimv )
+            {
+                out << "best infeasible solution (min. violation): ( ";
+                bimv->Point::display ( out , " " , -1 , -1 );
+                out << " ) h=" << bimv->get_h()
+                << " f="  << bimv->get_f() << std::endl;
+            }
+            
+            out << "best feasible solution                   : ";
+            
+            if ( bf )
+            {
+                out << "( ";
+                bf->Point::display ( out , " " , -1 , -1 );
+                out << " ) h=" << bf->get_h()
+                << " f="  << bf->get_f() << std::endl;
+            }
+            else
+                out << "no feasible solution has been found" << std::endl;
+            
+            
+            out.close_block();
+        }
+    }
+    
+    // 2. normal display:
+    // ------------------
+    else
+    {
+        
+        // blackbox evaluations:
+        out << std::endl
+        << "blackbox evaluations                     : " << _stats.get_bb_eval() << std::endl;
+        
+        // output stats:
+        if ( _stats.get_stat_sum().is_defined() )
+            out << "stat sum                                 : " << _stats.get_stat_sum() << std::endl;
+        if ( _stats.get_stat_avg().is_defined() )
+            out << "stat avg                                 : " << _stats.get_stat_avg() << std::endl;
+        
+        // Pareto front (multi-objective optimization):
+        if ( _pareto_front )
+        {
+            out << "number of MADS runs                      : " << _stats.get_mads_runs() << std::endl;
+            if ( _pareto_front->empty() )
+                out << "Pareto front                             : empty" << std::endl;
+            else
+                display_pareto_front();
+        }
+        
+        // single-objective optimization (display of best solutions):
+        else
+        {
+            
+            if ( !bf && !bi )
+                out << "no solution" << std::endl;
+            else
+            {
+                if ( bimv )
+                {
+                    out << "best infeasible solution (min. violation): ( ";
+                    bimv->Point::display ( out , " " , -1 , -1 );
+                    out << " ) h=" << bimv->get_h()
+                    << " f="  << bimv->get_f() << std::endl;
+                }
+                
+                out << "best feasible solution                   : ";
+                
+                if ( bf )
+                {
+                    out << "( ";
+                    bf->Point::display ( out , " " , -1 , -1 );
+                    out << " ) h=" << bf->get_h()
+                    << " f="  << bf->get_f() << std::endl;
+                }
+                else
+                    out << "no feasible solution has been found" << std::endl;
+                
+            }
+        }
+        out.close_block();
+    }
 }
 
 /*---------------------------------------------------------*/
@@ -3585,17 +3686,18 @@ void NOMAD::Mads::display ( const NOMAD::Display & out ) const
 /*---------------------------------------------------------*/
 void NOMAD::Mads::display_model_stats ( const NOMAD::Display & out ) const
 {
-	if ( _model_search1 )
-		out << std::endl << NOMAD::open_block ( "model search #1 stats" )
-		<< *_model_search1 << NOMAD::close_block();
-	if ( _model_search2 )
-		out << std::endl << NOMAD::open_block ( "model search #2 stats" )
-		<< *_model_search2 << NOMAD::close_block();
-	if ( _p.get_model_eval_sort() != NOMAD::NO_MODEL ) {
-		out << std::endl << NOMAD::open_block ( "model ordering stats" );
-		_ev_control.display_model_ordering_stats ( out );
-		out << NOMAD::close_block();
-	}
+    if ( _model_search1 )
+        out << std::endl << NOMAD::open_block ( "model search #1 stats" )
+        << *_model_search1 << NOMAD::close_block();
+    if ( _model_search2 )
+        out << std::endl << NOMAD::open_block ( "model search #2 stats" )
+        << *_model_search2 << NOMAD::close_block();
+    if ( _p.get_model_eval_sort() != NOMAD::NO_MODEL )
+    {
+        out << std::endl << NOMAD::open_block ( "model ordering stats" );
+        _ev_control.display_model_ordering_stats ( out );
+        out << NOMAD::close_block();
+    }
 }
 
 /*---------------------------------------------------------*/
@@ -3604,16 +3706,16 @@ void NOMAD::Mads::display_model_stats ( const NOMAD::Display & out ) const
 /*---------------------------------------------------------*/
 void NOMAD::Mads::display_deltas ( const NOMAD::Signature & s ) const
 {
-	
-	NOMAD::Point delta,Delta;
-	
-	_mesh->get_delta(delta);
-	_mesh->get_Delta(Delta);
-	if (delta.is_defined() && Delta.is_defined())
-		_p.out() << "mesh size            : ( " << delta << " )" << std::endl
-		         << "poll size            : ( " << Delta << " )" << std::endl
-		         << "mesh indices         : ( " << _mesh->get_mesh_indices() << " )" << std::endl;
-	
+    
+    NOMAD::Point delta,Delta;
+    
+    _mesh->get_delta(delta);
+    _mesh->get_Delta(Delta);
+    if (delta.is_defined() && Delta.is_defined())
+        _p.out() << "mesh size            : ( " << delta << " )" << std::endl
+        << "poll size            : ( " << Delta << " )" << std::endl
+        << "mesh indices         : ( " << _mesh->get_mesh_indices() << " )" << std::endl;
+    
 }
 
 /*-------------------------------------------------------*/
@@ -3621,110 +3723,118 @@ void NOMAD::Mads::display_deltas ( const NOMAD::Signature & s ) const
 /*-------------------------------------------------------*/
 void NOMAD::Mads::display_iteration_begin ( void ) const
 {
-	const NOMAD::Display & out = _p.out();
-	if ( out.get_iter_dd() != NOMAD::FULL_DISPLAY )
-		return;
-	
-	// incumbents:
-	const NOMAD::Eval_Point * bf = get_best_feasible();
-	const NOMAD::Eval_Point * bi = get_best_infeasible();
-	const NOMAD::Signature  * s1 = NULL;
-	
-	out << "blackbox evaluations : " << _stats.get_bb_eval() << std::endl;
+    const NOMAD::Display & out = _p.out();
+    if ( out.get_iter_dd() != NOMAD::FULL_DISPLAY )
+        return;
+    
+    // incumbents:
+    const NOMAD::Eval_Point * bf = get_best_feasible();
+    const NOMAD::Eval_Point * bi = get_best_infeasible();
+    const NOMAD::Signature  * s1 = NULL;
+    
+    out << "blackbox evaluations : " << _stats.get_bb_eval() << std::endl;
 #ifdef USE_MPI
-	if ( _p.get_asynchronous() )
-		out << "eval. in progress    : " << _ev_control.get_nb_eval_in_progress()
-		<< std::endl;
+    if ( _p.get_asynchronous() )
+        out << "eval. in progress    : " << _ev_control.get_nb_eval_in_progress()
+        << std::endl;
 #endif
-	out << "best feas. solution  : ";
-	if ( bf ) {
-		out << "( ";
-		bf->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-		out << " ) h=" << bf->get_h()
-		<< " f="   << bf->get_f()
-		<< std::endl;
-	}
-	else
-		out << "none" << std::endl;
-	out << "best infeas. solution: ";
-	if ( bi ) {
-		out << "( ";
-		bi->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-		out << " ) h=" << bi->get_h()
-		<< " f="   << bi->get_f()
-		<< std::endl;
-	}
-	else
-		out << "none" << std::endl;
-	
-	out << "poll center          : ";
-	const NOMAD::Eval_Point * poll_center = get_active_barrier().get_poll_center();
-	if ( poll_center ) {
-		out << "( ";
-		poll_center->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-		out << " )" << std::endl;
-		
-		s1 = poll_center->get_signature();
-		if (s1)
-			display_deltas ( *s1 );
-	}
-	else
-		out << "none" << std::endl;
-	
-	const NOMAD::Eval_Point * sec_poll_center
+    out << "best feas. solution  : ";
+    if ( bf )
+    {
+        out << "( ";
+        bf->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
+        out << " ) h=" << bf->get_h()
+        << " f="   << bf->get_f()
+        << std::endl;
+    }
+    else
+        out << "none" << std::endl;
+    out << "best infeas. solution: ";
+    if ( bi )
+    {
+        out << "( ";
+        bi->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
+        out << " ) h=" << bi->get_h()
+        << " f="   << bi->get_f()
+        << std::endl;
+    }
+    else
+        out << "none" << std::endl;
+    
+    out << "poll center          : ";
+    const NOMAD::Eval_Point * poll_center = get_active_barrier().get_poll_center();
+    if ( poll_center )
+    {
+        out << "( ";
+        poll_center->Point::display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
+        out << " )" << std::endl;
+        
+        s1 = poll_center->get_signature();
+        if (s1)
+            display_deltas ( *s1 );
+    }
+    else
+        out << "none" << std::endl;
+    
+    const NOMAD::Eval_Point * sec_poll_center
     = get_active_barrier().get_sec_poll_center();
-	
-	if ( sec_poll_center ) {
-		out << "sec. poll center     : ( ";
-		sec_poll_center->Point::display ( out                               ,
-										 " "                               ,
-										 2                                 ,
-										 NOMAD::Point::get_display_limit()   );
-		out << " )" << std::endl;
-		const NOMAD::Signature * s2 = sec_poll_center->get_signature();
-		if ( s2 && (!s1 || s1 != s2) )
-			display_deltas ( *s2 );
-	}
-	out << "h_max                : "
-	<< get_active_barrier().get_h_max() << std::endl;
+    
+    if ( sec_poll_center )
+    {
+        out << "sec. poll center     : ( ";
+        sec_poll_center->Point::display ( out                               ,
+                                         " "                               ,
+                                         2                                 ,
+                                         NOMAD::Point::get_display_limit()   );
+        out << " )" << std::endl;
+        const NOMAD::Signature * s2 = sec_poll_center->get_signature();
+        if ( s2 && (!s1 || s1 != s2) )
+            display_deltas ( *s2 );
+    }
+    
+    out << "h_max                : "
+    << get_active_barrier().get_h_max() << std::endl;
 }
 
 /*---------------------------------------------------------*/
 /*       displays at the end of an iteration (private)     */
 /*---------------------------------------------------------*/
-void NOMAD::Mads::display_iteration_end
-( bool                      stop           ,
- NOMAD::stop_type          stop_reason    ,
- NOMAD::success_type       success        ,
- const NOMAD::Eval_Point * new_feas_inc   ,
- const NOMAD::Eval_Point * new_infeas_inc   ) const
+void NOMAD::Mads::display_iteration_end ( bool                      stop           ,
+                                         NOMAD::stop_type          stop_reason    ,
+                                         NOMAD::success_type       success        ,
+                                         const NOMAD::Eval_Point * new_feas_inc   ,
+                                         const NOMAD::Eval_Point * new_infeas_inc   ) const
 {
-	const NOMAD::Display & out = _p.out();
-	
-	if ( out.get_iter_dd() != NOMAD::FULL_DISPLAY )
-		return;
-	
-	out << std::endl
-	<< "terminate MADS       : ";
-	out.display_yes_or_no ( stop );
-	out << std::endl;
-	if ( stop ) {
-		out << "termination cause    : " << stop_reason;
-		if ( stop_reason==NOMAD::X0_FAIL &&
-			!_flag_p1_active            &&
-			_p.has_EB_constraints()        )
-			out << " (phase one will be performed)";
-		out << std::endl;
-	}
-	out << "iteration status     : " << success << std::endl;
-	out << "new feas. incumbent  : ";
-	if ( new_feas_inc )
-		out << *new_feas_inc;
-	else
-		out << "none" << std::endl;
-	out << "new infeas. incumbent: ";
-	if ( new_infeas_inc )
-		out << *new_infeas_inc;
-	else
-		out << "none" << std::endl;
+    const NOMAD::Display & out = _p.out();
+    
+    if ( out.get_iter_dd() != NOMAD::FULL_DISPLAY )
+        return;
+    
+    out << std::endl
+    << "terminate MADS       : ";
+    out.display_yes_or_no ( stop );
+    out << std::endl;
+    if ( stop )
+    {
+        out << "termination cause    : " << stop_reason;
+        if ( stop_reason==NOMAD::X0_FAIL &&
+            !_flag_p1_active            &&
+            _p.has_EB_constraints()        )
+            out << " (phase one will be performed)";
+        out << std::endl;
+    }
+    out << "iteration status     : " << success << std::endl;
+    out << "new feas. incumbent  : ";
+    if ( new_feas_inc )
+        out << *new_feas_inc;
+    else
+        out << "none" << std::endl;
+    out << "new infeas. incumbent: ";
+    if ( new_infeas_inc )
+        out << *new_infeas_inc;
+    else
+        out << "none" << std::endl;
+    
 }
+
+
diff --git a/src/Mads.hpp b/src/Mads.hpp
index c44819e..f3b0b26 100644
--- a/src/Mads.hpp
+++ b/src/Mads.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -55,9 +62,6 @@
 #include "XMesh.hpp"
 #include "SMesh.hpp"
 
-#ifdef USE_TGP
-#include "TGP_Model_Search.hpp"
-#endif
 
 namespace NOMAD {
     
@@ -78,6 +82,7 @@ namespace NOMAD {
         NOMAD::Barrier           _true_barrier;  ///< Barrier for true function evaluations.
         NOMAD::Barrier           _sgte_barrier;  ///< Barrier for surrogate evaluations.
         
+        
         NOMAD::OrthogonalMesh * _mesh;   ///< Access to the OrthogonalMesh
         
         /// Pareto front for multi-objective optimization.
@@ -102,6 +107,8 @@ namespace NOMAD {
         static bool _flag_reset_barriers; ///< Reset or not the barriers before a MADS run.
         static bool _flag_p1_active;      ///< Flag equal to \c true if phase one is active.
         
+        
+        
         /*-----------------------------------------------------------------------------*/
         
         /// Initializations.
@@ -153,12 +160,12 @@ namespace NOMAD {
          size stopping criterion has to be
          disabled for integer variables -- \b OUT.
          */
-        void poll ( bool					& stop,
-                   NOMAD::stop_type		& stop_reason,
-                   NOMAD::success_type		& success,
-                   const NOMAD::Eval_Point *& new_feas_inc,
+        void poll ( bool                    & stop          ,
+                   NOMAD::stop_type         & stop_reason   ,
+                   NOMAD::success_type      & success       ,
+                   const NOMAD::Eval_Point *& new_feas_inc  ,
                    const NOMAD::Eval_Point *& new_infeas_inc,
-                   bool					& forbid_poll_size_stop   );
+                   bool                     & forbid_poll_size_stop   );
         
         /// Sets the poll trial points from poll direction, poll center and mesh size
         /**
@@ -169,12 +176,12 @@ namespace NOMAD {
          \param  offset        Dir index offset for primary and sec. poll center -- \b IN.
          \param  sorting       If true than the points are for sorting           -- \b IN.
          */
-        void set_poll_trial_points (  std::list<NOMAD::Direction> & dirs,
-                                    size_t                           offset,
-                                    const NOMAD::Eval_Point     &  poll_center,
-                                    bool					    	& stop,
-                                    NOMAD::stop_type				&stop_reason,
-                                    bool							sorting);
+        void set_poll_trial_points (  std::list<NOMAD::Direction>   & dirs          ,
+                                    size_t                            offset        ,
+                                    const NOMAD::Eval_Point         & poll_center   ,
+                                    bool                            & stop          ,
+                                    NOMAD::stop_type                & stop_reason   ,
+                                    bool                              sorting       );
         
         
         /// Compute a prospect point by optimization on quadratic models.
@@ -184,19 +191,19 @@ namespace NOMAD {
          \param  prospect_point  The prospect point  -- \b OUT.
          \return A flag equal to \c true if the prospect direction has been computed.
          */
-        bool optimize_quad_model ( const NOMAD::Eval_Point         & poll_center ,
-                                  const std::list<NOMAD::Direction> & dirs    ,
-                                  NOMAD::Point                    & prospect_point    )  ;
+        bool optimize_quad_model ( const NOMAD::Eval_Point          & poll_center   ,
+                                  const std::list<NOMAD::Direction> & dirs          ,
+                                  NOMAD::Point                      & prospect_point)  ;
         
         
         /// Sets the poll directions from signature, poll center and mesh size
         /**
-         \param dirs			List of directions for the poll			          -- \b OUT.
-         \param i_pc			Poll type                                         -- \b IN.
-         \param offset		Dir index offset for primary and sec. poll center -- \b IN.
-         \param poll_center   The poll center                                   -- \b IN.
-         \param stop 			Stop flag, true if cannot get direction   		  -- \b IN/OUT.
-         \param stop_reason	Stop type										  -- \b OUT.
+         \param dirs            List of directions for the poll                     -- \b OUT.
+         \param i_pc            Poll type                                           -- \b IN.
+         \param offset          Dir index offset for primary and sec. poll center   -- \b IN.
+         \param poll_center     The poll center                                     -- \b IN.
+         \param stop            Stop flag, true if cannot get direction             -- \b IN/OUT.
+         \param stop_reason     Stop type                                           -- \b OUT.
          */
         void set_poll_directions ( std::list<NOMAD::Direction> & dirs        ,
                                   NOMAD::poll_type              i_pc        ,
@@ -205,14 +212,27 @@ namespace NOMAD {
                                   bool                        & stop        ,
                                   NOMAD::stop_type            & stop_reason   );
         
+        
+        /// Sets the poll intensification points from signature, poll center and mesh size
+        /**
+         \param poll_center     The poll center                                 -- \b IN.
+         \param offset          Dir index offset for intensification            -- \b IN.
+         \param stop            Stop flag, true if cannot get direction         -- \b IN/OUT.
+         \param stop_reason     Stop type                                       -- \b OUT.
+         */
+        void set_poll_intensification_points ( const NOMAD::Eval_Point    & poll_center ,
+                                              size_t                      & offset      ,
+                                              bool                        & stop        ,
+                                              NOMAD::stop_type            & stop_reason );
+        
         /// Reduce the number of poll directions -> n
         /**
-         \param dirs			List of directions for the poll			-- \b IN/OUT.
-         \param  poll_center   the poll center                         -- \b IN.
+         \param dirs            List of directions for the poll        -- \b IN/OUT.
+         \param  poll_center    The poll center                         -- \b IN.
          \return success for this step.
          */
-        bool set_reduced_poll_to_n_directions(std::list<NOMAD::Direction>	& dirs,
-                                              const NOMAD::Eval_Point		& poll_center);
+        bool set_reduced_poll_to_n_directions(std::list<NOMAD::Direction>   & dirs,
+                                              const NOMAD::Eval_Point       & poll_center);
         
         /// Compute the rank of a list of directions
         /**
@@ -299,13 +319,13 @@ namespace NOMAD {
         /**
          - The computed opposite directions already include Delta^k_m.
          \param dirs          List of existing directions (no snap to bounds) -- \b IN.
-         \param newDirs		New dynamic directions              -- \b OUT.
+         \param newDirs       New dynamic directions              -- \b OUT.
          \param poll_center   Poll center                         -- \b IN.
          \return true if new dynamic direction generated false otherwise
          */
-        bool get_dynamic_directions (const std::list<NOMAD::Direction>	&	dirs,
-                                     std::list<NOMAD::Direction>			&	newDirs,
-                                     const NOMAD::Eval_Point				&	poll_center) ;
+        bool get_dynamic_directions (const std::list<NOMAD::Direction> & dirs,
+                                     std::list<NOMAD::Direction>       & newDirs,
+                                     const NOMAD::Eval_Point           & poll_center) ;
         
         
         
@@ -316,7 +336,7 @@ namespace NOMAD {
          least one direction in the set is
          of type Ortho-MADS N+1.
          */
-        bool dirs_have_orthomads_np1 ( const std::list<NOMAD::Direction> & dirs );
+        bool dirs_have_orthomads_np1_dyn ( const std::list<NOMAD::Direction> & dirs );
         
         
         ///  Check if a dir needs to be obtained from model optimization
@@ -329,12 +349,12 @@ namespace NOMAD {
         
         /// get a single direction using quad model optimization or sum of negatives
         /**
-         \param dirs			Reduced poll directions	(no snap to bounds)	-- \b IN.
-         \param poll_center	Poll center								    -- \b IN.
+         \param dirs           Reduced poll directions (no snap to bounds)    -- \b IN.
+         \param poll_center    Poll center                                    -- \b IN.
          \return new direction
          */
-        NOMAD::Direction get_single_dynamic_direction (const std::list<NOMAD::Direction>	&	dirs,
-                                                       const NOMAD::Eval_Point			&	poll_center) ;
+        NOMAD::Direction get_single_dynamic_direction (const std::list<NOMAD::Direction>  & dirs,
+                                                       const NOMAD::Eval_Point            & poll_center) ;
         
         
         /*-----------------------------------------------------------------------------*/
@@ -355,7 +375,7 @@ namespace NOMAD {
         _ev_control_for_sorting( p , _stats , _ev_control.get_evaluator() , &(_ev_control.get_cache()) , &(_ev_control.get_sgte_cache()) ) ,
         _true_barrier          ( p , NOMAD::TRUTH              ) ,
         _sgte_barrier          ( p , NOMAD::SGTE               ) ,
-        _mesh				   ( p.get_signature()->get_mesh() ) ,
+        _mesh                  ( p.get_signature()->get_mesh() ) ,
         _pareto_front          ( NULL                          ) ,
         _user_search           ( NULL                          ) ,
         _model_search1         ( NULL                          ) ,
@@ -388,7 +408,7 @@ namespace NOMAD {
         _ev_control_for_sorting( p , _stats , _ev_control.get_evaluator() , cache , sgte_cache ) ,
         _true_barrier          ( p , NOMAD::TRUTH                     ) ,
         _sgte_barrier          ( p , NOMAD::SGTE                      ) ,
-        _mesh                  ( p.get_signature()->get_mesh()		  ) ,
+        _mesh                  ( p.get_signature()->get_mesh()        ) ,
         _pareto_front          ( NULL                                 ) ,
         _user_search           ( NULL                                 ) ,
         _model_search1         ( NULL                                 ) ,
@@ -406,7 +426,7 @@ namespace NOMAD {
         /**
          \return Stop reason.
          */
-        NOMAD::stop_type run ( void );
+        virtual NOMAD::stop_type run ( void );
         
         /// Algorithm execution for multi-objective.
         /**
diff --git a/src/Makefile.am b/src/Makefile.am
index 2ffa641..02e435d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -9,9 +9,7 @@ libnomad_a_SOURCES = Barrier.cpp Cache.cpp Cache_File_Point.cpp Cache_Point.cpp\
 	Phase_One_Search.cpp Point.cpp Priority_Eval_Point.cpp Quad_Model.cpp\
 	Quad_Model_Evaluator.cpp Quad_Model_Search.cpp Random_Pickup.cpp\
 	RNG.cpp Signature.cpp Slave.cpp Speculative_Search.cpp Stats.cpp\
-	TGP_Model.cpp TGP_Model_Evaluator.cpp TGP_Model_Search.cpp\
-	TGP_Output_Model.cpp utils.cpp Variable_Group.cpp VNS_Search.cpp\
-	OrthogonalMesh.cpp
+	utils.cpp Variable_Group.cpp VNS_Search.cpp OrthogonalMesh.cpp
 
 libnomadmpi_a_SOURCES = Barrier.cpp Cache.cpp Cache_File_Point.cpp Cache_Point.cpp\
 	Cache_Search.cpp Clock.cpp Direction.cpp Directions.cpp Display.cpp\
@@ -23,9 +21,7 @@ libnomadmpi_a_SOURCES = Barrier.cpp Cache.cpp Cache_File_Point.cpp Cache_Point.c
 	Phase_One_Search.cpp Point.cpp Priority_Eval_Point.cpp Quad_Model.cpp\
 	Quad_Model_Evaluator.cpp Quad_Model_Search.cpp Random_Pickup.cpp\
 	RNG.cpp Signature.cpp Slave.cpp Speculative_Search.cpp Stats.cpp\
-	TGP_Model.cpp TGP_Model_Evaluator.cpp TGP_Model_Search.cpp\
-	TGP_Output_Model.cpp utils.cpp Variable_Group.cpp VNS_Search.cpp\
-	OrthogonalMesh.cpp
+	utils.cpp Variable_Group.cpp VNS_Search.cpp OrthogonalMesh.cpp
 	
 pkginclude_HEADERS = Cache_File_Point.hpp Cache.hpp Cache_Point.hpp\
 	Cache_Search.hpp Clock.hpp defines.hpp Direction.hpp Directions.hpp\
@@ -40,8 +36,7 @@ pkginclude_HEADERS = Cache_File_Point.hpp Cache.hpp Cache_Point.hpp\
 	Quad_Model_Search.hpp Random_Pickup.hpp RNG.hpp Search.hpp\
 	Set_Element.hpp Signature_Element.hpp Signature.hpp\
 	Single_Obj_Quad_Model_Evaluator.hpp Slave.hpp Speculative_Search.hpp\
-	Stats.hpp TGP_Model_Evaluator.hpp TGP_Model.hpp TGP_Model_Search.hpp\
-	TGP_Output_Model.hpp Uncopyable.hpp utils.hpp Variable_Group.hpp\
+	Stats.hpp TGP_Model_Evaluator.hpp Uncopyable.hpp utils.hpp Variable_Group.hpp\
 	VNS_Search.hpp Barrier.hpp OrthogonalMesh.hpp
 
 bin_PROGRAMS = nomad
diff --git a/src/Model_Sorted_Point.cpp b/src/Model_Sorted_Point.cpp
index 1afbbdb..a37d68f 100644
--- a/src/Model_Sorted_Point.cpp
+++ b/src/Model_Sorted_Point.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,55 +41,58 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Model_Sorted_Point.cpp
-  \brief  Interpolation point with distance to model center (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-11-15
-  \see    Model_Sorted_Point.hpp
-*/
+ \file   Model_Sorted_Point.cpp
+ \brief  Interpolation point with distance to model center (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-11-15
+ \see    Model_Sorted_Point.hpp
+ */
 #include "Model_Sorted_Point.hpp"
 
 /*---------------------------------------------------------*/
 /*                        constructor                      */
 /*---------------------------------------------------------*/
-NOMAD::Model_Sorted_Point::Model_Sorted_Point
-( NOMAD::Point * x , const NOMAD::Point & center ) : _x(x)
+NOMAD::Model_Sorted_Point::Model_Sorted_Point ( NOMAD::Point * x ,
+                                               const NOMAD::Point & center ) : _x(x)
 {
-  int i , n = center.size();
-  if ( x && x->size() == n ) {
-    _dist = 0.0;
-    for ( i = 0 ; i < n ; ++i )
-      if ( (*x)[i].is_defined() && center[i].is_defined() ) {
-	_dist += ( (*x)[i] - center[i] ).pow2();
-      }
-      else {
-	_dist.clear();
-	break;
-      }
-  }
+    int i , n = center.size();
+    if ( x && x->size() == n )
+    {
+        _dist = 0.0;
+        for ( i = 0 ; i < n ; ++i )
+            if ( (*x)[i].is_defined() && center[i].is_defined() )
+            {
+                _dist += ( (*x)[i] - center[i] ).pow2();
+            }
+            else
+            {
+                
+                _dist.clear();
+                break;
+            }
+    }
 }
 
 /*---------------------------------------------------------*/
 /*                   affectation operator                  */
 /*---------------------------------------------------------*/
-NOMAD::Model_Sorted_Point & NOMAD::Model_Sorted_Point::operator =
-( const NOMAD::Model_Sorted_Point & x )
+NOMAD::Model_Sorted_Point & NOMAD::Model_Sorted_Point::operator = ( const NOMAD::Model_Sorted_Point & x )
 {
-  _x    = x._x;
-  _dist = x._dist;
-  return *this;
+    _x    = x._x;
+    _dist = x._dist;
+    return *this;
 }
 
 /*---------------------------------------------------------*/
 /*                    comparison operator                  */
 /*---------------------------------------------------------*/
-bool NOMAD::Model_Sorted_Point::operator <
-( const Model_Sorted_Point & x ) const
+bool NOMAD::Model_Sorted_Point::operator < ( const Model_Sorted_Point & x ) const
 {
-  if ( _dist.is_defined() ) {
-    if ( !x._dist.is_defined() )
-      return true;
-    return _dist < x._dist;
-  }
-  return false;
+    if ( _dist.is_defined() )
+    {
+        if ( !x._dist.is_defined() )
+            return true;
+        return _dist < x._dist;
+    }
+    return false;
 }
diff --git a/src/Model_Sorted_Point.hpp b/src/Model_Sorted_Point.hpp
index c1e1a7c..1cd2e08 100644
--- a/src/Model_Sorted_Point.hpp
+++ b/src/Model_Sorted_Point.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,80 +41,80 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Model_Sorted_Point.hpp
-  \brief  Interpolation point with distance to model center (headers)
-  \author Sebastien Le Digabel
-  \date   2010-11-15
-  \see    Model_Sorted_Point.cpp
-*/
+ \file   Model_Sorted_Point.hpp
+ \brief  Interpolation point with distance to model center (headers)
+ \author Sebastien Le Digabel
+ \date   2010-11-15
+ \see    Model_Sorted_Point.cpp
+ */
 #ifndef __MODEL_SORTED_POINT__
 #define __MODEL_SORTED_POINT__
 
 #include "Point.hpp"
 
 namespace NOMAD {
-
-  /// Class used to order interpolation points.
-  class Model_Sorted_Point {
-
-  private:
-
-    NOMAD::Point  * _x;    ///< The point.
-    NOMAD::Double   _dist; ///< Distance to center.
-
-  public:
-
-    /// Constructor 1/2.
-    /**
-       \param x      Interpolaton point -- \b IN.
-       \param center Model center       -- \b IN.
-    */
-    Model_Sorted_Point ( NOMAD::Point * x , const NOMAD::Point & center );
-
-    /// Constructor 2/2.
-    /**
-       \param x      Interpolaton point          -- \b IN.
-       \param dist   Custom distance with center -- \b IN.
-    */
-    Model_Sorted_Point ( NOMAD::Point * x , const NOMAD::Double & dist )
-      : _x ( x ) , _dist ( dist ) {}
-
-    /// Copy constructor.
-    /**
-       \param x The copied object -- \b IN.
-    */
-    Model_Sorted_Point ( const Model_Sorted_Point & x )
-      : _x ( x._x ) , _dist ( x._dist ) {}
-  
-    /// Affectation operator.
-    /**
-       \param x The right-hand side object -- \b IN.
-       \return \c *this as the result of the affectation.
-    */
-    Model_Sorted_Point & operator = ( const Model_Sorted_Point & x );
-
-    /// Destructor.
-    virtual ~Model_Sorted_Point ( void ) {}
-
-    /// Comparison operator.
-    /**
-       \param x The right-hand side object -- \b IN.
-       \return \c true if the current interpolation point is closer to the center.
-    */
-    bool operator < ( const Model_Sorted_Point & x ) const;
-  
-    /// Access to the interpolation point.
-    /**
-       \return The interpolation point.
-    */
-    NOMAD::Point * get_point ( void ) const { return _x; }
-
-    /// Access to the distance.
-    /**
-       \return The distance
-    */
-    const NOMAD::Double & get_dist ( void ) const { return _dist; }
-  };
+    
+    /// Class used to order interpolation points.
+    class Model_Sorted_Point {
+        
+    private:
+        
+        NOMAD::Point  * _x;    ///< The point.
+        NOMAD::Double   _dist; ///< Distance to center.
+        
+    public:
+        
+        /// Constructor 1/2.
+        /**
+         \param x      Interpolaton point -- \b IN.
+         \param center Model center       -- \b IN.
+         */
+        Model_Sorted_Point ( NOMAD::Point * x , const NOMAD::Point & center );
+        
+        /// Constructor 2/2.
+        /**
+         \param x      Interpolaton point          -- \b IN.
+         \param dist   Custom distance with center -- \b IN.
+         */
+        Model_Sorted_Point ( NOMAD::Point * x , const NOMAD::Double & dist )
+        : _x ( x ) , _dist ( dist ) {}
+        
+        /// Copy constructor.
+        /**
+         \param x The copied object -- \b IN.
+         */
+        Model_Sorted_Point ( const Model_Sorted_Point & x )
+        : _x ( x._x ) , _dist ( x._dist ) {}
+        
+        /// Affectation operator.
+        /**
+         \param x The right-hand side object -- \b IN.
+         \return \c *this as the result of the affectation.
+         */
+        Model_Sorted_Point & operator = ( const Model_Sorted_Point & x );
+        
+        /// Destructor.
+        virtual ~Model_Sorted_Point ( void ) {}
+        
+        /// Comparison operator.
+        /**
+         \param x The right-hand side object -- \b IN.
+         \return \c true if the current interpolation point is closer to the center.
+         */
+        bool operator < ( const Model_Sorted_Point & x ) const;
+        
+        /// Access to the interpolation point.
+        /**
+         \return The interpolation point.
+         */
+        NOMAD::Point * get_point ( void ) const { return _x; }
+        
+        /// Access to the distance.
+        /**
+         \return The distance
+         */
+        const NOMAD::Double & get_dist ( void ) const { return _dist; }
+    };
 }
 
 #endif
diff --git a/src/Model_Stats.cpp b/src/Model_Stats.cpp
index bc18f4d..c71aadd 100644
--- a/src/Model_Stats.cpp
+++ b/src/Model_Stats.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Model_Stats.cpp
-  \brief  Model stats (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-09-24
-  \see    Model_Stats.hpp
-*/
+ \file   Model_Stats.cpp
+ \brief  Model stats (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-09-24
+ \see    Model_Stats.hpp
+ */
 #include "Model_Stats.hpp"
 
 /*---------------------------------------------------------*/
@@ -47,38 +54,37 @@
 /*---------------------------------------------------------*/
 NOMAD::Model_Stats & NOMAD::Model_Stats::operator = ( const NOMAD::Model_Stats & s )
 {
-  _nb_truth            = s._nb_truth;
-  _nb_sgte             = s._nb_sgte;
-  _nb_MFN              = s._nb_MFN;
-  _nb_WP_regression    = s._nb_WP_regression;
-  _nb_regression       = s._nb_regression;
-  _nb_TGP              = s._nb_TGP;
-  _not_enough_pts      = s._not_enough_pts;
-  _nb_Y_sets           = s._nb_Y_sets;
-  _sum_nY              = s._sum_nY;
-  _min_nY              = s._min_nY;
-  _max_nY              = s._max_nY;
-  _construction_error  = s._construction_error;
-  _construction_time   = s._construction_time;
-  _optimization_time   = s._optimization_time;
-  _bad_cond            = s._bad_cond;
-  _MS_nb_searches      = s._MS_nb_searches;
-  _MS_pts              = s._MS_pts;
-  _MS_success          = s._MS_success;
-  _MS_bb_eval          = s._MS_bb_eval;
-  _MS_sgte_eval        = s._MS_sgte_eval;
-  _MS_cache_hits       = s._MS_cache_hits;
-  _MS_rejected         = s._MS_rejected;
-  _MS_max_search_pts   = s._MS_max_search_pts;
-  _MS_nb_opt           = s._MS_nb_opt;
-  _MS_opt_error        = s._MS_nb_opt;
-  _MS_avg_model_eval   = s._MS_avg_model_eval;
-  _MS_max_model_eval   = s._MS_max_model_eval;
-  _MS_max_bbe          = s._MS_max_bbe;
-  _ES_nb_inside_radius = s._ES_nb_inside_radius;
-  _ES_nb_pts           = s._ES_nb_pts;
-
-  return *this;
+    _nb_truth            = s._nb_truth;
+    _nb_sgte             = s._nb_sgte;
+    _nb_MFN              = s._nb_MFN;
+    _nb_WP_regression    = s._nb_WP_regression;
+    _nb_regression       = s._nb_regression;
+    _not_enough_pts      = s._not_enough_pts;
+    _nb_Y_sets           = s._nb_Y_sets;
+    _sum_nY              = s._sum_nY;
+    _min_nY              = s._min_nY;
+    _max_nY              = s._max_nY;
+    _construction_error  = s._construction_error;
+    _construction_time   = s._construction_time;
+    _optimization_time   = s._optimization_time;
+    _bad_cond            = s._bad_cond;
+    _MS_nb_searches      = s._MS_nb_searches;
+    _MS_pts              = s._MS_pts;
+    _MS_success          = s._MS_success;
+    _MS_bb_eval          = s._MS_bb_eval;
+    _MS_sgte_eval        = s._MS_sgte_eval;
+    _MS_cache_hits       = s._MS_cache_hits;
+    _MS_rejected         = s._MS_rejected;
+    _MS_max_search_pts   = s._MS_max_search_pts;
+    _MS_nb_opt           = s._MS_nb_opt;
+    _MS_opt_error        = s._MS_nb_opt;
+    _MS_avg_model_eval   = s._MS_avg_model_eval;
+    _MS_max_model_eval   = s._MS_max_model_eval;
+    _MS_max_bbe          = s._MS_max_bbe;
+    _ES_nb_inside_radius = s._ES_nb_inside_radius;
+    _ES_nb_pts           = s._ES_nb_pts;
+    
+    return *this;
 }
 
 /*---------------------------------------------------------*/
@@ -86,12 +92,11 @@ NOMAD::Model_Stats & NOMAD::Model_Stats::operator = ( const NOMAD::Model_Stats &
 /*---------------------------------------------------------*/
 void NOMAD::Model_Stats::reset ( void )
 {
-  _nb_truth              =
+    _nb_truth              =
     _nb_sgte             =
     _nb_MFN              =
     _nb_WP_regression    =
     _nb_regression       =
-    _nb_TGP              =
     _not_enough_pts      =
     _construction_error  =
     _bad_cond            =
@@ -103,20 +108,20 @@ void NOMAD::Model_Stats::reset ( void )
     _MS_cache_hits       =
     _MS_rejected         =
     _MS_max_search_pts   =
-    _MS_nb_opt           = 
+    _MS_nb_opt           =
     _MS_opt_error        =
     _MS_avg_model_eval   =
     _MS_max_model_eval   =
     _MS_max_bbe          =
     _ES_nb_inside_radius =
-    _ES_nb_pts           = 
+    _ES_nb_pts           =
     _nb_Y_sets           = 0;
-  
-  _min_nY = INT_MAX;
-  _sum_nY = 0.0;
-
-  _max_nY                = -1;
-  _construction_time     =
+    
+    _min_nY = INT_MAX;
+    _sum_nY = 0.0;
+    
+    _max_nY                = -1;
+    _construction_time     =
     _optimization_time   = 0.0;
 }
 
@@ -125,51 +130,50 @@ void NOMAD::Model_Stats::reset ( void )
 /*-------------------------------------------------------*/
 void NOMAD::Model_Stats::update ( const NOMAD::Model_Stats & s )
 {
-  _nb_truth            += s._nb_truth;
-  _nb_sgte             += s._nb_sgte;
-  _nb_MFN              += s._nb_MFN;
-  _nb_WP_regression    += s._nb_WP_regression;
-  _nb_regression       += s._nb_regression;
-  _nb_TGP              += s._nb_TGP;
-  _not_enough_pts      += s._not_enough_pts;
-  _construction_error  += s._construction_error;
-  _construction_time   += s._construction_time;
-  _optimization_time   += s._optimization_time;
-  _bad_cond            += s._bad_cond;
-  _MS_nb_searches      += s._MS_nb_searches;
-  _MS_pts              += s._MS_pts;
-  _MS_success          += s._MS_success;
-  _MS_bb_eval          += s._MS_bb_eval;
-  _MS_sgte_eval        += s._MS_sgte_eval;
-  _MS_cache_hits       += s._MS_cache_hits;
-  _MS_rejected         += s._MS_rejected;
-  _MS_opt_error        += s._MS_opt_error;
-  _MS_max_bbe          += s._MS_max_bbe;
-  _ES_nb_inside_radius += s._ES_nb_inside_radius;
-  _ES_nb_pts           += s._ES_nb_pts;
-  _nb_Y_sets           += s._nb_Y_sets;
-  _sum_nY              += s._sum_nY;
-
-  _min_nY = ( _min_nY < s._min_nY ) ?
+    _nb_truth            += s._nb_truth;
+    _nb_sgte             += s._nb_sgte;
+    _nb_MFN              += s._nb_MFN;
+    _nb_WP_regression    += s._nb_WP_regression;
+    _nb_regression       += s._nb_regression;
+    _not_enough_pts      += s._not_enough_pts;
+    _construction_error  += s._construction_error;
+    _construction_time   += s._construction_time;
+    _optimization_time   += s._optimization_time;
+    _bad_cond            += s._bad_cond;
+    _MS_nb_searches      += s._MS_nb_searches;
+    _MS_pts              += s._MS_pts;
+    _MS_success          += s._MS_success;
+    _MS_bb_eval          += s._MS_bb_eval;
+    _MS_sgte_eval        += s._MS_sgte_eval;
+    _MS_cache_hits       += s._MS_cache_hits;
+    _MS_rejected         += s._MS_rejected;
+    _MS_opt_error        += s._MS_opt_error;
+    _MS_max_bbe          += s._MS_max_bbe;
+    _ES_nb_inside_radius += s._ES_nb_inside_radius;
+    _ES_nb_pts           += s._ES_nb_pts;
+    _nb_Y_sets           += s._nb_Y_sets;
+    _sum_nY              += s._sum_nY;
+    
+    _min_nY = ( _min_nY < s._min_nY ) ?
     _min_nY : s._min_nY;
-
-  _max_nY = ( _max_nY > s._max_nY ) ?
+    
+    _max_nY = ( _max_nY > s._max_nY ) ?
     _max_nY : s._max_nY;
-
-  _MS_max_model_eval = ( _MS_max_model_eval > s._MS_max_model_eval ) ?
+    
+    _MS_max_model_eval = ( _MS_max_model_eval > s._MS_max_model_eval ) ?
     _MS_max_model_eval : s._MS_max_model_eval;
-
-  _MS_max_search_pts = ( _MS_max_search_pts > s._MS_max_search_pts ) ?
+    
+    _MS_max_search_pts = ( _MS_max_search_pts > s._MS_max_search_pts ) ?
     _MS_max_search_pts : s._MS_max_search_pts;
-
-  if ( _MS_nb_opt + s._MS_nb_opt == 0 )
-    _MS_avg_model_eval = 0;
-  else
-    _MS_avg_model_eval = (   _MS_avg_model_eval*  _MS_nb_opt +
-			   s._MS_avg_model_eval*s._MS_nb_opt   ) /
-                         ( _MS_nb_opt + s._MS_nb_opt           );
-
-  _MS_nb_opt += s._MS_nb_opt;
+    
+    if ( _MS_nb_opt + s._MS_nb_opt == 0 )
+        _MS_avg_model_eval = 0;
+    else
+        _MS_avg_model_eval = (   _MS_avg_model_eval*  _MS_nb_opt +
+                              s._MS_avg_model_eval*s._MS_nb_opt   ) /
+        ( _MS_nb_opt + s._MS_nb_opt           );
+    
+    _MS_nb_opt += s._MS_nb_opt;
 }
 
 /*----------------------------------------------------*/
@@ -177,12 +181,12 @@ void NOMAD::Model_Stats::update ( const NOMAD::Model_Stats & s )
 /*----------------------------------------------------*/
 void NOMAD::Model_Stats::update_nY ( int nY )
 {
-  ++_nb_Y_sets;
-  _sum_nY += nY;
-  if ( nY > _max_nY )
-    _max_nY = nY;
-  if ( nY < _min_nY )
-    _min_nY = nY;
+    ++_nb_Y_sets;
+    _sum_nY += nY;
+    if ( nY > _max_nY )
+        _max_nY = nY;
+    if ( nY < _min_nY )
+        _min_nY = nY;
 }
 
 /*----------------------------------------------------*/
@@ -190,8 +194,8 @@ void NOMAD::Model_Stats::update_nY ( int nY )
 /*----------------------------------------------------*/
 void NOMAD::Model_Stats::update_MS_max_search_pts ( int sp )
 {
-  if ( sp > _MS_max_search_pts )
-    _MS_max_search_pts = sp;
+    if ( sp > _MS_max_search_pts )
+        _MS_max_search_pts = sp;
 }
 
 /*-----------------------------------------------------------------------*/
@@ -199,10 +203,10 @@ void NOMAD::Model_Stats::update_MS_max_search_pts ( int sp )
 /*-----------------------------------------------------------------------*/
 void NOMAD::Model_Stats::update_MS_model_opt ( int eval )
 {
-  if ( eval > _MS_max_model_eval )
-    _MS_max_model_eval = eval;
-  ++_MS_nb_opt;
-  _MS_avg_model_eval = ( (_MS_avg_model_eval*(_MS_nb_opt-1)) + eval ) / _MS_nb_opt;
+    if ( eval > _MS_max_model_eval )
+        _MS_max_model_eval = eval;
+    ++_MS_nb_opt;
+    _MS_avg_model_eval = ( (_MS_avg_model_eval*(_MS_nb_opt-1)) + eval ) / _MS_nb_opt;
 }
 
 /*---------------------------------------------------------*/
@@ -210,63 +214,64 @@ void NOMAD::Model_Stats::update_MS_model_opt ( int eval )
 /*---------------------------------------------------------*/
 void NOMAD::Model_Stats::display ( const NOMAD::Display & out ) const
 {
-  out << "number of models built       : "   << get_nb_models()     << std::endl;
-  if ( _nb_sgte > 0 )
-    out << "number of truth models       : " << _nb_truth           << std::endl
-	<< "number of surrogate models   : " << _nb_sgte            << std::endl;
-  out << "number of MFN interpolations : "   << _nb_MFN             << std::endl
-      << "number of WP regressions     : "   << _nb_WP_regression   << std::endl
-      << "number of quadr. regressions : "   << _nb_regression      << std::endl
-      << "number of TGP models         : "   << _nb_TGP             << std::endl
-      << "number of construction errors: "   << _construction_error << std::endl
-      << "number of bad cond numbers   : "   << _bad_cond           << std::endl
-      << "number of too small Y sets   : "   << _not_enough_pts     << std::endl
-      << "min Y size                   : ";
-  if ( _min_nY != INT_MAX )
-    out << _min_nY;
-  else
-    out << "-";
-  out << std::endl
-      << "max Y size                   : ";
-  if ( _max_nY != -1 )
-    out << _max_nY;
-  else
-    out << "-";
-  out << std::endl
-      << "avg Y size                   : ";
-  if ( get_avg_nY() != 0.0 )
-    out << get_avg_nY();
-  else
-    out << "-";
-  out << std::endl
-      << "construction CPU time (s)    : "   << _construction_time  << std::endl;
-  if ( _MS_nb_searches > 0 ) {
-    out << NOMAD::open_block ( "model searches" )
-	<< "number of searches                 : "   << _MS_nb_searches << std::endl
-	<< "number of search successes         : "   << _MS_success     << std::endl
-	<< "number of search points            : "   << _MS_pts         << std::endl
-	<< "number of blackbox evaluations     : "   << _MS_bb_eval     << std::endl;
-    if ( _MS_sgte_eval > 0 )
-      out << "number of sgte evaluations         : " << _MS_sgte_eval       << std::endl;
-    out << "number of cache hits               : "   << _MS_cache_hits      << std::endl
-	<< "number of rejected candidates      : "   << _MS_rejected        << std::endl
-	<< "max number of trial points         : "   << _MS_max_search_pts  << std::endl
-	<< "number of optimizations            : "   << _MS_nb_opt          << std::endl
-	<< "number of optimization errors      : "   << _MS_opt_error       << std::endl
-	<< "number of max_bbe stops            : "   << _MS_max_bbe         << std::endl
-	<< "max number of model evaluations    : "   << _MS_max_model_eval  << std::endl
-	<< "average number of model evaluations: "   << _MS_avg_model_eval  << std::endl
-	<< "optimization CPU time (s)          : "   << _optimization_time  << std::endl
-	<< NOMAD::close_block();
-  }
-
-  if ( _ES_nb_pts > 0 ) {
-    out << NOMAD::open_block ( "model ordering" )
-	<< "number of points considered   : " << _ES_nb_pts << std::endl
-	<< "number of points inside radius: " << _ES_nb_inside_radius
-	<< " (";
-    NOMAD::Double(_ES_nb_inside_radius*100.0/_ES_nb_pts).display ( out , "%.0f" );
-    out	<< "%)" << std::endl
-	<< NOMAD::close_block();
-  }
+    out << "number of models built       : "   << get_nb_models()     << std::endl;
+    if ( _nb_sgte > 0 )
+        out << "number of truth models       : " << _nb_truth           << std::endl
+        << "number of surrogate models   : " << _nb_sgte            << std::endl;
+    out << "number of MFN interpolations : "   << _nb_MFN             << std::endl
+    << "number of WP regressions     : "   << _nb_WP_regression   << std::endl
+    << "number of quadr. regressions : "   << _nb_regression      << std::endl
+    << "number of construction errors: "   << _construction_error << std::endl
+    << "number of bad cond numbers   : "   << _bad_cond           << std::endl
+    << "number of too small Y sets   : "   << _not_enough_pts     << std::endl
+    << "min Y size                   : ";
+    if ( _min_nY != INT_MAX )
+        out << _min_nY;
+    else
+        out << "-";
+    out << std::endl
+    << "max Y size                   : ";
+    if ( _max_nY != -1 )
+        out << _max_nY;
+    else
+        out << "-";
+    out << std::endl
+    << "avg Y size                   : ";
+    if ( get_avg_nY() != 0.0 )
+        out << get_avg_nY();
+    else
+        out << "-";
+    out << std::endl
+    << "construction CPU time (s)    : "   << _construction_time  << std::endl;
+    if ( _MS_nb_searches > 0 )
+    {
+        out << NOMAD::open_block ( "model searches" )
+        << "number of searches                 : "   << _MS_nb_searches << std::endl
+        << "number of search successes         : "   << _MS_success     << std::endl
+        << "number of search points            : "   << _MS_pts         << std::endl
+        << "number of blackbox evaluations     : "   << _MS_bb_eval     << std::endl;
+        if ( _MS_sgte_eval > 0 )
+            out << "number of sgte evaluations         : " << _MS_sgte_eval       << std::endl;
+        out << "number of cache hits               : "   << _MS_cache_hits      << std::endl
+        << "number of rejected candidates      : "   << _MS_rejected        << std::endl
+        << "max number of trial points         : "   << _MS_max_search_pts  << std::endl
+        << "number of optimizations            : "   << _MS_nb_opt          << std::endl
+        << "number of optimization errors      : "   << _MS_opt_error       << std::endl
+        << "number of max_bbe stops            : "   << _MS_max_bbe         << std::endl
+        << "max number of model evaluations    : "   << _MS_max_model_eval  << std::endl
+        << "average number of model evaluations: "   << _MS_avg_model_eval  << std::endl
+        << "optimization CPU time (s)          : "   << _optimization_time  << std::endl
+        << NOMAD::close_block();
+    }
+    
+    if ( _ES_nb_pts > 0 ) 
+    {
+        out << NOMAD::open_block ( "model ordering" )
+        << "number of points considered   : " << _ES_nb_pts << std::endl
+        << "number of points inside radius: " << _ES_nb_inside_radius
+        << " (";
+        NOMAD::Double(_ES_nb_inside_radius*100.0/_ES_nb_pts).display ( out , "%.0f" );
+        out << "%)" << std::endl
+        << NOMAD::close_block();
+    }
 }
diff --git a/src/Model_Stats.hpp b/src/Model_Stats.hpp
index 1351a30..9799969 100644
--- a/src/Model_Stats.hpp
+++ b/src/Model_Stats.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,332 +41,322 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Model_Stats.hpp
-  \brief  Model stats (headers)
-  \author Sebastien Le Digabel
-  \date   2010-09-24
-  \see    Model_Stats.cpp
-*/
+ \file   Model_Stats.hpp
+ \brief  Model stats (headers)
+ \author Sebastien Le Digabel
+ \date   2010-09-24
+ \see    Model_Stats.cpp
+ */
 #ifndef __MODEL_STATS__
 #define __MODEL_STATS__
 
 #include "Double.hpp"
 
 namespace NOMAD {
-
-  /// Model stats.
-  class Model_Stats {
-
-  private:
-    
-    int    _nb_truth;           ///< Number of truth models.
-    int    _nb_sgte;            ///< Number of surrogate models.
-    int    _nb_MFN;             ///< Number of quadr. MFN models.
-    int    _nb_WP_regression;   ///< Number of quadr. well-poised regressions models.
-    int    _nb_regression;      ///< Number of quadr. regression_max_nY models.
-    int    _nb_TGP;             ///< Number of TGP models.
-    int    _not_enough_pts;     ///< Number of too small \c Y sets.
-    int    _nb_Y_sets;          ///< Number of \c Y sets.
-    float  _sum_nY;             ///< Total number of \c Y points.
-    int    _min_nY;             ///< Minimal \c Y size.
-    int    _max_nY;             ///< Maximal \c Y size.
-    int    _construction_error; ///< Number of construction errors.
-    double _construction_time;  ///< Models construction CPU time.
-    double _optimization_time;  ///< Models optimization CPU time.
-
-    /// Number of times that \c cond exceeded \c SVD_MAX_COND.
-    int    _bad_cond;         
-
-    // model search (MS):
-    int           _MS_nb_searches;    ///< Number of searches.
-    int           _MS_pts;            ///< Number of search points.
-    int           _MS_success;        ///< Number of search successes.
-    int           _MS_bb_eval;        ///< Number of search blackbox evaluations.
-    int           _MS_sgte_eval;      ///< Number of search surrogate evaluations.
-    int           _MS_cache_hits;     ///< Number of search cache hits.
-    int           _MS_rejected;       ///< Number of rejected trial points.
-    int           _MS_max_search_pts; ///< Max number of trial points for one search.
-    int           _MS_nb_opt;         ///< Number of optimizations.
-    int           _MS_opt_error;      ///< Number of optimization errors.
-    int           _MS_avg_model_eval; ///< Avg number of evaluations for a model opt.
-    int           _MS_max_model_eval; ///< Max number of evaluations for a model opt.
-    int           _MS_max_bbe;        ///< Number of times model eval. reached limit.
-
-    // eval sort (ES):
-    int           _ES_nb_inside_radius; ///< Total number of points inside radius.
-    int           _ES_nb_pts;           ///< Total number of points.
-
-public:
-
-    /// Constructor.
-    explicit Model_Stats ( void ) { reset(); }
-
-    /// Copy constructor.
-    /**
-       \param s The copied object -- \b IN.
-    */
-    explicit Model_Stats ( const Model_Stats & s )
-      : _nb_truth            ( s._nb_truth            ) ,
-	_nb_sgte             ( s._nb_sgte             ) ,
-	_nb_MFN              ( s._nb_MFN              ) ,
-	_nb_WP_regression    ( s._nb_WP_regression    ) ,
-	_nb_regression       ( s._nb_regression       ) ,
-	_nb_TGP              ( s._nb_TGP              ) ,
-	_not_enough_pts      ( s._not_enough_pts      ) ,
-	_nb_Y_sets           ( s._nb_Y_sets           ) ,
-	_sum_nY              ( s._sum_nY              ) ,
-	_min_nY              ( s._min_nY              ) ,
-	_max_nY              ( s._max_nY              ) ,
-	_construction_error  ( s._construction_error  ) ,
-	_construction_time   ( s._construction_time   ) ,
-	_optimization_time   ( s._optimization_time   ) ,
-	_bad_cond            ( s._bad_cond            ) ,
-	_MS_nb_searches      ( s._MS_nb_searches      ) ,
-	_MS_pts              ( s._MS_pts              ) ,
-	_MS_success          ( s._MS_success          ) ,
-	_MS_bb_eval          ( s._MS_bb_eval          ) ,
-	_MS_sgte_eval        ( s._MS_sgte_eval        ) ,
-	_MS_cache_hits       ( s._MS_cache_hits       ) ,
-	_MS_rejected         ( s._MS_rejected         ) ,
-	_MS_max_search_pts   ( s._MS_max_search_pts   ) ,
-	_MS_nb_opt           ( s._MS_nb_opt           ) ,
-	_MS_opt_error        ( s._MS_opt_error        ) ,
-	_MS_avg_model_eval   ( s._MS_avg_model_eval   ) ,
-	_MS_max_model_eval   ( s._MS_max_model_eval   ) ,
-	_MS_max_bbe          ( s._MS_max_bbe          ) ,
-	_ES_nb_inside_radius ( s._ES_nb_inside_radius ) ,
-	_ES_nb_pts           ( s._ES_nb_pts           ) {}
-
-    /// Affectation operator.
-    /**
-       \param s The right-hand side object -- \b IN.
-    */
-    Model_Stats & operator = ( const Model_Stats & s );
     
-    /// Destructor.
-    virtual ~Model_Stats ( void ) {}
-
-    /// Reset the stats.
-    void reset ( void );
-
-    /// Update stats from another NOMAD::Model_Stats object.
-    /**
-       \param s The other NOMAD::Model_Stats object -- \b IN.
-    */
-    void update ( const Model_Stats & s );
-
-    /// Update stats on the size of interpolation set \c Y.
-    /**
-       \param nY Size of an interpolation set \c Y -- \b IN.
-    */
-    void update_nY ( int nY );
-
-    /// Update stat \c _MS_max_search_pts.
-    /**
-       \param sp Number of trial points for a model search -- \b IN.
-    */
-    void update_MS_max_search_pts ( int sp );
-
-    /// Update stats \c _MS_nb_opt, \c _MS_max_model_eval, and \c _MS_avg_model_eval.
-    /**
-       \param eval Number of model evaluations during one model optimization -- \b IN.
-    */
-    void update_MS_model_opt ( int eval );
-
-    /// Update model ordering stats.
-    /**
-       \param nb_inside_radius Number of points inside radius -- \b IN.
-       \param nb_pts           Number of points               -- \b IN.
-    */
-    void update_ES_stats ( int nb_inside_radius , int nb_pts )
-    {
-      _ES_nb_inside_radius += nb_inside_radius;
-      _ES_nb_pts           += nb_pts;
-    }
-
-    /// Add a real to stat \c _construction_time.
-    /**
-       \param t Time -- \b IN.
-    */
-    void add_construction_time ( double t ) { _construction_time += t; }
-
-    /// Add a real to stat \c _optimization_time.
-    /**
-       \param t Time -- \b IN.
-    */
-    void add_optimization_time ( double t ) { _optimization_time += t; }
-
-    /// Add \c 1 to stat \c _nb_truth.
-    void add_nb_truth ( void ) { ++_nb_truth; }
-
-    /// Add \c 1 to stat \c _nb_sgte.
-    void add_nb_sgte ( void ) { ++_nb_sgte; }
-
-    /// Add \c 1 to stat \c _nb_MFN.
-    void add_nb_MFN ( void ) { ++_nb_MFN; }
-
-    /// Add \c 1 to stat \c _nb_WP_regression.
-    void add_nb_WP_regression ( void ) { ++_nb_WP_regression; }
-
-    /// Add \c 1 to stat \c _nb_regression.
-    void add_nb_regression ( void ) { ++_nb_regression; }
-
-    /// Add \c 1 to stat \c _nb_TGP.
-    void add_nb_TGP ( void ) { ++_nb_TGP; }
-
-    /// Add \c 1 to stat \c _not_enough_pts.
-    void add_not_enough_pts ( void ) { ++_not_enough_pts; }
-
-    /// Add \c 1 to stat \c _construction_error.
-    void add_construction_error ( void ) { ++_construction_error; }
-
-    /// Add \c 1 to stat \c _bad_cond.
-    void add_bad_cond ( void ) { ++_bad_cond; }
-
-    /// Add \c 1 to stat \c _MS_nb_searches.
-    void add_MS_nb_searches ( void ) { ++_MS_nb_searches; }
-
-    /// Add \c 1 to stat \c _MS_success.
-    void add_MS_success ( void ) { ++_MS_success; }
-
-    /// Add \c 1 to stat \c _MS_opt_error.
-    void add_MS_opt_error ( void ) { ++_MS_opt_error; }
-
-    /// Add \c 1 to stat \c _MS_max_bbe.
-    void add_MS_max_bbe ( void ) { ++_MS_max_bbe; }
-
-    /// Add \c 1 to stat \c _MS_rejected.
-    void add_MS_rejected ( void ) { ++_MS_rejected; }
-
-    /// Add an integer to stat \c _MS_pts.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_MS_pts ( int i ) { _MS_pts += i; }
-
-    /// Add an integer to stat \c _MS_bb_eval.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_MS_bb_eval ( int i ) { _MS_bb_eval += i; }
-
-    /// Add an integer to stat \c _MS_sgte_eval.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_MS_sgte_eval ( int i ) { _MS_sgte_eval += i; }
-
-    /// Add an integer to stat \c _MS_cache_hits.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_MS_cache_hits ( int i ) { _MS_cache_hits += i; }
-
-    /// Access to the number of model searches.
-    /*
-      \return The number of model searches.
-    **/
-    int get_MS_nb_searches ( void ) const { return _MS_nb_searches; }
-
-    /// Access to the number of model optimizations.
-    /*
-      \return The number of model optimizations.
-    **/
-    int get_MS_nb_opt ( void ) const { return _MS_nb_opt; }
-
-    /// Access to the number of model search points.
-    /*
-      \return The number of model search points.
-    **/
-    int get_MS_pts ( void ) const { return _MS_pts; }
-
-    /// Access to the number of model blackbox evaluations.
-    /*
-      \return The number of model blackbox evaluations.
-    **/
-    int get_MS_bb_eval ( void ) const { return _MS_bb_eval; }
-
-    /// Access to the number of model search surrogate evaluations.
-    /*
-      \return The number of model search surrogate evaluations.
-    **/
-    int get_MS_sgte_eval ( void ) const { return _MS_sgte_eval; }
-
-    /// Access to the number of model search successes.
-    /*
-      \return The number of model search successes.
-    **/
-    int get_MS_success ( void ) const { return _MS_success; }
-
-    /// Access to the number of models.
-    /*
-      \return The number of models.
-    **/
-    int get_nb_models ( void ) const { return _nb_truth + _nb_sgte; }
-
-    /// Access to stat \c _min_nY.
-    /**
-       \return The stat \c _min_nY.
-    */
-    int get_min_nY ( void ) const { return _min_nY; }
-
-    /// Access to stat \c _max_nY.
-    /**
-       \return The stat \c _max_nY.
-    */
-    int get_max_nY ( void ) const { return _max_nY; }
-
-    /// Access to the average size of interpolation sets.
-    /**
-       \return The average size of interpolation sets.
-    */
-    float get_avg_nY ( void ) const
-    {
-      return ( _nb_Y_sets == 0 ) ? 0 : _sum_nY / _nb_Y_sets;
-    }
-
-    /// Access to stat \c _nb_MFN.
-    /**
-       \return \c The stat _nb_MFN.
-    */
-    int get_nb_MFN ( void ) const { return _nb_MFN; }
+    /// Model stats.
+    class Model_Stats {
+        
+    private:
+        
+        int    _nb_truth;           ///< Number of truth models.
+        int    _nb_sgte;            ///< Number of surrogate models.
+        int    _nb_MFN;             ///< Number of quadr. MFN models.
+        int    _nb_WP_regression;   ///< Number of quadr. well-poised regressions models.
+        int    _nb_regression;      ///< Number of quadr. regression_max_nY models.
+        int    _not_enough_pts;     ///< Number of too small \c Y sets.
+        int    _nb_Y_sets;          ///< Number of \c Y sets.
+        float  _sum_nY;             ///< Total number of \c Y points.
+        int    _min_nY;             ///< Minimal \c Y size.
+        int    _max_nY;             ///< Maximal \c Y size.
+        int    _construction_error; ///< Number of construction errors.
+        double _construction_time;  ///< Models construction CPU time.
+        double _optimization_time;  ///< Models optimization CPU time.
+        
+        /// Number of times that \c cond exceeded \c SVD_MAX_COND.
+        int    _bad_cond;
+        
+        // model search (MS):
+        int           _MS_nb_searches;    ///< Number of searches.
+        int           _MS_pts;            ///< Number of search points.
+        int           _MS_success;        ///< Number of search successes.
+        int           _MS_bb_eval;        ///< Number of search blackbox evaluations.
+        int           _MS_sgte_eval;      ///< Number of search surrogate evaluations.
+        int           _MS_cache_hits;     ///< Number of search cache hits.
+        int           _MS_rejected;       ///< Number of rejected trial points.
+        int           _MS_max_search_pts; ///< Max number of trial points for one search.
+        int           _MS_nb_opt;         ///< Number of optimizations.
+        int           _MS_opt_error;      ///< Number of optimization errors.
+        int           _MS_avg_model_eval; ///< Avg number of evaluations for a model opt.
+        int           _MS_max_model_eval; ///< Max number of evaluations for a model opt.
+        int           _MS_max_bbe;        ///< Number of times model eval. reached limit.
+        
+        // eval sort (ES):
+        int           _ES_nb_inside_radius; ///< Total number of points inside radius.
+        int           _ES_nb_pts;           ///< Total number of points.
+        
+    public:
+        
+        /// Constructor.
+        explicit Model_Stats ( void ) { reset(); }
+        
+        /// Copy constructor.
+        /**
+         \param s The copied object -- \b IN.
+         */
+        explicit Model_Stats ( const Model_Stats & s )
+        : _nb_truth            ( s._nb_truth            ) ,
+        _nb_sgte             ( s._nb_sgte             ) ,
+        _nb_MFN              ( s._nb_MFN              ) ,
+        _nb_WP_regression    ( s._nb_WP_regression    ) ,
+        _nb_regression       ( s._nb_regression       ) ,
+        _not_enough_pts      ( s._not_enough_pts      ) ,
+        _nb_Y_sets           ( s._nb_Y_sets           ) ,
+        _sum_nY              ( s._sum_nY              ) ,
+        _min_nY              ( s._min_nY              ) ,
+        _max_nY              ( s._max_nY              ) ,
+        _construction_error  ( s._construction_error  ) ,
+        _construction_time   ( s._construction_time   ) ,
+        _optimization_time   ( s._optimization_time   ) ,
+        _bad_cond            ( s._bad_cond            ) ,
+        _MS_nb_searches      ( s._MS_nb_searches      ) ,
+        _MS_pts              ( s._MS_pts              ) ,
+        _MS_success          ( s._MS_success          ) ,
+        _MS_bb_eval          ( s._MS_bb_eval          ) ,
+        _MS_sgte_eval        ( s._MS_sgte_eval        ) ,
+        _MS_cache_hits       ( s._MS_cache_hits       ) ,
+        _MS_rejected         ( s._MS_rejected         ) ,
+        _MS_max_search_pts   ( s._MS_max_search_pts   ) ,
+        _MS_nb_opt           ( s._MS_nb_opt           ) ,
+        _MS_opt_error        ( s._MS_opt_error        ) ,
+        _MS_avg_model_eval   ( s._MS_avg_model_eval   ) ,
+        _MS_max_model_eval   ( s._MS_max_model_eval   ) ,
+        _MS_max_bbe          ( s._MS_max_bbe          ) ,
+        _ES_nb_inside_radius ( s._ES_nb_inside_radius ) ,
+        _ES_nb_pts           ( s._ES_nb_pts           ) {}
+        
+        /// Affectation operator.
+        /**
+         \param s The right-hand side object -- \b IN.
+         */
+        Model_Stats & operator = ( const Model_Stats & s );
+        
+        /// Destructor.
+        virtual ~Model_Stats ( void ) {}
+        
+        /// Reset the stats.
+        void reset ( void );
+        
+        /// Update stats from another NOMAD::Model_Stats object.
+        /**
+         \param s The other NOMAD::Model_Stats object -- \b IN.
+         */
+        void update ( const Model_Stats & s );
+        
+        /// Update stats on the size of interpolation set \c Y.
+        /**
+         \param nY Size of an interpolation set \c Y -- \b IN.
+         */
+        void update_nY ( int nY );
+        
+        /// Update stat \c _MS_max_search_pts.
+        /**
+         \param sp Number of trial points for a model search -- \b IN.
+         */
+        void update_MS_max_search_pts ( int sp );
+        
+        /// Update stats \c _MS_nb_opt, \c _MS_max_model_eval, and \c _MS_avg_model_eval.
+        /**
+         \param eval Number of model evaluations during one model optimization -- \b IN.
+         */
+        void update_MS_model_opt ( int eval );
+        
+        /// Update model ordering stats.
+        /**
+         \param nb_inside_radius Number of points inside radius -- \b IN.
+         \param nb_pts           Number of points               -- \b IN.
+         */
+        void update_ES_stats ( int nb_inside_radius , int nb_pts )
+        {
+            _ES_nb_inside_radius += nb_inside_radius;
+            _ES_nb_pts           += nb_pts;
+        }
+        
+        /// Add a real to stat \c _construction_time.
+        /**
+         \param t Time -- \b IN.
+         */
+        void add_construction_time ( double t ) { _construction_time += t; }
+        
+        /// Add a real to stat \c _optimization_time.
+        /**
+         \param t Time -- \b IN.
+         */
+        void add_optimization_time ( double t ) { _optimization_time += t; }
+        
+        /// Add \c 1 to stat \c _nb_truth.
+        void add_nb_truth ( void ) { ++_nb_truth; }
+        
+        /// Add \c 1 to stat \c _nb_sgte.
+        void add_nb_sgte ( void ) { ++_nb_sgte; }
+        
+        /// Add \c 1 to stat \c _nb_MFN.
+        void add_nb_MFN ( void ) { ++_nb_MFN; }
+        
+        /// Add \c 1 to stat \c _nb_WP_regression.
+        void add_nb_WP_regression ( void ) { ++_nb_WP_regression; }
+        
+        /// Add \c 1 to stat \c _nb_regression.
+        void add_nb_regression ( void ) { ++_nb_regression; }
+        
+        /// Add \c 1 to stat \c _not_enough_pts.
+        void add_not_enough_pts ( void ) { ++_not_enough_pts; }
+        
+        /// Add \c 1 to stat \c _construction_error.
+        void add_construction_error ( void ) { ++_construction_error; }
+        
+        /// Add \c 1 to stat \c _bad_cond.
+        void add_bad_cond ( void ) { ++_bad_cond; }
+        
+        /// Add \c 1 to stat \c _MS_nb_searches.
+        void add_MS_nb_searches ( void ) { ++_MS_nb_searches; }
+        
+        /// Add \c 1 to stat \c _MS_success.
+        void add_MS_success ( void ) { ++_MS_success; }
+        
+        /// Add \c 1 to stat \c _MS_opt_error.
+        void add_MS_opt_error ( void ) { ++_MS_opt_error; }
+        
+        /// Add \c 1 to stat \c _MS_max_bbe.
+        void add_MS_max_bbe ( void ) { ++_MS_max_bbe; }
+        
+        /// Add \c 1 to stat \c _MS_rejected.
+        void add_MS_rejected ( void ) { ++_MS_rejected; }
+        
+        /// Add an integer to stat \c _MS_pts.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_MS_pts ( int i ) { _MS_pts += i; }
+        
+        /// Add an integer to stat \c _MS_bb_eval.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_MS_bb_eval ( int i ) { _MS_bb_eval += i; }
+        
+        /// Add an integer to stat \c _MS_sgte_eval.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_MS_sgte_eval ( int i ) { _MS_sgte_eval += i; }
+        
+        /// Add an integer to stat \c _MS_cache_hits.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_MS_cache_hits ( int i ) { _MS_cache_hits += i; }
+        
+        /// Access to the number of model searches.
+        /*
+         \return The number of model searches.
+         **/
+        int get_MS_nb_searches ( void ) const { return _MS_nb_searches; }
+        
+        /// Access to the number of model optimizations.
+        /*
+         \return The number of model optimizations.
+         **/
+        int get_MS_nb_opt ( void ) const { return _MS_nb_opt; }
+        
+        /// Access to the number of model search points.
+        /*
+         \return The number of model search points.
+         **/
+        int get_MS_pts ( void ) const { return _MS_pts; }
+        
+        /// Access to the number of model blackbox evaluations.
+        /*
+         \return The number of model blackbox evaluations.
+         **/
+        int get_MS_bb_eval ( void ) const { return _MS_bb_eval; }
+        
+        /// Access to the number of model search surrogate evaluations.
+        /*
+         \return The number of model search surrogate evaluations.
+         **/
+        int get_MS_sgte_eval ( void ) const { return _MS_sgte_eval; }
+        
+        /// Access to the number of model search successes.
+        /*
+         \return The number of model search successes.
+         **/
+        int get_MS_success ( void ) const { return _MS_success; }
+        
+        /// Access to the number of models.
+        /*
+         \return The number of models.
+         **/
+        int get_nb_models ( void ) const { return _nb_truth + _nb_sgte; }
+        
+        /// Access to stat \c _min_nY.
+        /**
+         \return The stat \c _min_nY.
+         */
+        int get_min_nY ( void ) const { return _min_nY; }
+        
+        /// Access to stat \c _max_nY.
+        /**
+         \return The stat \c _max_nY.
+         */
+        int get_max_nY ( void ) const { return _max_nY; }
+        
+        /// Access to the average size of interpolation sets.
+        /**
+         \return The average size of interpolation sets.
+         */
+        float get_avg_nY ( void ) const
+        {
+            return ( _nb_Y_sets == 0 ) ? 0 : _sum_nY / _nb_Y_sets;
+        }
+        
+        /// Access to stat \c _nb_MFN.
+        /**
+         \return \c The stat _nb_MFN.
+         */
+        int get_nb_MFN ( void ) const { return _nb_MFN; }
+        
+        /// Access to stat \c _nb_WP_regression.
+        /**
+         \return \c The stat _nb_WP_regression.
+         */
+        int get_nb_WP_regression ( void ) const { return _nb_WP_regression; }
+        
+        /// Access to stat \c _nb_regression.
+        /**
+         \return \c The stat _nb_regression.
+         */
+        int get_nb_regression ( void ) const { return _nb_regression; }
+         
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+    };
     
-    /// Access to stat \c _nb_WP_regression.
-    /**
-       \return \c The stat _nb_WP_regression.
-    */
-    int get_nb_WP_regression ( void ) const { return _nb_WP_regression; }
-
-    /// Access to stat \c _nb_regression.
-    /**
-       \return \c The stat _nb_regression.
-    */
-    int get_nb_regression ( void ) const { return _nb_regression; }
-
-    /// Access to stat \c _nb_TGP.
+    /// Display a NOMAD::Model_Stats object.
     /**
-       \return \c The stat _nb_TGP.
-    */
-    int get_nb_TGP ( void ) const { return _nb_TGP; }
-
-    /// Display.
-    /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    void display ( const NOMAD::Display & out ) const;
-  };
-
-  /// Display a NOMAD::Model_Stats object.
-  /**
      \param out The NOMAD::Display object                     -- \b IN.
      \param s   The NOMAD::Model_Stats object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display     & out ,
-					      const NOMAD::Model_Stats & s     ) {
-    s.display ( out );
-    return out;
-  }
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display     & out ,
+                                               const NOMAD::Model_Stats & s     )
+    {
+        s.display ( out );
+        return out;
+    }
 }
 
 #endif
diff --git a/src/Multi_Obj_Evaluator.cpp b/src/Multi_Obj_Evaluator.cpp
index 89c5bfe..9fdcf13 100644
--- a/src/Multi_Obj_Evaluator.cpp
+++ b/src/Multi_Obj_Evaluator.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Multi_Obj_Evaluator.cpp
-  \brief  NOMAD::Evaluator subclass for multiobjective optimization (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-09
-  \see    Multi_Obj_Evaluator.hpp
-*/
+ \file   Multi_Obj_Evaluator.cpp
+ \brief  NOMAD::Evaluator subclass for multiobjective optimization (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-09
+ \see    Multi_Obj_Evaluator.hpp
+ */
 #include "Multi_Obj_Evaluator.hpp"
 
 /*-----------------------------------*/
@@ -54,15 +61,15 @@ int NOMAD::Multi_Obj_Evaluator::_i2 = -1;
 /*---------------------------------------*/
 void NOMAD::Multi_Obj_Evaluator::set_obj_indexes ( const std::list<int> & index_obj )
 {
-  if ( index_obj.size() != 2 )
-    throw NOMAD::Exception ( "Multi_Obj_Evaluator.cpp" , __LINE__ ,
-	  "Multi_Obj_Evaluator defined with a number of indexes different than two" );
-
-  std::list<int>::const_iterator it = index_obj.begin();
-
-  NOMAD::Multi_Obj_Evaluator::_i1 = *it;
-  it++;
-  NOMAD::Multi_Obj_Evaluator::_i2 = *it;
+    if ( index_obj.size() != 2 )
+        throw NOMAD::Exception ( "Multi_Obj_Evaluator.cpp" , __LINE__ ,
+                                "Multi_Obj_Evaluator defined with a number of indexes different than two" );
+    
+    std::list<int>::const_iterator it = index_obj.begin();
+    
+    NOMAD::Multi_Obj_Evaluator::_i1 = *it;
+    it++;
+    NOMAD::Multi_Obj_Evaluator::_i2 = *it;
 }
 
 /*-------------------------------------------------------------*/
@@ -71,98 +78,106 @@ void NOMAD::Multi_Obj_Evaluator::set_obj_indexes ( const std::list<int> & index_
 /*-------------------------------------------------------------*/
 void NOMAD::Multi_Obj_Evaluator::compute_f ( NOMAD::Eval_Point & x ) const
 {
-  if ( _i1 < 0 || _i2 < 0 )
-    throw NOMAD::Exception ( "Multi_Obj_Evaluator.cpp" , __LINE__ ,
-	  "Multi_Obj_Evaluator::compute_f(): no objective indexes defined" );
-
-  int obj_index [2];
-  obj_index[0] = _i1;
-  obj_index[1] = _i2;
-
-  const NOMAD::Point & bbo = x.get_bb_outputs();
-
-  // a reference is available:
-  if ( _ref ) 
-  {
-      
-	  NOMAD::multi_formulation_type mft = _p.get_multi_formulation();
-	  
-	  if ( mft == NOMAD::UNDEFINED_FORMULATION )
-		  throw NOMAD::Exception ( "Multi_Obj_Evaluator.cpp" , __LINE__ ,
-								  "Multi_Obj_Evaluator::compute_f(): no formulation type is defined" );
-	  
-	  // normalized formulation:
-	  if ( mft == NOMAD::NORMALIZED || mft == NOMAD::DIST_LINF ) {
-		  
-		  // f1 - r1:
-		  NOMAD::Double d = bbo[obj_index[0]] - (*_ref)[0];
-		  
-		  // f2 - r2:
-		  NOMAD::Double f2mr2 = bbo[obj_index[1]] - (*_ref)[1];
-		  
-		  // we take the max:
-		  if ( f2mr2 > d )
-			  d = f2mr2;
-		  
-		  x.set_f ( d );
-	  }
-	  
-	  // product formulation:
-	  else if ( mft == NOMAD::PRODUCT ) {
-		  
-		  NOMAD::Double prod = 1.0 , ri , fi;
-		  
-		  for ( int i = 0 ; i < 2 ; ++i ) {
-			  
-			  ri = (*_ref)[i];
-			  fi = bbo[obj_index[i]];
-			  
-			  if ( fi > ri ) {
-				  prod = 0.0;
-				  break;
-			  }
-			  prod = prod * (ri-fi).pow2();
-		  }
-		  
-		  x.set_f ( -prod );
-	  }
-	  
-	  // distance formulation:
-	  else {
-		  
-		  NOMAD::Double d;  
-		  NOMAD::Double r1mf1 = (*_ref)[0] - bbo[obj_index[0]];
-		  NOMAD::Double r2mf2 = (*_ref)[1] - bbo[obj_index[1]];
-		  
-		  if ( r1mf1 >= 0.0 && r2mf2 >= 0.0 ) {
-			  d = r1mf1.pow2();
-			  NOMAD::Double tmp = r2mf2.pow2();
-			  if ( tmp < d )
-				  d = tmp;
-			  d = -d;
-		  }
-		  else if ( r1mf1 <= 0.0 && r2mf2 <= 0.0 ) {
-			  
-			  // with L2 norm:
-			  if ( mft == NOMAD::DIST_L2 )
-				  d = r1mf1.pow2() + r2mf2.pow2();
-			  
-			  // with L1 norm:
-			  else
-				  d = (r1mf1.abs() + r2mf2.abs()).pow2();
-			  
-			  // Linf norm: treated as NORMALIZED
-		  }
-		  else if ( r1mf1 > 0.0 )
-			  d = r2mf2.pow2();
-		  else
-			  d = r1mf1.pow2();
-		  
-		  x.set_f ( d );
-	  }
-  }
+    if ( _i1 < 0 || _i2 < 0 )
+        throw NOMAD::Exception ( "Multi_Obj_Evaluator.cpp" , __LINE__ ,
+                                "Multi_Obj_Evaluator::compute_f(): no objective indexes defined" );
+    
+    int obj_index [2];
+    obj_index[0] = _i1;
+    obj_index[1] = _i2;
+    
+    const NOMAD::Point & bbo = x.get_bb_outputs();
+    
+    // a reference is available:
+    if ( _ref )
+    {
+        
+        NOMAD::multi_formulation_type mft = _p.get_multi_formulation();
+        
+        if ( mft == NOMAD::UNDEFINED_FORMULATION )
+            throw NOMAD::Exception ( "Multi_Obj_Evaluator.cpp" , __LINE__ ,
+                                    "Multi_Obj_Evaluator::compute_f(): no formulation type is defined" );
+        
+        // normalized formulation:
+        if ( mft == NOMAD::NORMALIZED || mft == NOMAD::DIST_LINF )
+        {
+            
+            // f1 - r1:
+            NOMAD::Double d = bbo[obj_index[0]] - (*_ref)[0];
+            
+            // f2 - r2:
+            NOMAD::Double f2mr2 = bbo[obj_index[1]] - (*_ref)[1];
+            
+            // we take the max:
+            if ( f2mr2 > d )
+                d = f2mr2;
+            
+            x.set_f ( d );
+        }
+        
+        // product formulation:
+        else if ( mft == NOMAD::PRODUCT )
+        {
+            
+            NOMAD::Double prod = 1.0 , ri , fi;
+            
+            for ( int i = 0 ; i < 2 ; ++i )
+            {
+                
+                ri = (*_ref)[i];
+                fi = bbo[obj_index[i]];
+                
+                if ( fi > ri )
+                {
+                    prod = 0.0;
+                    break;
+                }
+                prod = prod * (ri-fi).pow2();
+            }
+            
+            x.set_f ( -prod );
+        }
+        
+        // distance formulation:
+        else
+        {
+            
+            
+            NOMAD::Double d;
+            NOMAD::Double r1mf1 = (*_ref)[0] - bbo[obj_index[0]];
+            NOMAD::Double r2mf2 = (*_ref)[1] - bbo[obj_index[1]];
+            
+            if ( r1mf1 >= 0.0 && r2mf2 >= 0.0 )
+            {
+                d = r1mf1.pow2();
+                NOMAD::Double tmp = r2mf2.pow2();
+                if ( tmp < d )
+                    d = tmp;
+                d = -d;
+            }
+            else if ( r1mf1 <= 0.0 && r2mf2 <= 0.0 )
+            {
+                
+                // with L2 norm:
+                if ( mft == NOMAD::DIST_L2 )
+                    d = r1mf1.pow2() + r2mf2.pow2();
+                
+                // with L1 norm:
+                else
+                    d = (r1mf1.abs() + r2mf2.abs()).pow2();
+                
+                // Linf norm: treated as NORMALIZED
+            }
+            else if ( r1mf1 > 0.0 )
+                d = r2mf2.pow2();
+            else
+                d = r1mf1.pow2();
+            
+            x.set_f ( d );
+        }
+    }
     
-  // no reference is available (use weights):
-  else
-    x.set_f ( _w1 * bbo[obj_index[0]] + _w2 * bbo[obj_index[1]] );
+    // no reference is available (use weights):
+    else
+        x.set_f ( _w1 * bbo[obj_index[0]] + _w2 * bbo[obj_index[1]] );
 }
diff --git a/src/Multi_Obj_Evaluator.hpp b/src/Multi_Obj_Evaluator.hpp
index 522cb4f..155be5e 100644
--- a/src/Multi_Obj_Evaluator.hpp
+++ b/src/Multi_Obj_Evaluator.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,107 +41,113 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Multi_Obj_Evaluator.hpp
-  \brief  NOMAD::Evaluator subclass for multiobjective optimization (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-20
-  \see    Multi_Obj_Evaluator.cpp
-*/
+ \file   Multi_Obj_Evaluator.hpp
+ \brief  NOMAD::Evaluator subclass for multiobjective optimization (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-20
+ \see    Multi_Obj_Evaluator.cpp
+ */
 #ifndef __MULTI_OBJ_EVALUATOR__
 #define __MULTI_OBJ_EVALUATOR__
 
 #include "Phase_One_Evaluator.hpp"
 
 namespace NOMAD {
-
-  /// NOMAD::Evaluator subclass for multiobjective optimization.
-  /**
-     Version for two objective functions.
-  */
-  class Multi_Obj_Evaluator : public NOMAD::Evaluator {
-
-  private:
-
-    static int           _i1;   ///< Index of the first objective.
-    static int           _i2;   ///< Index of the second objective.
-
-    NOMAD::Double        _w1;   ///< Weight on the first objective function.
-    NOMAD::Double        _w2;   ///< Weight on the second objective function.
-  
-    const NOMAD::Point * _ref;  ///< Reference point.
-
-  public:
-
-    /// Constructor.
-    /**
-       \param p Parameters -- \b IN.
-    */
-    Multi_Obj_Evaluator ( const NOMAD::Parameters & p )
-      : NOMAD::Evaluator ( p    ) ,
-	_w1              ( 1.0  ) ,
-	_w2              ( 0.0  ) ,
-	_ref             ( NULL )   { _is_multi_obj = true; }
-
-    /// Destructor.
-    virtual ~Multi_Obj_Evaluator ( void ) {}
-
-    /// Initialization of objective indexes.
-    /**
-       \param index_obj List of objective indexes -- \b IN.
-    */
-    static void set_obj_indexes ( const std::list<int> & index_obj );
-
-    /// Updates after a MADS run.
-    /**
-       This virtual method is called every time a MADS run is terminated.
-       \param stats        Stats                           -- \b IN.
-       \param ev_control   Evaluator control               -- \b IN.
-       \param true_barrier Barrier for true functions      -- \b IN.
-       \param sgte_barrier Barrier for surrogate functions -- \b IN.
-       \param pareto_front Pareto front                    -- \b IN.
-    */
-    virtual void update_mads_run ( const NOMAD::Stats             & stats        ,
-				   const NOMAD::Evaluator_Control & ev_control   ,
-				   const NOMAD::Barrier           & true_barrier ,
-				   const NOMAD::Barrier           & sgte_barrier ,
-				   const NOMAD::Pareto_Front      & pareto_front   ) {}
-
-    /// Compute \c f(x) from the blackbox outputs of a point.
+    
+    /// NOMAD::Evaluator subclass for multiobjective optimization.
     /**
-       - Bi-objective version.
-       - Computation of \c f taking into account the two objectives
+     Version for two objective functions.
+     */
+    class Multi_Obj_Evaluator : public NOMAD::Evaluator {
+        
+    private:
+        
+        static int           _i1;   ///< Index of the first objective.
+        static int           _i2;   ///< Index of the second objective.
+        
+        NOMAD::Double        _w1;   ///< Weight on the first objective function.
+        NOMAD::Double        _w2;   ///< Weight on the second objective function.
+        
+        const NOMAD::Point * _ref;  ///< Reference point.
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p Parameters -- \b IN.
+         */
+        Multi_Obj_Evaluator ( const NOMAD::Parameters & p )
+        : NOMAD::Evaluator ( p    ) ,
+        _w1              ( 1.0  ) ,
+        _w2              ( 0.0  ) ,
+        _ref             ( NULL )   { _is_multi_obj = true; }
+        
+        /// Destructor.
+        virtual ~Multi_Obj_Evaluator ( void ) {}
+        
+        /// Initialization of objective indexes.
+        /**
+         \param index_obj List of objective indexes -- \b IN.
+         */
+        static void set_obj_indexes ( const std::list<int> & index_obj );
+        
+        /// Updates after a MADS run.
+        /**
+         This virtual method is called every time a MADS run is terminated.
+         \param stats        Stats                           -- \b IN.
+         \param ev_control   Evaluator control               -- \b IN.
+         \param true_barrier Barrier for true functions      -- \b IN.
+         \param sgte_barrier Barrier for surrogate functions -- \b IN.
+         \param pareto_front Pareto front                    -- \b IN.
+         */
+        virtual void update_mads_run ( const NOMAD::Stats             & stats        ,
+                                      const NOMAD::Evaluator_Control & ev_control   ,
+                                      const NOMAD::Barrier           & true_barrier ,
+                                      const NOMAD::Barrier           & sgte_barrier ,
+                                      const NOMAD::Pareto_Front      & pareto_front   ) {}
+        
+        /// Compute \c f(x) from the blackbox outputs of a point.
+        /**
+         - Bi-objective version.
+         - Computation of \c f taking into account the two objectives
          with a reformulation based on a reference point, or
          with weights when no reference is available.
-	 \param x The evaluation point -- \b IN/OUT.
-    */
-    virtual void compute_f ( NOMAD::Eval_Point & x ) const;
-
-    /// Get the index of the first objective function.
-    /**
-       \return The index of the first objective function.
-    */
-    static int get_i1 ( void ) { return _i1; }
-
-    /// Get the index of the second objective function.
-    /**
-       \return The index of the second objective function.
-    */
-    static int get_i2 ( void ) { return _i2; }
-    
-    /// Set the weights.
-    /**
-       \param w1 Weight on the first objective function  -- \b IN.
-       \param w2 Weight on the second objective function -- \b IN.
-    */
-    void set_weights ( const NOMAD::Double & w1 ,
-		       const NOMAD::Double & w2   ) { _w1 = w1; _w2 = w2; }
-    
-    /// Set the reference point.
-    /**
-       \param ref A pointer to the reference point -- \b IN.
-    */
-    void set_ref ( const NOMAD::Point * ref ) { _ref = ref; }
-  };
+         \param x The evaluation point -- \b IN/OUT.
+         */
+        virtual void compute_f ( NOMAD::Eval_Point & x ) const;
+        
+        /// Get the index of the first objective function.
+        /**
+         \return The index of the first objective function.
+         */
+        static int get_i1 ( void ) { return _i1; }
+        
+        /// Get the index of the second objective function.
+        /**
+         \return The index of the second objective function.
+         */
+        static int get_i2 ( void ) { return _i2; }
+        
+        /// Set the weights.
+        /**
+         \param w1 Weight on the first objective function  -- \b IN.
+         \param w2 Weight on the second objective function -- \b IN.
+         */
+        void set_weights ( const NOMAD::Double & w1 ,
+                          const NOMAD::Double & w2   )
+        {
+            _w1 = w1;
+            _w2 = w2;
+        }
+        
+        /// Set the reference point.
+        /**
+         \param ref A pointer to the reference point -- \b IN.
+         */
+        void set_ref ( const NOMAD::Point * ref ) { _ref = ref; }
+        
+        
+    };
 }
 
 #endif
diff --git a/src/Multi_Obj_Quad_Model_Evaluator.hpp b/src/Multi_Obj_Quad_Model_Evaluator.hpp
index 932fa5a..c59b5f4 100644
--- a/src/Multi_Obj_Quad_Model_Evaluator.hpp
+++ b/src/Multi_Obj_Quad_Model_Evaluator.hpp
@@ -1,7 +1,8 @@
+
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3  */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
+/*  Copyright (C) 2001-2015  Mark Abramson        - Brigham Young University, Provo    */
 /*                           Charles Audet        - Ecole Polytechnique, Montreal      */
 /*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
 /*                           John Dennis          - Rice University, Houston           */
@@ -36,7 +37,7 @@
 /**
  \file   Multi_Obj_Quad_Model_Evaluator.hpp
  \brief  NOMAD::Mulit_Obj_Evaluator subclass for quadratic model optimization (headers)
- \author Christophe Tribes 
+ \author Christophe Tribes
  \date   2014-06-19
  \see    Multi_Obj_Quad_Model_Evaluator.cpp
  */
@@ -47,36 +48,36 @@
 #include "Multi_Obj_Evaluator.hpp"
 
 namespace NOMAD {
-	
-	/// Bi-objective NOMAD::Evaluator subclass for quadratic model.
-	class Multi_Obj_Quad_Model_Evaluator : public NOMAD::Quad_Model_Evaluator, public NOMAD::Multi_Obj_Evaluator {     		
-	public:
-		
-		/// Constructor.
-		/**
-		 \param p     Parameters -- \b IN.
-		 \param model Model      -- \b IN.
-		 */
-		Multi_Obj_Quad_Model_Evaluator ( const NOMAD::Parameters & p     ,
-										const NOMAD::Quad_Model & model   ) : NOMAD::Quad_Model_Evaluator(p,model),NOMAD::Multi_Obj_Evaluator(p) {_is_model_evaluator=true;}
-		
-		/// Destructor.
-		virtual ~Multi_Obj_Quad_Model_Evaluator ( void ){;}
-		
-		
-		///  Evaluate the blackboxes quad model at a given trial point
-		/**
-		 \param x          point to evaluate     -- \b IN/OUT.
-		 \param h_max      h_max for barrier     -- \b IN.
-		 \param count_eval Count eval if true    -- \b IN.
-		 \return A boolean equal to \c false if the evaluation failed.
-		 */	
-		virtual bool eval_x ( NOMAD::Eval_Point   & x          ,
-							 const NOMAD::Double & h_max      ,
-							 bool                & count_eval   ) const {return Quad_Model_Evaluator::eval_x(x,h_max,count_eval);}
-		
-		
-	};
+    
+    /// Bi-objective NOMAD::Evaluator subclass for quadratic model.
+    class Multi_Obj_Quad_Model_Evaluator : public NOMAD::Quad_Model_Evaluator, public NOMAD::Multi_Obj_Evaluator {
+    public:
+        
+        /// Constructor.
+        /**
+         \param p     Parameters -- \b IN.
+         \param model Model      -- \b IN.
+         */
+        Multi_Obj_Quad_Model_Evaluator ( const NOMAD::Parameters & p     ,
+                                        const NOMAD::Quad_Model & model   ) : NOMAD::Quad_Model_Evaluator(p,model),NOMAD::Multi_Obj_Evaluator(p) {_is_model_evaluator=true;}
+        
+        /// Destructor.
+        virtual ~Multi_Obj_Quad_Model_Evaluator ( void ){;}
+        
+        
+        ///  Evaluate the blackboxes quad model at a given trial point
+        /**
+         \param x          point to evaluate     -- \b IN/OUT.
+         \param h_max      h_max for barrier     -- \b IN.
+         \param count_eval Count eval if true    -- \b IN.
+         \return A boolean equal to \c false if the evaluation failed.
+         */
+        virtual bool eval_x ( NOMAD::Eval_Point   & x          ,
+                             const NOMAD::Double & h_max      ,
+                             bool                & count_eval   ) const {return Quad_Model_Evaluator::eval_x(x,h_max,count_eval);}
+        
+        
+    };
 }
 
 #endif
diff --git a/src/OrthogonalMesh.cpp b/src/OrthogonalMesh.cpp
index 1c7331a..d0a0e60 100644
--- a/src/OrthogonalMesh.cpp
+++ b/src/OrthogonalMesh.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -44,69 +51,80 @@
 #include "OrthogonalMesh.hpp"
 
 /// Constructor (called only by derived objects).
-NOMAD::OrthogonalMesh::OrthogonalMesh (const NOMAD::Point	& Delta_0   ,
-                                       const NOMAD::Point	& Delta_min ,
-                                       const NOMAD::Point	& delta_min ,
-                                       const NOMAD::Point  & fixed_variables ,
-                                       NOMAD::Double		update_basis,
-                                       int					coarsening_step,
-                                       int					refining_step,
-                                       int                  limit_mesh_index ) :
-_delta_0			( Delta_0 ),
-_Delta_0			( Delta_0 ),
-_Delta_min			( Delta_min ),
-_delta_min			( delta_min ),
-_update_basis		( update_basis ),
-_coarsening_step	( coarsening_step ),
-_refining_step		( refining_step ),
+NOMAD::OrthogonalMesh::OrthogonalMesh (bool                    anisotropic_mesh ,
+                                       const NOMAD::Point    & Delta_0          ,
+                                       const NOMAD::Point    & Delta_min        ,
+                                       const NOMAD::Point    & delta_min        ,
+                                       const NOMAD::Point    & fixed_variables  ,
+                                       const NOMAD::Point    & granularity      ,
+                                       NOMAD::Double           update_basis     ,
+                                       int                     coarsening_step  ,
+                                       int                     refining_step    ,
+                                       int                     limit_mesh_index ) :
+_delta_0            ( Delta_0 ),
+_Delta_0            ( Delta_0 ),
+_Delta_min          ( Delta_min ),
+_delta_min          ( delta_min ),
+_fixed_variables    ( fixed_variables ),
+_granularity        ( granularity ),
+_anisotropic_mesh   ( anisotropic_mesh ),
+_update_basis       ( update_basis ),
+_coarsening_step    ( coarsening_step ),
+_refining_step      ( refining_step ),
 _limit_mesh_index   ( limit_mesh_index )
 {
-
-    _Delta_min_is_defined=_Delta_min.is_defined();
-    _Delta_min_is_complete=_Delta_min.is_complete();
     
-    bool chkMesh  = delta_min.is_defined();
-    bool chkPoll  = _Delta_min_is_defined;
-    _n = Delta_0.size();
     
+    _Delta_min_is_defined = _Delta_min.is_defined();
+    _Delta_min_is_complete = _Delta_min.is_complete();
     
-    _n_free_variables = _n - fixed_variables.nb_defined();
+    _delta_min_is_defined = _delta_min.is_defined();
+    _delta_min_is_complete = _delta_min.is_complete();
     
-    // The delta_0 are decreased
-    _delta_0*=pow(_n_free_variables,-0.5);
+    _n = Delta_0.size();
+    
+    _n_free_variables = _n - _fixed_variables.nb_defined();
+    
+    if ( _granularity.is_defined() && ( ! _granularity.is_complete() || _granularity.size() != _n ) )
+        throw NOMAD::Exception ( "OrthogonalMesh.hpp" , __LINE__ ,
+                                "NOMAD::OrthogonalMesh::OrthogonalMesh(): granularity has undefined values" );
     
     if ( !_Delta_0.is_complete() )
         throw NOMAD::Exception (  "OrthogonalMesh.hpp" , __LINE__ ,
                                 "NOMAD::OrthogonalMesh::OrthogonalMesh(): delta_0 has undefined values" );
     
-    if ( chkMesh && delta_min.size() != _n )
+    if ( _delta_min_is_defined && delta_min.size() != _n )
         throw NOMAD::Exception ( "OrthogonalMesh.hpp" , __LINE__ ,
                                 "NOMAD::OrthogonalMesh::OrthogonalMesh(): delta_0 and delta_min have different sizes" );
     
-    if ( chkPoll && Delta_min.size() != _n )
+    if ( _Delta_min_is_defined && Delta_min.size() != _n )
         throw NOMAD::Exception ( "OrthogonalMesh.hpp" , __LINE__ ,
                                 "NOMAD::OrthogonalMesh::OrthogonalMesh(): Delta_0 and Delta_min have different sizes" );
     
     
     std::string error;
+    _all_granular = ( _granularity.is_defined() && _granularity.is_complete() ) ? true:false ;
     for ( int k = 0 ; k < _n ; ++k )
     {
         // we check that Delta_min <= Delta_0 and that delta_min <= delta_0:
-        if ( chkMesh &&
-            _delta_min[k].is_defined()						&&
-            _delta_0[k] < _delta_min[k]		)
+        if ( _delta_min_is_defined      &&
+            _delta_min[k].is_defined()  &&
+            _delta_0[k] < _delta_min[k] )
         {
             error = "NOMAD::OrthogonalMesh::OrthogonalMesh(): delta_0 < delta_min";
             break;
         }
-        if ( chkPoll &&
-            _Delta_min[k].is_defined()						&&
+        if ( _Delta_min_is_defined &&
+            _Delta_min[k].is_defined()                        &&
             _Delta_0[k] < _Delta_min[k]     )
         {
             error = "NOMAD::OrthogonalMesh::OrthogonalMesh(): Delta_0 < Delta_min";
             break;
         }
         
+        if ( _all_granular && _granularity[k] == 0 )
+            _all_granular = false;
+        
     }
     
     if ( !error.empty() )
@@ -137,42 +155,88 @@ void NOMAD::OrthogonalMesh::set_min_mesh_sizes ( const NOMAD::Point & delta_min
     if ( ! delta_min.is_defined() )
     {
         _delta_min.clear();
+        _delta_min_is_defined = false;
+        _delta_min_is_complete = false;
         return;
     }
     
-    // If delta_min defined test that everything is consistent
+    // Test that given delta_min is valid
     if ( delta_min.size() != _n )
-        throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
-                                "NOMAD::OrthogonalMesh::set_min_mesh_sizes() delta_min has dimension different than mesh dimension" );
+        throw NOMAD::Exception ( "OrthogonalMesh.cpp" , __LINE__ ,
+                                "set_min_mesh_sizes() delta_min has dimension different than mesh dimension" );
     
-    if ( !delta_min.is_complete() )
+    if ( ! delta_min.is_complete() )
         throw NOMAD::Exception (  "OrthogonalMesh.hpp" , __LINE__ ,
-                                "NOMAD::OrthogonalMesh::set_min_mesh_sizes(): delta_min has some defined and undefined values" );
+                                "set_min_mesh_sizes(): delta_min has some defined and undefined values" );
+    
+    _delta_min.reset(_n);
+    _delta_min_is_defined = true;
+    _delta_min_is_complete = true;
+    _delta_min=delta_min;
     
     std::string error;
     for ( int k = 0 ; k < _n ; ++k )
     {
         
         // we check that Delta_min <= Delta_0 and that delta_min <= delta_0:
-        if ( delta_min[k].is_defined()						&&
-            _delta_0[k] < delta_min[k]		)
+        if ( delta_min[k].is_defined()    &&
+            _delta_0[k] < delta_min[k]    )
         {
-            error = "NOMAD::OrthogonalMesh::set_delta_min(): delta_0 < delta_min";
-            break;
+            _delta_min[k]=_delta_0[k];
         }
-        if ( delta_min[k].is_defined()						&&
+        if ( delta_min[k].is_defined()    &&
             _Delta_0[k] < delta_min[k]     )
         {
-            error = "NOMAD::OrthogonalMesh::set_delta_min(): Delta_0 < delta_min";
-            break;
+            _delta_min[k]=_Delta_0[k];
         }
         
     }
     
     if ( !error.empty() )
-        throw NOMAD::Exception ( "OrthogonalMesh.hpp" , __LINE__ , error );
+        throw NOMAD::Exception ( "OrthogonalMesh.cpp" , __LINE__ , error );
     
-    _delta_min=delta_min;
+    
+}
+
+
+/// Manually set the min poll size per coordinate.
+void NOMAD::OrthogonalMesh::set_min_poll_sizes ( const NOMAD::Point & Delta_min )
+{
+    
+    // If Delta_min undefined than _Delta_min->undefined
+    if ( ! Delta_min.is_defined() )
+    {
+        _Delta_min.clear();
+        _Delta_min_is_defined = false;
+        _Delta_min_is_complete = false;
+        return;
+    }
+    
+    // Test that given Delta_min is valid
+    if ( Delta_min.size() != _n )
+        throw NOMAD::Exception ( "OrthogonalMesh.cpp" , __LINE__ ,
+                                "set_min_poll_sizes() Delta_min has dimension different than mesh dimension" );
+    
+    // Test that the given Delta_min is complete
+    if ( ! Delta_min.is_complete() )
+        throw NOMAD::Exception (  "OrthogonalMesh.hpp" , __LINE__ ,
+                                "set_min_poll_sizes(): Delta_min has some defined and undefined values" );
+    
+    _Delta_min.reset( _n );
+    _Delta_min = Delta_min;
+    _Delta_min_is_defined = true;
+    _Delta_min_is_complete = true;
+    
+    std::string error;
+    for ( int k = 0 ; k < _n ; ++k )
+    {
+        // we check that Delta_min <= Delta_0 :
+        if ( Delta_min[k].is_defined() && _Delta_0[k] < Delta_min[k] )
+            _Delta_min[k]=_Delta_0[k];
+    }
+    
+    if ( !error.empty() )
+        throw NOMAD::Exception ( "OrthogonalMesh.cpp" , __LINE__ , error );
     
 }
 
diff --git a/src/OrthogonalMesh.hpp b/src/OrthogonalMesh.hpp
index 5971ae5..92887d9 100644
--- a/src/OrthogonalMesh.hpp
+++ b/src/OrthogonalMesh.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   OrthogonalMesh.hpp
-  \brief  Virtual class for the MADS orthogonal meshes (headers)
-  \author Christophe Tribes
-  \date   2010-04-06
-  \see    Mesh.cpp XMesh.cpp
-*/
+ \file   OrthogonalMesh.hpp
+ \brief  Virtual class for the MADS orthogonal meshes (headers)
+ \author Christophe Tribes
+ \date   2010-04-06
+ \see    Mesh.cpp XMesh.cpp
+ */
 #ifndef __ORTHOGONALMESH__
 #define __ORTHOGONALMESH__
 
@@ -47,338 +54,366 @@
 #include "Direction.hpp"
 
 namespace NOMAD {
-	
-	/// Virtual class for the MADS orthogonal meshes.
-	/**
+    
+    /// Virtual class for the MADS orthogonal meshes.
+    /**
      - An orthogonal mesh in NOMAD is defined with the basic orthogonal directions the
-	 mesh size parameter delta^k.
+     mesh size parameter delta^k.
      - The poll size parameter Delta^k is not used to define the mesh but
-	 to define the poll trial points. 
+     to define the poll trial points.
      - At each MADS iteration the mesh is updated.
      - Mesh and poll size parameters are stored as NOMAD::Point objects.
-	 */
-	class OrthogonalMesh {
-		
-		/*--------------------------------------------------------------*/
-	private:
-
-			
-		/*--------------------------------------------------------------*/
-		
-		/// Private affectation operator.
-		/**
-		 \param m The right-hand side object -- \b IN.
-		 */
-		const OrthogonalMesh & operator = ( const OrthogonalMesh & m );
-		
-		
-		/*--------------------------------------------------------------*/
-	protected:
-		
-		
-		NOMAD::Point	_delta_0;
-		NOMAD::Point	_Delta_0;
-		NOMAD::Point	_Delta_min;
-		NOMAD::Point	_delta_min;
-        
-		
-		NOMAD::Double	_update_basis;
-		int				_coarsening_step;
-		int				_refining_step  ;
-		
-		int				_n;
+     - A mesh index is mapped to the mesh and poll sizes.
+     */
+    class OrthogonalMesh {
+        
+        /*--------------------------------------------------------------*/
+    private:
+        
+        
+        /*--------------------------------------------------------------*/
+        
+        /// Private affectation operator.
+        /**
+         \param m The right-hand side object -- \b IN.
+         */
+        const OrthogonalMesh & operator = ( const OrthogonalMesh & m );
+        
+        
+        /*--------------------------------------------------------------*/
+    protected:
+        
+        
+        NOMAD::Point    _delta_0;
+        NOMAD::Point    _Delta_0;
+        NOMAD::Point    _Delta_min;
+        NOMAD::Point    _delta_min;
+        NOMAD::Point    _fixed_variables;
+        NOMAD::Point    _granularity;
+        
+        bool            _anisotropic_mesh;
+        bool            _all_granular;
         
         bool            _Delta_min_is_defined;
         bool            _Delta_min_is_complete;
+        bool            _delta_min_is_defined;
+        bool            _delta_min_is_complete;
+        
         
+        NOMAD::Double   _update_basis;
+        int             _coarsening_step;
+        int             _refining_step  ;
+        
+        int             _n;
         int             _n_free_variables;
         
         int             _limit_mesh_index;   // Limit max or min of the mesh index for fine mesh (SMesh->max, XMesh->min)
-		
-		/// Constructor (called only by derived objects).
-		/**
-		 \param Delta_0						Initial poll size Delta_0						-- \b IN.
-		 \param Delta_min					Minimal poll size Delta_min (may be undefined)	-- \b IN.
-		 \param delta_min					Minimal mesh size delta_min (may be undefined)	-- \b IN.
-		 \param fixed_variables				Fixed variables                                 -- \b IN.
-		 \param update_basis				Mesh/poll update basis       (tau)				-- \b IN.
-		 \param coarsening_step				Mesh/poll coarsening exponent (w+)				-- \b IN.
-		 \param refining_step				Mesh/poll refining exponent   (w-)				-- \b IN.
-         \param limit_mesh_index            Limit mesh index to trigger stopping criterion  -- \b IN.
-		 */
-		OrthogonalMesh (const NOMAD::Point	& Delta_0   ,
-						const NOMAD::Point	& Delta_min ,
-						const NOMAD::Point	& delta_min ,
-                        const NOMAD::Point  & fixed_variables ,
-						NOMAD::Double		update_basis,
-						int					coarsening_step,
-						int					refining_step,
-                        int                 limit_mesh_index ) ;
-		
-		
-		/// Copy constructor (called only by derived objects).
-		/**
-		 \param m The copied object -- \b IN.
-		 */
-		OrthogonalMesh ( const OrthogonalMesh & m )
-		:	_delta_0			( m._delta_0			),
-		_Delta_0				( m._Delta_0			),
-		_Delta_min				( m._Delta_min			),
-		_delta_min				( m._delta_min			),
-		_update_basis			( m._update_basis		),
-		_coarsening_step		( m._coarsening_step	),
-		_refining_step			( m._refining_step		),
-		_n						( m._n					),
-        _Delta_min_is_defined   ( m._Delta_min_is_defined ),
-        _Delta_min_is_complete  ( m._Delta_min_is_complete ),
-        _n_free_variables       ( m._n_free_variables   ),
-        _limit_mesh_index       ( m._limit_mesh_index){}
-		
-		
-		/*--------------------------------------------------------------*/	  
-	public:
-		
-        
-		/// Destructor.
-		virtual ~OrthogonalMesh ( void ){;}
-		
-		
-		/// Update the Mesh (poll and mesh sizes).
-		/**
-		 \param success    Type of success of the iteration			-- \b IN.
-		 \param dir        Direction of the iteration (optional)	-- \b IN.
-		 */
-		virtual void update ( NOMAD::success_type success, const NOMAD::Direction * dir=NULL) = 0;
-
-		
-		/// Update the provided mesh indices (the Mesh is unchanged).
-		/**
-		 \param success			Type of success of the iteration			-- \b IN.
-		 \param mesh_indices	Provided mesh indices for update			-- \b IN/OUT.
-		 \param dir				Direction of the iteration (optional)		-- \b IN.
-		 */
-		virtual void update ( NOMAD::success_type success, NOMAD::Point & mesh_indices, const NOMAD::Direction * dir=NULL ) const = 0;
-		
-		
-		
-		/// Reset the Mesh to its original sizes (poll and mesh sizes).
-		virtual void reset ( void ) = 0;
-		
-		
-		/// Access to the initial mesh size.
-		/**
-		 \return A NOMAD::Point for the initial mesh size.
-		 */
-		const NOMAD::Point & get_initial_mesh_size ( void ) const { return _delta_0; }
+        
+        /// Constructor (called only by derived objects).
+        /**
+         \param anisotropic_mesh            Anisotropy of the mesh (true or false)           -- \b IN.
+         \param Delta_0                     Initial poll size Delta_0                        -- \b IN.
+         \param Delta_min                   Minimal poll size Delta_min (may be undefined)   -- \b IN.
+         \param delta_min                   Minimal mesh size delta_min (may be undefined)   -- \b IN.
+         \param fixed_variables             Fixed variables                                  -- \b IN.
+         \param granularity                 Granularity of variables                         -- \b IN.
+         \param update_basis                Mesh/poll update basis       (tau)               -- \b IN.
+         \param coarsening_step             Mesh/poll coarsening exponent (w+)               -- \b IN.
+         \param refining_step               Mesh/poll refining exponent   (w-)               -- \b IN.
+         \param limit_mesh_index            Limit mesh index to trigger stopping criterion   -- \b IN.
+         */
+        OrthogonalMesh (bool                    anisotropic_mesh ,
+                        const NOMAD::Point    & Delta_0   ,
+                        const NOMAD::Point    & Delta_min ,
+                        const NOMAD::Point    & delta_min ,
+                        const NOMAD::Point    & fixed_variables ,
+                        const NOMAD::Point    & granularity ,
+                        NOMAD::Double           update_basis,
+                        int                     coarsening_step,
+                        int                     refining_step,
+                        int                     limit_mesh_index ) ;
+        
+        
+        /// Copy constructor (called only by derived objects).
+        /**
+         \param m The copied object -- \b IN.
+         */
+        OrthogonalMesh ( const OrthogonalMesh & m )
+        :
+        _delta_0                ( m._delta_0                ),
+        _Delta_0                ( m._Delta_0                ),
+        _Delta_min              ( m._Delta_min              ),
+        _delta_min              ( m._delta_min              ),
+        _fixed_variables        ( m._fixed_variables        ),
+        _granularity            ( m._granularity            ),
+        _anisotropic_mesh       ( m._anisotropic_mesh       ),
+        _Delta_min_is_defined   ( m._Delta_min_is_defined   ),
+        _Delta_min_is_complete  ( m._Delta_min_is_complete  ),
+        _delta_min_is_defined   ( m._delta_min_is_defined   ),
+        _delta_min_is_complete  ( m._delta_min_is_complete  ),
+        _update_basis           ( m._update_basis           ),
+        _coarsening_step        ( m._coarsening_step        ),
+        _refining_step          ( m._refining_step          ),
+        _n                      ( m._n                      ),
+        _n_free_variables       ( m._n_free_variables       ),
+        _limit_mesh_index       ( m._limit_mesh_index       ){}
+        
+        
+        /*--------------------------------------------------------------*/
+    public:
+        
+        
+        /// Destructor.
+        virtual ~OrthogonalMesh ( void ){;}
+        
+        
+        /// Update the Mesh (poll and mesh sizes).
+        /**
+         \param success    Type of success of the iteration         -- \b IN.
+         \param dir        Direction of the iteration (optional)    -- \b IN.
+         */
+        virtual void update ( NOMAD::success_type success, const NOMAD::Direction * dir=NULL) = 0;
+        
+        
+        /// Update the provided mesh indices (the Mesh is unchanged).
+        /**
+         \param success         Type of success of the iteration         -- \b IN.
+         \param mesh_indices    Provided mesh indices for update         -- \b IN/OUT.
+         \param dir             Direction of the iteration (optional)    -- \b IN.
+         */
+        virtual void update ( NOMAD::success_type success, NOMAD::Point & mesh_indices,
+                             const NOMAD::Direction * dir=NULL ) const = 0;
+        
+        
+        
+        /// Reset the Mesh to its original sizes (poll and mesh sizes).
+        virtual void reset ( void ) = 0;
+        
+        
+        /// Access to the initial mesh size.
+        /**
+         \return A NOMAD::Point for the initial mesh size.
+         */
+        const NOMAD::Point & get_initial_mesh_size ( void ) const { return _delta_0; }
         
         /// Access to the initial poll size.
         /**
          \return A NOMAD::Point for the initial poll size.
          */
         const NOMAD::Point & get_initial_poll_size ( void ) const { return _Delta_0; }
-
-				
-		/// Access to the minimal mesh size.
-		/**
-		 \return A NOMAD::Point for the minimal mesh size.
-		 */
-		const NOMAD::Point & get_min_mesh_size ( void ) const { return _delta_min; }
-		
-        
-		/// Access to the minimal poll size.
-		/**
-		 \return A NOMAD::Point for the minimal poll size.
-		 */
-		const NOMAD::Point & get_min_poll_size ( void ) const { return _Delta_min; }
-		
-		
-		/// Test if mesh is finest so far.
-		/**
-		 \return True if mesh is the finest so far, False otherwise.
-		 */	
-		virtual bool is_finest(void) const = 0;
         
-
+        
+        /// Access to the minimal mesh size.
+        /**
+         \return A NOMAD::Point for the minimal mesh size.
+         */
+        const NOMAD::Point & get_min_mesh_size ( void ) const { return _delta_min; }
+        
+        
+        /// Access to the minimal poll size.
+        /**
+         \return A NOMAD::Point for the minimal poll size.
+         */
+        const NOMAD::Point & get_min_poll_size ( void ) const { return _Delta_min; }
+        
+        
+        /// Test if mesh is finest so far.
+        /**
+         \return True if mesh is the finest so far, False otherwise.
+         */
+        virtual bool is_finest(void) const = 0;
+        
+        
         /// Test if current mesh is finer than initial mesh (used by VNS search).
-		/**
-		 \return True if mesh size is smaller than initial mesh size for all components.
-		 */
-		bool is_finer_than_initial (void) const;
-
+        /**
+         \return True if mesh size is smaller than initial mesh size for all components.
+         */
+        virtual bool is_finer_than_initial (void) const;
+        
+        
+        /// Access to the mesh/poll update basis tau.
+        /**
+         \return A double with the update basis tau.
+         */
+        double get_update_basis ( void ) const { return _update_basis.value(); }
+        
+        
+        /// Access to the mesh ratio after a success
+        /**
+         \return A point with the ratio for each coordinate
+         */
+        virtual NOMAD::Point get_mesh_ratio_if_success( void ) const = 0;
+        
+        
+        /// Access to the number of variables.
+        /**
+         \return An integer with the number of variables.
+         */
+        int get_n ( void ) const { return _n; }
         
-		/// Access to the mesh/poll update basis tau.
-		/**
-		 \return A double with the update basis tau.
-		 */
-		double get_update_basis ( void ) const { return _update_basis.value(); }
-        
-		
-		/// Access to the mesh ratio after a success
-		/**
-		 \return A point with the ratio for each coordinate
-		 */
-		virtual NOMAD::Point get_mesh_ratio_if_success( void ) const = 0;
-		
-		
-		/// Access to the number of variables.
-		/**
-		 \return An integer with the number of variables.
-		 */
-		int get_n ( void ) const { return _n; }
         
-
         /// Access to the number of free variables.
-		/**
-		 \return An integer with the number of free variables.
-		 */
-		int get_n_free_variables ( void ) const { return _n_free_variables; }
-
+        /**
+         \return An integer with the number of free variables.
+         */
+        int get_n_free_variables ( void ) const { return _n_free_variables; }
+        
         
         /// Access to the mesh size parameter delta^k.
-		/**
-		 \return delta    The mesh size parameter delta^k -- \b OUT.
-		 */
-		NOMAD::Point get_delta ( void ) const
+        /**
+         \return delta    The mesh size parameter delta^k -- \b OUT.
+         */
+        NOMAD::Point get_delta ( void ) const
         {
             NOMAD::Point delta;
             get_delta(delta);
             return delta;
         }
-
-		/// Access to the mesh size parameter delta^k.
-		/**
-		 \param delta    The mesh size parameter delta^k -- \b OUT.
-		 \return A boolean equal to \c true if all values are
-		 strictly inferior than the associated minimal
-		 mesh size delta_min
-		 (stopping criterion MIN_MESH_SIZE).
-		 */
-		virtual bool get_delta ( NOMAD::Point & delta ) const = 0;
-		 
-		/// Access to the largest mesh size.
-		/**
-		 \return  The largest mesh size  -- \b OUT.
-		 */
-		virtual NOMAD::Point get_delta_max ( void ) const = 0;
-		
+        
+        /// Access to the mesh size parameter delta^k.
+        /**
+         \param delta    The mesh size parameter delta^k -- \b OUT.
+         \return A boolean equal to \c true if all values are
+         strictly inferior than the associated minimal
+         mesh size delta_min
+         (stopping criterion MIN_MESH_SIZE).
+         */
+        virtual bool get_delta ( NOMAD::Point & delta ) const = 0;
+        
+        /// Access to the largest mesh size.
+        /**
+         \return  The largest mesh size  -- \b OUT.
+         */
+        virtual NOMAD::Point get_delta_max ( void ) const = 0;
+        
         
         /// Access to the poll size parameter Delta^k.
-		/**
-		 \return Delta    The poll size parameter Delta^k -- \b OUT.
-		 */
-		NOMAD::Point get_Delta ( void )
+        /**
+         \return Delta    The poll size parameter Delta^k -- \b OUT.
+         */
+        NOMAD::Point get_Delta ( void )
         {
             NOMAD::Point Delta;
             get_Delta(Delta);
             return Delta;
         }
         
-		/// Access to the poll size parameter Delta^k.
-		/**
-		 \param Delta    The poll size parameter Delta^k -- \b OUT.
-		 \return A boolean equal to \c true if all values are
-		 strictly inferior than the associated minimal
-		 mesh size delta_min
-		 (stopping criterion MIN_POLL_SIZE).
-		 */
-		virtual bool get_Delta ( NOMAD::Point & Delta ) const = 0 ;
-		
-		
-		/// Display.
-		/**
-		 \param out The NOMAD::Display object -- \b IN.
-		 */
-		virtual void display ( const NOMAD::Display & out ) const = 0;
-		
-		/// Check the stopping conditions on the minimal poll and mesh sizes.
-		/**
-		 \param stop           Stop flag                  -- \b IN/OUT.
-		 \param stop_reason    Stop reason                -- \b OUT.
-		 */
-		virtual void check_min_mesh_sizes (	bool             & stop           ,
-										   NOMAD::stop_type & stop_reason      ) const = 0;
-		
-		/// Access to the mesh indices per coordinate.
-		/**
-		 \return A point with the mesh index for each coordinate.
-		 */
-		virtual const NOMAD::Point get_mesh_indices ( void  ) const = 0;
-		
-		/// Manually set the mesh indices per coordinate (virtual).
-		/**
-		 \param r   The mesh index per coordinate -- \b IN.
-		 */
-		virtual void set_mesh_indices ( const NOMAD::Point & r ) =0 ;
-        
- 		/// Manually set the min mesh size per coordinate.
-		/**
-		 \param delta_min   The min mesh sizes per coordinate (can be undefined) -- \b IN.
-		 */
-		void set_min_mesh_sizes ( const NOMAD::Point & delta_min );
-        
- 		/// Manually set intial mesh size per coordinate.
-		/**
-		 \param d   The initial mesh sizes per coordinate -- \b IN.
-		 */
+        /// Access to the poll size parameter Delta^k.
+        /**
+         \param Delta    The poll size parameter Delta^k -- \b OUT.
+         \return A boolean equal to \c true if all values are
+         strictly inferior than the associated minimal
+         mesh size delta_min
+         (stopping criterion MIN_POLL_SIZE).
+         */
+        virtual bool get_Delta ( NOMAD::Point & Delta ) const = 0 ;
+        
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        virtual void display ( const NOMAD::Display & out ) const = 0;
+        
+        /// Check the stopping conditions on the minimal poll and mesh sizes.
+        /**
+         \param stop           Stop flag                  -- \b IN/OUT.
+         \param stop_reason    Stop reason                -- \b OUT.
+         */
+        virtual void check_min_mesh_sizes ( bool             & stop             ,
+                                            NOMAD::stop_type & stop_reason      ) const = 0;
+        
+        /// Access to the mesh indices per coordinate.
+        /**
+         \return A point with the mesh index for each coordinate.
+         */
+        virtual const NOMAD::Point get_mesh_indices ( void  ) const = 0;
+        
+        /// Manually set the mesh indices per coordinate (virtual).
+        /**
+         \param r   The mesh index per coordinate -- \b IN.
+         */
+        virtual void set_mesh_indices ( const NOMAD::Point & r ) =0 ;
+        
+        /// Manually set the min mesh size per coordinate.
+        /**
+         \param delta_min   The min mesh sizes per coordinate (can be undefined) -- \b IN.
+         */
+        void set_min_mesh_sizes ( const NOMAD::Point & delta_min );
+        
+        /// Manually set the min poll size per coordinate.
+        /**
+         \param Delta_min   The min poll sizes per coordinate (can be undefined) -- \b IN.
+         */
+        void set_min_poll_sizes ( const NOMAD::Point & Delta_min );
+        
+        
+        /// Manually set intial mesh size per coordinate.
+        /**
+         \param d   The initial mesh sizes per coordinate -- \b IN.
+         */
         void set_delta_0 ( const NOMAD::Point & d );
         
-  		/// Manually set intial poll size per coordinate.
-		/**
-		 \param d   The initial poll sizes per coordinate -- \b IN.
-		 */
+        /// Manually set intial poll size per coordinate.
+        /**
+         \param d   The initial poll sizes per coordinate -- \b IN.
+         */
         void set_Delta_0 ( const NOMAD::Point & d );
-
-		
-		/// Access to the min mesh indices reached so far.
-		/**
-		 \return A point with the mesh index for each coordinate.
-		 */
-		virtual const NOMAD::Point get_min_mesh_indices ( void  ) const = 0;	
-		
-		/// Access to the max mesh indices reached so far.
-		/**
-		 \return A point with the mesh index for each coordinate.
-		 */
-		virtual const NOMAD::Point get_max_mesh_indices ( void  ) const = 0;	
-		
-
+        
+        
+        /// Access to the min mesh indices reached so far.
+        /**
+         \return A point with the mesh index for each coordinate.
+         */
+        virtual const NOMAD::Point get_min_mesh_indices ( void  ) const = 0;
+        
+        /// Access to the max mesh indices reached so far.
+        /**
+         \return A point with the mesh index for each coordinate.
+         */
+        virtual const NOMAD::Point get_max_mesh_indices ( void  ) const = 0;
+        
+        
         /// Access to the limit mesh index.
-		/**
-		 \return An integer with the limit mesh index.
-		 */
-		int get_limit_mesh_index ( void  ) const { return _limit_mesh_index;}
+        /**
+         \return An integer with the limit mesh index.
+         */
+        int get_limit_mesh_index ( void  ) const { return _limit_mesh_index;}
         
         
         /// Manually set the limit mesh index.
-		/**
-		 \param limit_mesh_index   The limit mesh index.
-		 */
-		virtual void set_limit_mesh_index ( int limit_mesh_index  ) = 0;
-
+        /**
+         \param limit_mesh_index   The limit mesh index.
+         */
+        virtual void set_limit_mesh_index ( int limit_mesh_index  ) = 0;
+        
+        
+        /// Scale and project the ith component of a vector on the mesh
+        /**
+         \param i           The vector component number                         -- \b IN.
+         \param l           The vector component value                          -- \b IN.
+         \param round_up    The flag to perform or not rounding up (optional)   -- \b IN.
+         \return            The ith component of a vector after mesh scaling and projection
+         */
+        virtual NOMAD::Double scale_and_project(int i,
+                                                const NOMAD::Double & l,
+                                                bool round_up=false ) const = 0 ;
+        
         
-		/// Scale and project the ith component of a vector on the mesh
-		/**
-		 \param i	The vector component number			-- \b IN.
-		 \param l	The vector component value			-- \b IN.
-		 \return	The ith component of a vector after mesh scaling and projection
-		 */
-		virtual NOMAD::Double scale_and_project(int i, const NOMAD::Double & l) const = 0 ;
-		
-		
-	};
-	
-	/// Display a NOMAD::OrthogonalMesh object.
-	/**
+    };
+    
+    /// Display a NOMAD::OrthogonalMesh object.
+    /**
      \param out The NOMAD::Display object -- \b IN.
      \param m   The NOMAD::OrthogonalMesh object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-	 */
-	inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
-											   const NOMAD::OrthogonalMesh    & m     )
-	{
-		m.display ( out );
-		return out;
-	}
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
+                                               const NOMAD::OrthogonalMesh    & m     )
+    {
+        m.display ( out );
+        return out;
+    }
 }
 
 #endif
diff --git a/src/Parameter_Entries.cpp b/src/Parameter_Entries.cpp
index 6a7392c..d2ef0d3 100644
--- a/src/Parameter_Entries.cpp
+++ b/src/Parameter_Entries.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Parameter_Entries.cpp
-  \brief  Parameter entries (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-05
-  \see    Parameter_Entries.hpp
-*/
+ \file   Parameter_Entries.cpp
+ \brief  Parameter entries (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-05
+ \see    Parameter_Entries.hpp
+ */
 #include "Parameter_Entries.hpp"
 
 /*--------------------------------------------*/
@@ -47,10 +54,10 @@
 /*--------------------------------------------*/
 NOMAD::Parameter_Entries::~Parameter_Entries ( void )
 {
-  std::multiset<NOMAD::Parameter_Entry*, NOMAD::Parameter_Entry_Comp>::iterator
+    std::multiset<NOMAD::Parameter_Entry*, NOMAD::Parameter_Entry_Comp>::iterator
     end = _entries.end() , it;
-  for ( it = _entries.begin() ; it != end ; ++it)
-    delete *it;
+    for ( it = _entries.begin() ; it != end ; ++it)
+        delete *it;
 }
 
 /*--------------------------------------------*/
@@ -58,12 +65,12 @@ NOMAD::Parameter_Entries::~Parameter_Entries ( void )
 /*--------------------------------------------*/
 NOMAD::Parameter_Entry * NOMAD::Parameter_Entries::find ( const std::string & name ) const
 {
-  NOMAD::Parameter_Entry p (name);
-  std::multiset<NOMAD::Parameter_Entry*, NOMAD::Parameter_Entry_Comp>::const_iterator
+    NOMAD::Parameter_Entry p (name);
+    std::multiset<NOMAD::Parameter_Entry*, NOMAD::Parameter_Entry_Comp>::const_iterator
     it = _entries.find ( &p );
-  if ( it != _entries.end() )
-    return (*it);
-  return NULL;
+    if ( it != _entries.end() )
+        return (*it);
+    return NULL;
 }
 
 /*----------------------------------------*/
@@ -71,15 +78,16 @@ NOMAD::Parameter_Entry * NOMAD::Parameter_Entries::find ( const std::string & na
 /*----------------------------------------*/
 void NOMAD::Parameter_Entries::insert ( NOMAD::Parameter_Entry * entry )
 {
-  NOMAD::Parameter_Entry * cur = find ( entry->get_name() );
-  if ( cur ) {
-    entry->set_unique ( false );
-    cur->set_unique   ( false );
-    while ( cur->get_next() )
-      cur = cur->get_next();
-    cur->set_next ( entry );
-  }
-  _entries.insert ( entry );
+    NOMAD::Parameter_Entry * cur = find ( entry->get_name() );
+    if ( cur )
+    {
+        entry->set_unique ( false );
+        cur->set_unique   ( false );
+        while ( cur->get_next() )
+            cur = cur->get_next();
+        cur->set_next ( entry );
+    }
+    _entries.insert ( entry );
 }
 
 /*----------------------------------------*/
@@ -87,12 +95,12 @@ void NOMAD::Parameter_Entries::insert ( NOMAD::Parameter_Entry * entry )
 /*----------------------------------------*/
 NOMAD::Parameter_Entry * NOMAD::Parameter_Entries::find_non_interpreted ( void ) const
 {
-  std::multiset<NOMAD::Parameter_Entry*, NOMAD::Parameter_Entry_Comp>::const_iterator
+    std::multiset<NOMAD::Parameter_Entry*, NOMAD::Parameter_Entry_Comp>::const_iterator
     end = _entries.end() , it;
-  for ( it = _entries.begin() ; it != end ; ++it )
-    if ( !(*it)->has_been_interpreted() )
-      return *it;
-  return NULL;
+    for ( it = _entries.begin() ; it != end ; ++it )
+        if ( !(*it)->has_been_interpreted() )
+            return *it;
+    return NULL;
 }
 
 /*--------------------------------------------*/
@@ -100,8 +108,8 @@ NOMAD::Parameter_Entry * NOMAD::Parameter_Entries::find_non_interpreted ( void )
 /*--------------------------------------------*/
 void NOMAD::Parameter_Entries::display ( const NOMAD::Display & out ) const
 {
-  std::multiset<NOMAD::Parameter_Entry*,NOMAD::Parameter_Entry_Comp>::const_iterator
+    std::multiset<NOMAD::Parameter_Entry*,NOMAD::Parameter_Entry_Comp>::const_iterator
     end = _entries.end() , it;
-  for ( it = _entries.begin() ; it != end ; ++it )
-    out << **it << std::endl;
+    for ( it = _entries.begin() ; it != end ; ++it )
+        out << **it << std::endl;
 }
diff --git a/src/Parameter_Entries.hpp b/src/Parameter_Entries.hpp
index aff4d01..d2682bf 100644
--- a/src/Parameter_Entries.hpp
+++ b/src/Parameter_Entries.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,80 +41,81 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Parameter_Entries.hpp
-  \brief  Parameter entries (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-05
-  \see    Parameter_Entries.cpp
-*/
+ \file   Parameter_Entries.hpp
+ \brief  Parameter entries (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-05
+ \see    Parameter_Entries.cpp
+ */
 #ifndef __PARAMETER_ENTRIES__
 #define __PARAMETER_ENTRIES__
 
 #include "Parameter_Entry.hpp"
 
 namespace NOMAD {
-
-  /// Parameter entries.
-  /**
+    
+    /// Parameter entries.
+    /**
      - Objects of this class store NOMAD::Parameter_Entry objects.
      - One NOMAD::Parameter_Entries object summarizes an entire parameters file.
-  */
-  class Parameter_Entries : private NOMAD::Uncopyable {
-
-  private:
-
-    /// List of NOMAD::Parameter_Entry objects (the entries).
-    std::multiset<NOMAD::Parameter_Entry *, NOMAD::Parameter_Entry_Comp> _entries;
-
-  public:
-
-    /// Constructor.
-    explicit Parameter_Entries ( void ) {}
-
-    /// Destructor.
-    virtual ~Parameter_Entries ( void );
-
-    /// Find a specific entry in a set.
-    /**
-       \param  name The name of the wanted NOMAD::Parameter_Entry object -- \b IN.
-       \return      A pointer to the NOMAD::Parameter_Entry object if it
-                    has been found in the list of entries,
-                    or \c NULL otherwise.
-    */
-    NOMAD::Parameter_Entry * find ( const std::string & name ) const;
-  
-    /// Insert a new entry in the list of entries.
-    /**
-       \param entry A pointer to the new NOMAD::Parameter_Entry object -- \b IN.
-    */
-    void insert ( NOMAD::Parameter_Entry * entry );
-
-    /// Find a non-interpreted entry.
-    /**
-       \return A pointer to the first NOMAD::Parameter_Entry that has not been
-               interpreted so far,
-               or \c NULL if all entries have already been interpreted.
-    */
-    NOMAD::Parameter_Entry * find_non_interpreted ( void ) const;
-
-    /// Display.
+     */
+    class Parameter_Entries : private NOMAD::Uncopyable {
+        
+    private:
+        
+        /// List of NOMAD::Parameter_Entry objects (the entries).
+        std::multiset<NOMAD::Parameter_Entry *, NOMAD::Parameter_Entry_Comp> _entries;
+        
+    public:
+        
+        /// Constructor.
+        explicit Parameter_Entries ( void ) {}
+        
+        /// Destructor.
+        virtual ~Parameter_Entries ( void );
+        
+        /// Find a specific entry in a set.
+        /**
+         \param  name The name of the wanted NOMAD::Parameter_Entry object -- \b IN.
+         \return      A pointer to the NOMAD::Parameter_Entry object if it
+         has been found in the list of entries,
+         or \c NULL otherwise.
+         */
+        NOMAD::Parameter_Entry * find ( const std::string & name ) const;
+        
+        /// Insert a new entry in the list of entries.
+        /**
+         \param entry A pointer to the new NOMAD::Parameter_Entry object -- \b IN.
+         */
+        void insert ( NOMAD::Parameter_Entry * entry );
+        
+        /// Find a non-interpreted entry.
+        /**
+         \return A pointer to the first NOMAD::Parameter_Entry that has not been
+         interpreted so far,
+         or \c NULL if all entries have already been interpreted.
+         */
+        NOMAD::Parameter_Entry * find_non_interpreted ( void ) const;
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+    };
+    
+    /// Display a NOMAD::Parameter_Entries object.
     /**
-       \param out The NOMAD::Display object -- \b IN.
-    */    void display ( const NOMAD::Display & out ) const;
-  };
-
-  /// Display a NOMAD::Parameter_Entries object.
-  /**
      \param out The NOMAD::Display object -- \b IN.
      \param e   The NOMAD::Parameter_Entries object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display           & out ,
-					      const NOMAD::Parameter_Entries & e     )
-  {
-    e.display ( out );
-    return out;
-  }
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display           & out ,
+                                               const NOMAD::Parameter_Entries & e     )
+    {
+        e.display ( out );
+        return out;
+    }
 }
 
 #endif
diff --git a/src/Parameter_Entry.cpp b/src/Parameter_Entry.cpp
index de60272..198d80b 100644
--- a/src/Parameter_Entry.cpp
+++ b/src/Parameter_Entry.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Parameter_Entry.cpp
-  \brief  Parameter entry (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-05
-  \see    Parameter_Entry.hpp
-*/
+ \file   Parameter_Entry.cpp
+ \brief  Parameter entry (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-05
+ \see    Parameter_Entry.hpp
+ */
 #include "Parameter_Entry.hpp"
 
 /*-----------------------------------*/
@@ -47,133 +54,147 @@
 /*  . ignores all entries after '#'  */
 /*-----------------------------------*/
 NOMAD::Parameter_Entry::Parameter_Entry ( const std::string & entry           ,
-					  bool                remove_comments   )
-  : _ok                   ( false ) ,
-    _unique               ( true  ) ,
-    _next                 ( NULL  ) ,
-    _has_been_interpreted ( false )
+                                         bool                remove_comments   )
+: _ok                   ( false ) ,
+_unique               ( true  ) ,
+_next                 ( NULL  ) ,
+_has_been_interpreted ( false )
 {
-  int                i , idst;
-  std::string        s;
-  std::istringstream in ( entry );
-  in >> _name;
-	
-	if (_name.size()==0)
-		return;
-	
-  if ( remove_comments && _name[0] == '#' )
-    _name.clear();
-  else {
-
-    NOMAD::toupper ( _name );
-
-    bool stats_file_name_read = false;
-
-    while ( true ) {
-      in >> s;
-
-      if ( in.fail() )
-	break;
-
-      // comment:
-      if ( remove_comments && s[0]=='#' )
-	break;
-
-      // string with quotes:
-      bool had_quotes = false;
-      if ( s[0] == '\"' || s[0] == '\'' ) {
-	
-	had_quotes = true;
-	char quote = s[0];
-	
-	s.erase ( s.begin() );
-	
-	if ( s[s.size()-1] == quote )
-	  s.resize ( s.size() - 1 );
-
-	else {
-	  std::string ss;
-	  getline ( in , ss , quote );
-	
-	  if ( in.fail() || !in.good()) {
-	    _ok = false;
-	    return;
-	  }
-
-	  s = s + ss;
-	}
-      }
-
-      // DISPLAY_STATS or STATS_FILE:
-      if ( _name == "STATS_FILE" && !stats_file_name_read )
-	stats_file_name_read = true;
-
-      else if ( _name == "DISPLAY_STATS" || _name == "STATS_FILE" ) {
-
-	if ( had_quotes ) {
-	  _ok = false;
-	  return;
-	}
-
-	std::string keyword , ss = s;
-	bool        interpreted  = false;
-	NOMAD::toupper ( ss );
-	
-	NOMAD::display_stats_type dst = NOMAD::DS_OBJ;
-	while ( dst < NOMAD::DS_UNDEFINED ) {
-
-	  keyword = NOMAD::Display::get_display_stats_keyword (dst);
-
-	  i = static_cast<int> ( ss.rfind ( keyword , ss.size()-1 ) );
-
-	  if ( i >= 0 ) {
-	    std::string s1 = s.substr ( 0 , i );
-	    std::string s2 = s.substr ( i+keyword.size() );
-	    if ( !s1.empty() )
-	      _values.push_back ( s1 );
-	    _values.push_back ( keyword );
-	    if ( !s2.empty() )
-	      _values.push_back ( s2 );
-	    _values.push_back ( std::string() );
-	    interpreted = true;
-	    break;
-	  }
-
-	  // loop increment:
-	  idst = dst;
-	  ++idst;
-	  dst = static_cast<NOMAD::display_stats_type> ( idst );
-	}
-
-	if ( !interpreted ) {
-	  _values.push_back ( s             );
-	  _values.push_back ( std::string() );
-	}
-
-	continue;
-      }
-      
-      // vector:
-      if ( s.size() > 1 && ( s[0] == '[' || s[0] == '(' ) ) {
-	_values.push_back ( s[0]=='[' ? "[" : "(" );
-	s.erase(s.begin());
-      }
-      int  sm1 = static_cast<int>(s.size()) - 1;
-      char c   = s[sm1];
-      if ( s.size() > 1 && ( c == ']' || c == ')' ) ) {
-	s.resize(sm1);
-	_values.push_back (s);
-	_values.push_back ( c==']' ? "]" : ")" );
-	continue;
-      }
-
-      // other values:
-      _values.push_back ( s );
+    int                i , idst;
+    std::string        s;
+    std::istringstream in ( entry );
+    in >> _name;
+    
+    if (_name.size()==0)
+        return;
+    
+    if ( remove_comments && _name[0] == '#' )
+        _name.clear();
+    else
+    {
+        
+        
+        NOMAD::toupper ( _name );
+        
+        bool stats_file_name_read = false;
+        
+        while ( true )
+        {
+            in >> s;
+            
+            if ( in.fail() )
+                break;
+            
+            // comment:
+            if ( remove_comments && s[0]=='#' )
+                break;
+            
+            // string with quotes:
+            bool had_quotes = false;
+            if ( s[0] == '\"' || s[0] == '\'' )
+            {
+                
+                had_quotes = true;
+                char quote = s[0];
+                
+                s.erase ( s.begin() );
+                
+                if ( s[s.size()-1] == quote )
+                    s.resize ( s.size() - 1 );
+                
+                else
+                {
+                    
+                    std::string ss;
+                    getline ( in , ss , quote );
+                    
+                    if ( in.fail() || !in.good())
+                    {
+                        _ok = false;
+                        return;
+                    }
+                    
+                    s = s + ss;
+                }
+            }
+            
+            // DISPLAY_STATS or STATS_FILE:
+            if ( _name == "STATS_FILE" && !stats_file_name_read )
+                stats_file_name_read = true;
+            
+            else if ( _name == "DISPLAY_STATS" || _name == "STATS_FILE" )
+            {
+                
+                if ( had_quotes )
+                {
+                    _ok = false;
+                    return;
+                }
+                
+                std::string keyword , ss = s;
+                bool        interpreted  = false;
+                NOMAD::toupper ( ss );
+                
+                NOMAD::display_stats_type dst = NOMAD::DS_OBJ;
+                while ( dst < NOMAD::DS_UNDEFINED )
+                {
+                    
+                    keyword = NOMAD::Display::get_display_stats_keyword (dst);
+                    
+                    i = static_cast<int> ( ss.rfind ( keyword , ss.size()-1 ) );
+                    
+                    if ( i >= 0 )
+                    {
+                        std::string s1 = s.substr ( 0 , i );
+                        std::string s2 = s.substr ( i+keyword.size() );
+                        if ( !s1.empty() )
+                            _values.push_back ( s1 );
+                        _values.push_back ( keyword );
+                        if ( !s2.empty() )
+                            _values.push_back ( s2 );
+                        _values.push_back ( std::string() );
+                        interpreted = true;
+                        break;
+                    }
+                    
+                    // loop increment:
+                    idst = dst;
+                    ++idst;
+                    dst = static_cast<NOMAD::display_stats_type> ( idst );
+                }
+                
+                if ( !interpreted ) 
+                {
+                    _values.push_back ( s             );
+                    _values.push_back ( std::string() );
+                }
+                
+                continue;
+            }
+            
+            // vector:
+            if ( s.size() > 1 && ( s[0] == '[' || s[0] == '(' ) ) 
+            {
+                _values.push_back ( s[0]=='[' ? "[" : "(" );
+                s.erase(s.begin());
+            }
+            int  sm1 = static_cast<int>(s.size()) - 1;
+            char c   = s[sm1];
+            if ( s.size() > 1 && ( c == ']' || c == ')' ) ) 
+            {
+                s.resize(sm1);
+                _values.push_back (s);
+                _values.push_back ( c==']' ? "]" : ")" );
+                continue;
+            }
+            
+            // other values:
+            _values.push_back ( s );
+        }
+        
+        if ( !_values.empty() )
+            _ok = true;
     }
-   
-    if ( !_values.empty() )
-      _ok = true;
-  }
 }
 
 /*------------------------------*/
@@ -181,10 +202,11 @@ NOMAD::Parameter_Entry::Parameter_Entry ( const std::string & entry           ,
 /*------------------------------*/
 void NOMAD::Parameter_Entry::display ( const NOMAD::Display & out ) const
 {
-  if ( _ok ) {
-    out << _name << ": ";
-    std::list<std::string>::const_iterator end = _values.end();
-    for ( std::list<std::string>::const_iterator it = _values.begin() ; it != end ; ++it )
-      out << "[" << *it << "] ";
-  }
+    if ( _ok ) 
+    {
+        out << _name << ": ";
+        std::list<std::string>::const_iterator end = _values.end();
+        for ( std::list<std::string>::const_iterator it = _values.begin() ; it != end ; ++it )
+            out << "[" << *it << "] ";
+    }
 }
diff --git a/src/Parameter_Entry.hpp b/src/Parameter_Entry.hpp
index 7c1e0b9..85bfe40 100644
--- a/src/Parameter_Entry.hpp
+++ b/src/Parameter_Entry.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -74,7 +81,7 @@ namespace NOMAD {
        \param entry           A string describing the parameter entry -- \b IN.
        \param remove_comments A boolean equal to \c true if entries after
                               \c '#' are ignored -- \b IN
-			      -- \b optional (default = \c true).
+                  -- \b optional (default = \c true).
     */
     Parameter_Entry ( const std::string & entry , bool remove_comments = true );
 
@@ -189,7 +196,7 @@ namespace NOMAD {
      \return    The NOMAD::Display object.
   */
   inline const NOMAD::Display & operator << ( const NOMAD::Display         & out ,
-					      const NOMAD::Parameter_Entry & e     ) 
+                                              const NOMAD::Parameter_Entry & e     )
   {
     e.display ( out );
     return out;
diff --git a/src/Parameters.cpp b/src/Parameters.cpp
index cf218fe..5e89b82 100644
--- a/src/Parameters.cpp
+++ b/src/Parameters.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -47,6 +54,7 @@
 
 bool NOMAD::Parameters::_warning_has_been_displayed=false;
 
+
 /*----------------------------------------*/
 /*                destructor              */
 /*----------------------------------------*/
@@ -65,7 +73,6 @@ void NOMAD::Parameters::init ( void )
     // miscellaneous and algorithm parameters:
     _to_be_checked      = true;
     _seed               = 0;
-    // _seed               = NOMAD::get_pid();
     _max_eval           = -1;
     _max_sim_bb_eval    = -1;
     _max_bb_eval        = -1;
@@ -99,18 +106,21 @@ void NOMAD::Parameters::init ( void )
     set_INF_STR   ( NOMAD::DEFAULT_INF_STR   );
     
     // Mesh:
-    _anisotropic_mesh		  = true;
-    _use_smesh                = false;
-    _mesh_update_basis		  = 4;
-    _poll_update_basis		  = 2;
-    _mesh_coarsening_exponent = 1;
-    _mesh_refining_exponent   =-1;
-    _initial_mesh_index       = 0;
-    _min_poll_size_defined    = false;
+    _anisotropic_mesh           = true;
+    _mesh_type                  = NOMAD::XMESH;
+    
+    _mesh_update_basis          = 4;
+    _poll_update_basis          = 2;
+    _mesh_coarsening_exponent   = 1;
+    _mesh_refining_exponent     =-1;
+    _initial_mesh_index         = 0;
+    _limit_mesh_index           = NOMAD::XL_LIMITS;
+    _min_poll_size_defined      = false;
     _initial_mesh_size.clear();
     _initial_poll_size.clear();
     _min_mesh_size.clear();
     _min_poll_size.clear();
+    _granularity.clear();
     
     // Directions:
     reset_directions ( );
@@ -149,6 +159,10 @@ void NOMAD::Parameters::init ( void )
     _has_filter_constraints = false;
     _barrier_type           = NOMAD::EB;
     
+    // Intensification:
+    _max_eval_intensification = -1;
+    _intensification_type     = NOMAD::NO_INTENSIFICATION;
+    
     // outputs:
     _index_obj.clear();
     _bb_exe.clear();
@@ -199,10 +213,6 @@ void NOMAD::Parameters::init ( void )
     _model_params.quad_max_Y_size    = 500;
     _model_params.model_np1_quad_epsilon =0.01;
     
-    // TGP model parameters:
-    _model_params.tgp_mode        = NOMAD::TGP_FAST;
-    _model_params.tgp_reuse_model = true;
-    
     // other searches:
     _VNS_trigger.clear();
     _speculative_search         = true;
@@ -216,12 +226,12 @@ void NOMAD::Parameters::init ( void )
     _opp_CS_is_defined          = false;
     
     // opportunistic strategy:
-    _bb_max_block_size				= 1;
+    _bb_max_block_size              = 1;
     _eval_points_as_block           = false;
-    _opportunistic_eval				= true;
-    _opportunistic_min_nb_success	= -1;
-    _opportunistic_min_eval			= -1;
-    _opportunistic_lucky_eval		= false;
+    _opportunistic_eval             = true;
+    _opportunistic_min_nb_success   = -1;
+    _opportunistic_min_eval         = -1;
+    _opportunistic_lucky_eval       = false;
     _opportunistic_min_f_imprvmt.clear();
     
     // display:
@@ -239,6 +249,7 @@ void NOMAD::Parameters::init ( void )
     reset_stats_file();
     
     _display_all_eval = false;
+    
 }
 
 /*------------------------------------------------------------------*/
@@ -281,13 +292,16 @@ bool NOMAD::Parameters::check_display_stats
 {
     int var_index;
     std::list<std::string>::const_iterator it , end = stats.end();
-    for ( it = stats.begin() ; it != end ; ++it ) {
+    for ( it = stats.begin() ; it != end ; ++it )
+    {
         if ( !it->empty() &&
-            NOMAD::Display::get_display_stats_type(*it) == NOMAD::DS_VAR ) {
+            NOMAD::Display::get_display_stats_type(*it) == NOMAD::DS_VAR )
+        {
             ++it;
             if ( !NOMAD::atoi ( *it , var_index ) ||
                 var_index < 0                    ||
-                var_index >= _dimension             ) {
+                var_index >= _dimension             )
+            {
                 return false;
             }
         }
@@ -314,19 +328,24 @@ bool NOMAD::Parameters::check_directory ( std::string & s )
     // step 2: replace '/' or '\' with DIR_SEP:
     i  = 0;
     ns = s.size();
-    while ( i < ns ) {
+    while ( i < ns )
+    {
         if ( s[i] == '/' || s[i] == '\\' )
             s[i] = NOMAD::DIR_SEP;
         ++i;
     }
     
     // step 3: add DIR_SEP at the end:
-    if ( i >= 1 ) {
-        if (s[i-1] != NOMAD::DIR_SEP) {
+    if ( i >= 1 )
+    {
+        if (s[i-1] != NOMAD::DIR_SEP)
+        {
             s += NOMAD::DIR_SEP;
         }
     }
-    else {
+    else
+    {
+        
         s = ".";
         s.push_back ( NOMAD::DIR_SEP );
     }
@@ -338,17 +357,18 @@ bool NOMAD::Parameters::check_directory ( std::string & s )
 /*  interpretation of the Parameter_Entry for PERIODIC_VARIABLE  */
 /*  (private)                                                    */
 /*---------------------------------------------------------------*/
-void NOMAD::Parameters::interpret_periodic_var
-( const NOMAD::Parameter_Entries & entries )
+void NOMAD::Parameters::interpret_periodic_var ( const NOMAD::Parameter_Entries & entries )
 {
     int                                      i , j , k;
     std::list<std::string>::const_iterator   it , end;
     NOMAD::Parameter_Entry                 * pe = entries.find ( "PERIODIC_VARIABLE" );
     
-    while ( pe ) {
+    while ( pe )
+    {
         
         // just one variable index (can be '*' or a range of indexes 'i-j'):
-        if ( pe->get_nb_values() == 1 ) {
+        if ( pe->get_nb_values() == 1 )
+        {
             
             it = pe->get_values().begin();
             if ( !NOMAD::string_to_index_range ( *it , i , j , &_dimension ) )
@@ -360,9 +380,12 @@ void NOMAD::Parameters::interpret_periodic_var
         }
         
         // list of variable indexes:
-        else {
+        else
+        {
+            
             end = pe->get_values().end();
-            for ( it = pe->get_values().begin() ; it != end ; ++it ) {
+            for ( it = pe->get_values().begin() ; it != end ; ++it )
+            {
                 if ( !NOMAD::atoi ( *it , i ) )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: PERIODIC_VARIABLE" );
@@ -386,10 +409,12 @@ void NOMAD::Parameters::interpret_var_groups ( const NOMAD::Parameter_Entries &
     std::list<std::string>::const_iterator   it , end;
     NOMAD::Parameter_Entry                 * pe = entries.find ( "VARIABLE_GROUP" );
     
-    while ( pe ) {
+    while ( pe )
+    {
         
         // just one variable index (can be '*' or a range of indexes 'i-j'):
-        if ( pe->get_nb_values() == 1 ) {
+        if ( pe->get_nb_values() == 1 )
+        {
             
             it = pe->get_values().begin();
             if ( !NOMAD::string_to_index_range ( *it , i , j , &_dimension ) )
@@ -401,9 +426,12 @@ void NOMAD::Parameters::interpret_var_groups ( const NOMAD::Parameter_Entries &
         }
         
         // list of variable indexes:
-        else {
+        else
+        {
+            
             end = pe->get_values().end();
-            for ( it = pe->get_values().begin() ; it != end ; ++it ) {
+            for ( it = pe->get_values().begin() ; it != end ; ++it )
+            {
                 if ( !NOMAD::atoi ( *it , i ) )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: VARIABLE_GROUP" );
@@ -485,7 +513,9 @@ void NOMAD::Parameters::interpret_BFVS ( const NOMAD::Parameter_Entries & entrie
             
             
             // file name:
-            else {
+            else
+            {
+                
                 
                 file_name = _problem_dir + *pe->get_values().begin();
                 
@@ -499,7 +529,8 @@ void NOMAD::Parameters::interpret_BFVS ( const NOMAD::Parameter_Entries & entrie
                 }
                 
                 try {
-                    switch ( param_name[0] ) {
+                    switch ( param_name[0] )
+                    {
                         case 'L':
                             _lb.reset ( _dimension );
                             fin >> _lb;
@@ -517,7 +548,8 @@ void NOMAD::Parameters::interpret_BFVS ( const NOMAD::Parameter_Entries & entrie
                             fin >> _scaling;
                     }
                 }
-                catch ( NOMAD::Point::Bad_Input & ) {
+                catch ( NOMAD::Point::Bad_Input & )
+                {
                     err = "invalid parameter: " + param_name +
                     " - could not read file \'" + file_name  + "\'";
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
@@ -528,9 +560,11 @@ void NOMAD::Parameters::interpret_BFVS ( const NOMAD::Parameter_Entries & entrie
         }
         
         // vector form: all values on one row:
-        else if ( pe->get_nb_values() == _dimension + 2 ) {
+        else if ( pe->get_nb_values() == _dimension + 2 )
+        {
             
-            if ( !pe->is_unique() ) {
+            if ( !pe->is_unique() )
+            {
                 err = "invalid parameter: " + param_name +
                 " - has been given in vector form with [] or () and is not unique";
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
@@ -538,21 +572,25 @@ void NOMAD::Parameters::interpret_BFVS ( const NOMAD::Parameter_Entries & entrie
             
             it = pe->get_values().begin();
             
-            if ( *it != "[" && *it != "(" ) {
+            if ( *it != "[" && *it != "(" )
+            {
                 err = "invalid parameter: " + param_name +
                 " - error in vector form with () or []";
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
             }
             
             ++it;
-            for ( k = 0 ; k < _dimension ; ++k ) {
-                if ( !v.atof(*it) ) {
+            for ( k = 0 ; k < _dimension ; ++k )
+            {
+                if ( !v.atof(*it) )
+                {
                     err = "invalid parameter: " + param_name;
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
                 }
                 
                 ++it;
-                switch ( param_name[0] ) {
+                switch ( param_name[0] )
+                {
                     case 'L': set_LOWER_BOUND    ( k , v );
                         break;
                     case 'U': set_UPPER_BOUND    ( k , v );
@@ -563,7 +601,8 @@ void NOMAD::Parameters::interpret_BFVS ( const NOMAD::Parameter_Entries & entrie
                 }
             }
             
-            if ( *it != "]" && *it != ")" ) {
+            if ( *it != "]" && *it != ")" )
+            {
                 err = "invalid parameter: " + param_name +
                 " - error in vector form with () or []";
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
@@ -572,34 +611,40 @@ void NOMAD::Parameters::interpret_BFVS ( const NOMAD::Parameter_Entries & entrie
         }
         
         // indexed values:
-        else {
+        else
+        {
+            
             
-            if ( pe->get_nb_values() != 2 ) {
+            if ( pe->get_nb_values() != 2 )
+            {
                 err = "invalid parameter: " + param_name;
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
             }
             
             it = pe->get_values().begin();
-            if ( !NOMAD::string_to_index_range ( *it , i , j , &_dimension ) ) {
+            if ( !NOMAD::string_to_index_range ( *it , i , j , &_dimension ) )
+            {
                 err = "invalid parameter: " + param_name;
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
             }
             ++it;
-            if ( !v.atof(*it) ) {
+            if ( !v.atof(*it) )
+            {
                 err = "invalid parameter: " + param_name;
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
             }
             
             for ( k = j ; k >= i ; --k )
-                switch (param_name[0]) {
-                    case 'L': set_LOWER_BOUND    ( k, v );
-                        break;
-                    case 'U': set_UPPER_BOUND    ( k, v );
-                        break;
-                    case 'F': set_FIXED_VARIABLE ( k, v );
-                        break;
-                    case 'S': set_SCALING        ( k, v );
-                }
+                switch (param_name[0])
+            {
+                case 'L': set_LOWER_BOUND    ( k, v );
+                    break;
+                case 'U': set_UPPER_BOUND    ( k, v );
+                    break;
+                case 'F': set_FIXED_VARIABLE ( k, v );
+                    break;
+                case 'S': set_SCALING        ( k, v );
+            }
         }
         pe->set_has_been_interpreted();
         pe = pe->get_next();
@@ -675,11 +720,9 @@ void NOMAD::Parameters::interpret_f_target ( const NOMAD::Parameter_Entries & en
 /*  interpretation of the Parameter_Entry for mesh/poll sizes  */
 /*  (private)                                                  */
 /*-------------------------------------------------------------*/
-void NOMAD::Parameters::interpret_mesh_sizes
-( const NOMAD::Parameter_Entries & entries    ,
- const std::string              & param_name   )
+void NOMAD::Parameters::interpret_mesh_sizes ( const NOMAD::Parameter_Entries & entries    ,
+                                              const std::string              & param_name   )
 {
-    // param_name == "INITIAL_MESH_SIZE" or  "INITIAL_MESH_SIZE" or "MIN_MESH_SIZE" or "MIN_POLL_SIZE":
     if ( param_name != "INITIAL_POLL_SIZE" &&
         param_name != "INITIAL_MESH_SIZE" &&
         param_name != "MIN_MESH_SIZE"     &&
@@ -759,7 +802,8 @@ void NOMAD::Parameters::interpret_mesh_sizes
         else if ( pe->get_nb_values() == _dimension + 2 )
         {
             
-            if ( !pe->is_unique() ) {
+            if ( !pe->is_unique() )
+            {
                 err = "invalid parameter: " + param_name
                 + " - has been given in vector form with [] or () and is not unique";
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
@@ -812,6 +856,123 @@ void NOMAD::Parameters::interpret_mesh_sizes
     }
 }
 
+
+/*----------------------------------------------------------------*/
+/*  interpretation of the Parameter_Entry for granular variables  */
+/*  (private)                                                     */
+/*----------------------------------------------------------------*/
+void NOMAD::Parameters::interpret_granularity ( const NOMAD::Parameter_Entries & entries    ,
+                                               const std::string              & param_name   )
+{
+    if ( param_name != "GRANULARITY" )
+        throw Bad_Access ( "Parameters.cpp" , __LINE__ ,
+                          "wrong use of Parameters::interpret_granularity()" );
+    
+    int                                      i , j , k;
+    NOMAD::Double                            v;
+    std::string                              err;
+    std::list<std::string>::const_iterator   it;
+    NOMAD::Parameter_Entry                 * pe = entries.find ( param_name );
+    
+    while ( pe )
+    {
+        
+        // just one value:
+        if ( pe->get_nb_values() == 1 )
+        {
+            
+            if ( !pe->is_unique() )
+            {
+                err = "invalid parameter: " + param_name
+                + " - has been given with just one value and is not unique";
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
+            }
+            
+            if ( !v.atof ( *pe->get_values().begin() ) )
+            {
+                err = "invalid parameter: " + param_name;
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
+            }
+            
+            set_GRANULARITY( v );
+            
+        }
+        
+        // indexed form:
+        else if ( pe->get_nb_values() == 2 )
+        {
+            
+            it = pe->get_values().begin();
+            if ( !NOMAD::string_to_index_range ( *it , i , j , &_dimension ) )
+            {
+                err = "invalid parameter: " + param_name;
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
+            }
+            ++it;
+            
+            if ( !v.atof( *it ) )
+            {
+                err = "invalid parameter: " + param_name;
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
+            }
+            
+            for ( k = i ; k <= j ; ++k )
+                set_GRANULARITY( k , v );
+        }
+        
+        // vector form: all values on one row:
+        else if ( pe->get_nb_values() == _dimension + 2 )
+        {
+            
+            if ( !pe->is_unique() )
+            {
+                err = "invalid parameter: " + param_name
+                + " - has been given in vector form with [] or () and is not unique";
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
+            }
+            
+            it = pe->get_values().begin();
+            
+            if ( *it != "[" && *it != "(" )
+            {
+                err = "invalid parameter: " + param_name +
+                " - error in vector form with () or []";
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
+            }
+            
+            ++it;
+            for ( k = 0 ; k < _dimension ; ++k )
+            {
+                if ( !v.atof ( *it ) )
+                {
+                    err = "invalid parameter: " + param_name;
+                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
+                }
+                ++it;
+                set_GRANULARITY( k , v );
+            }
+            
+            if ( *it != "]" && *it != ")" )
+            {
+                err = "invalid parameter: " + param_name +
+                " - error in vector form with () or []";
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
+            }
+        }
+        
+        else
+        {
+            err = "invalid parameter: " + param_name;
+            throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
+        }
+        
+        pe->set_has_been_interpreted();
+        pe = pe->get_next();
+    }
+}
+
+
+
 /*---------------------------------------------------------------------------------*/
 /*          interpretation of the Parameter_Entry for BB_INPUT_TYPE (private)      */
 /*---------------------------------------------------------------------------------*/
@@ -820,18 +981,19 @@ void NOMAD::Parameters::interpret_mesh_sizes
 /*                                     #    or { Real , Cat , Bin , Int }          */
 /* or BB_INPUT_TYPE i-j t                                                          */
 /*---------------------------------------------------------------------------------*/
-void NOMAD::Parameters::interpret_bb_input_type
-( const NOMAD::Parameter_Entries & entries )
+void NOMAD::Parameters::interpret_bb_input_type ( const NOMAD::Parameter_Entries & entries )
 {
     int                                    i , j , k;
     NOMAD::bb_input_type                   bbit;
     std::list<std::string>::const_iterator it;
     NOMAD::Parameter_Entry               * pe = entries.find ( "BB_INPUT_TYPE" );
     
-    while ( pe ) {
+    while ( pe )
+    {
         
         // indexed form:
-        if ( pe->get_nb_values() == 2 ) {
+        if ( pe->get_nb_values() == 2 )
+        {
             
             it = pe->get_values().begin();
             if ( !NOMAD::string_to_index_range ( *it , i , j , &_dimension ) )
@@ -847,7 +1009,8 @@ void NOMAD::Parameters::interpret_bb_input_type
         }
         
         // vector form: all values on one row:
-        else if ( pe->get_nb_values() == _dimension + 2 ) {
+        else if ( pe->get_nb_values() == _dimension + 2 )
+        {
             
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -861,7 +1024,8 @@ void NOMAD::Parameters::interpret_bb_input_type
                                          "invalid parameter: BB_INPUT_TYPE - error in vector form with () or []" );
             
             ++it;
-            for ( k = 0 ; k < _dimension ; ++k ) {
+            for ( k = 0 ; k < _dimension ; ++k )
+            {
                 if ( !NOMAD::string_to_bb_input_type ( *it , bbit ) )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: BB_INPUT_TYPE" );
@@ -896,7 +1060,8 @@ void NOMAD::Parameters::interpret_x0 ( const NOMAD::Parameter_Entries & entries
     NOMAD::Point                           tmp_x0;
     std::vector<int>                       indexes;
     
-    while ( pe ) {
+    while ( pe )
+    {
         
         tmp_x0.reset ( _dimension );
         
@@ -905,15 +1070,18 @@ void NOMAD::Parameters::interpret_x0 ( const NOMAD::Parameter_Entries & entries
             set_X0 ( *pe->get_values().begin() );
         
         // Vector form: all values on one row:
-        else if ( pe->get_nb_values() == _dimension + 2 ) {
+        else if ( pe->get_nb_values() == _dimension + 2 )
+        {
             
             it = pe->get_values().begin();
             
-            if ( *it != "[" && *it != "(" ) {
+            if ( *it != "[" && *it != "(" )
+            {
                 
                 // particular case with n=1 and 3 entry values:
                 // example: X0 1 0 4.0 (first coordinate of the 2nd x0 point put to 4.0)
-                if ( _dimension == 1 ) {
+                if ( _dimension == 1 )
+                {
                     
                     it = pe->get_values().begin();
                     
@@ -925,7 +1093,8 @@ void NOMAD::Parameters::interpret_x0 ( const NOMAD::Parameter_Entries & entries
                     if ( l > i )
                         throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                                  "invalid parameter: X0" );
-                    else if ( l == i ) {
+                    else if ( l == i )
+                    {
                         l = static_cast<int> ( _x0s.size() );
                         indexes.push_back ( l );
                         set_X0 ( tmp_x0 );
@@ -955,10 +1124,13 @@ void NOMAD::Parameters::interpret_x0 ( const NOMAD::Parameter_Entries & entries
                                              "invalid parameter: X0 - error in vector form with () or []" );
             }
             
-            else {
+            else
+            {
+                
                 
                 ++it;
-                for ( k = 0 ; k < _dimension ; ++k ) {
+                for ( k = 0 ; k < _dimension ; ++k )
+                {
                     if ( !v.atof(*it) )
                         throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                                  "invalid parameter: X0" );
@@ -976,7 +1148,8 @@ void NOMAD::Parameters::interpret_x0 ( const NOMAD::Parameter_Entries & entries
         
         // indexed values without x0 index (must be unique)
         // (example: X0 0-5 1.0):
-        else if ( pe->get_nb_values() == 2 ) {
+        else if ( pe->get_nb_values() == 2 )
+        {
             
             it = pe->get_values().begin();
             if ( !NOMAD::string_to_index_range ( *it , i , j , &_dimension ) )
@@ -985,7 +1158,8 @@ void NOMAD::Parameters::interpret_x0 ( const NOMAD::Parameter_Entries & entries
             if ( !v.atof(*it) )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , "invalid parameter: X0" );
             
-            if ( indexes.empty() ) {
+            if ( indexes.empty() )
+            {
                 l = static_cast<int> ( _x0s.size() );
                 indexes.push_back ( l );
                 set_X0 ( tmp_x0 );
@@ -1000,7 +1174,9 @@ void NOMAD::Parameters::interpret_x0 ( const NOMAD::Parameter_Entries & entries
         // indexed values with x0 index
         //  example: X0 0 0-5 1.0 --> first x0 point
         //           X0 1 0-5 2.0 --> 2nd x0 point
-        else {
+        else
+        {
+            
             
             if ( pe->get_nb_values() != 3 )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , "invalid parameter: X0" );
@@ -1013,7 +1189,8 @@ void NOMAD::Parameters::interpret_x0 ( const NOMAD::Parameter_Entries & entries
             i = static_cast<int> ( indexes.size() );
             if ( l > i )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , "invalid parameter: X0" );
-            else if ( l == i ) {
+            else if ( l == i )
+            {
                 l = static_cast<int> ( _x0s.size() );
                 indexes.push_back ( l );
                 set_X0 ( tmp_x0 );
@@ -1050,6 +1227,7 @@ void NOMAD::Parameters::read ( const std::string & param_file )
     // ------------
     _problem_dir.clear();
     size_t k = param_file.find_last_of ( NOMAD::DIR_SEP );
+    
     if ( k < param_file.size() )
         _problem_dir = param_file.substr (0,k) + NOMAD::DIR_SEP;
     else
@@ -1058,12 +1236,14 @@ void NOMAD::Parameters::read ( const std::string & param_file )
     // open the parameters file:
     std::string   err = "could not open parameters file \'" + param_file + "\'";
     std::ifstream fin;
-    if ( NOMAD::check_read_file ( param_file ) ) {
+    if ( NOMAD::check_read_file ( param_file ) )
+    {
         fin.open ( param_file.c_str() );
         if ( !fin.fail() )
             err.clear();
     }
-    if ( !err.empty() ) {
+    if ( !err.empty() )
+    {
         fin.close();
         throw NOMAD::Exception ( "Parameters.cpp" , __LINE__ , err );
     }
@@ -1280,20 +1460,24 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         }
     }
     
-    // USE_SMESH:
+    // MESH_TYPE:
     // ---------------
     {
-        pe = entries.find ( "USE_SMESH" );
+        pe = entries.find ( "MESH_TYPE" );
         if ( pe )
         {
-            if ( !pe->is_unique() )
+            if ( ! pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                         "invalid parameter: USE_SMESH not unique" );
-            i = NOMAD::string_to_bool ( *(pe->get_values().begin() ) );
-            if ( pe->get_nb_values() != 1 ||  i == -1 )
+                                         "invalid parameter: MESH_TYPE not unique" );
+            
+            NOMAD::mesh_type mt;
+            std::string      smt = *(pe->get_values().begin());
+            
+            if ( ! NOMAD::string_to_mesh_type ( smt , mt ) )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                         "invalid parameter: USE_SMESH" );
-            set_USE_SMESH ( i == 1 );
+                                         "invalid parameter: MESH_TYPE" );
+            
+            set_MESH_TYPE ( mt );
             pe->set_has_been_interpreted();
         }
     }
@@ -1303,7 +1487,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // --------------------
     {
         pe = entries.find ( "POINT_DISPLAY_LIMIT" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: POINT_DISPLAY_LIMIT not unique" );
@@ -1320,12 +1505,15 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     {
         pe = entries.find ( "DIMENSION" );
         
-        if ( !pe ) {
+        if ( !pe )
+        {
             if ( !pe && _dimension <= 0 )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: DIMENSION not defined" );
         }
-        else {
+        else
+        {
+            
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: DIMENSION not unique" );
@@ -1345,7 +1533,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------------
     {
         pe = entries.find ( "SNAP_TO_BOUNDS" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: SNAP_TO_BOUNDS not unique" );
@@ -1363,7 +1552,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     {
         // MULTI_OVERALL_BB_EVAL:
         pe = entries.find ( "MULTI_OVERALL_BB_EVAL" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MULTI_OVERALL_BB_EVAL not unique" );
@@ -1376,7 +1566,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         
         // MULTI_NB_MADS_RUNS:
         pe = entries.find ( "MULTI_NB_MADS_RUNS" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MULTI_NB_MADS_RUNS not unique" );
@@ -1389,7 +1580,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         
         // MULTI_USE_DELTA_CRIT:
         pe = entries.find ( "MULTI_USE_DELTA_CRIT" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MULTI_USE_DELTA_CRIT not unique" );
@@ -1403,7 +1595,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         
         // MULTI_F_BOUNDS (f1_min, f2_min, f2_min, f2_max):
         pe = entries.find ( "MULTI_F_BOUNDS" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MULTI_F_BOUNDS not unique" );
@@ -1412,7 +1605,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
                                          "invalid parameter: MULTI_F_BOUNDS" );
             NOMAD::Point mfb ( 4 );
             it = pe->get_values().begin();
-            for ( i = 0 ; i < 4 ; ++i ) {
+            for ( i = 0 ; i < 4 ; ++i )
+            {
                 if ( !d.atof ( *it ) )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MULTI_F_BOUNDS" );
@@ -1427,7 +1621,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // ------------------
         {
             pe = entries.find ( "MULTI_FORMULATION" );
-            if ( pe ) {
+            if ( pe )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MULTI_FORMULATION not unique" );
@@ -1479,7 +1674,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         bool b_model_search = false;
         pe = entries.find ( "MODEL_SEARCH" );
         
-        while ( pe ) {
+        while ( pe )
+        {
             
             if ( pe->get_nb_values() != 1 )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -1493,7 +1689,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
             int               imt = NOMAD::string_to_bool ( smt );
             
             // entered as a boolean:
-            if ( imt == 0 || imt == 1 ) {
+            if ( imt == 0 || imt == 1 )
+            {
                 if ( b_model_search || i_model_search == 2 )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MODEL_SEARCH (boolean argument can only be used once)" );
@@ -1502,7 +1699,9 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
             }
             
             // entered as a model type:
-            else {
+            else
+            {
+                
                 
                 if ( !NOMAD::string_to_model_type ( smt , mt ) )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -1519,7 +1718,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // MODEL_SEARCH_OPTIMISTIC:
         {
             pe = entries.find ( "MODEL_SEARCH_OPTIMISTIC" );
-            if ( pe ) {
+            if ( pe )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MODEL_SEARCH_OPTIMISTIC not unique" );
@@ -1535,7 +1735,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // MODEL_SEARCH_PROJ_TO_MESH:
         {
             pe = entries.find ( "MODEL_SEARCH_PROJ_TO_MESH" );
-            if ( pe ) {
+            if ( pe )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MODEL_SEARCH_PROJ_TO_MESH not unique" );
@@ -1551,7 +1752,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // MODEL_QUAD_RADIUS_FACTOR:
         {
             pe = entries.find ( "MODEL_QUAD_RADIUS_FACTOR" );
-            if ( pe ) {
+            if ( pe )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MODEL_QUAD_RADIUS_FACTOR not unique" );
@@ -1566,7 +1768,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // MODEL_QUAD_USE_WP:
         {
             pe = entries.find ( "MODEL_QUAD_USE_WP" );
-            if ( pe ) {
+            if ( pe )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MODEL_QUAD_USE_WP not unique" );
@@ -1582,7 +1785,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // MODEL_QUAD_MAX_Y_SIZE:
         {
             pe = entries.find ( "MODEL_QUAD_MAX_Y_SIZE" );
-            if ( pe ) {
+            if ( pe )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MODEL_QUAD_MAX_Y_SIZE not unique" );
@@ -1597,7 +1801,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // MODEL_QUAD_MIN_Y_SIZE:
         {
             pe = entries.find ( "MODEL_QUAD_MIN_Y_SIZE" );
-            if ( pe ) {
+            if ( pe )
+            {
                 
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -1625,7 +1830,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // MODEL_QUAD_HYPERCUBE_LOWER_LIM:
         {
             pe = entries.find ( "MODEL_NP1_QUAD_EPSILON" );
-            if ( pe ) {
+            if ( pe )
+            {
                 
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -1647,44 +1853,48 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
             }
         }
         
-        // MODEL_TGP_MODE:
-        {
-            pe = entries.find ( "MODEL_TGP_MODE" );
-            if ( pe ) {
-                if ( !pe->is_unique() )
-                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                             "invalid parameter: MODEL_TGP_MODE not unique" );
-                
-                NOMAD::TGP_mode_type m;
-                if ( pe->get_nb_values() != 1 ||
-                    !NOMAD::string_to_TGP_mode_type ( *(pe->get_values().begin()) , m ) )
-                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                             "Invalid parameter: MODEL_TGP_MODE" );
-                pe->set_has_been_interpreted();
-                set_MODEL_TGP_MODE ( m );
-            }
-        }
         
-        // MODEL_TGP_REUSE_MODEL:
-        {
-            pe = entries.find ( "MODEL_TGP_REUSE_MODEL" );
-            if ( pe ) {
-                if ( !pe->is_unique() )
-                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                             "invalid parameter: MODEL_TGP_REUSE_MODEL not unique" );
-                i = NOMAD::string_to_bool ( *(pe->get_values().begin() ) );
-                if ( pe->get_nb_values() != 1 ||  i == -1 )
-                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                             "invalid parameter: MODEL_TGP_REUSE_MODEL" );
-                set_MODEL_TGP_REUSE_MODEL ( i == 1 );
-                pe->set_has_been_interpreted();
-            }
-        }
+        //        // MODEL_TGP_MODE:
+        //        {
+        //            pe = entries.find ( "MODEL_TGP_MODE" );
+        //            if ( pe )
+        //            {
+        //                if ( !pe->is_unique() )
+        //                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+        //                                             "invalid parameter: MODEL_TGP_MODE not unique" );
+        //
+        //                NOMAD::TGP_mode_type m;
+        //                if ( pe->get_nb_values() != 1 ||
+        //                    !NOMAD::string_to_TGP_mode_type ( *(pe->get_values().begin()) , m ) )
+        //                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+        //                                             "Invalid parameter: MODEL_TGP_MODE" );
+        //                pe->set_has_been_interpreted();
+        //                set_MODEL_TGP_MODE ( m );
+        //            }
+        //        }
+        //
+        //        // MODEL_TGP_REUSE_MODEL:
+        //        {
+        //            pe = entries.find ( "MODEL_TGP_REUSE_MODEL" );
+        //            if ( pe )
+        //            {
+        //                if ( !pe->is_unique() )
+        //                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+        //                                             "invalid parameter: MODEL_TGP_REUSE_MODEL not unique" );
+        //                i = NOMAD::string_to_bool ( *(pe->get_values().begin() ) );
+        //                if ( pe->get_nb_values() != 1 ||  i == -1 )
+        //                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+        //                                             "invalid parameter: MODEL_TGP_REUSE_MODEL" );
+        //                set_MODEL_TGP_REUSE_MODEL ( i == 1 );
+        //                pe->set_has_been_interpreted();
+        //            }
+        //        }
         
         // MODEL_SEARCH_MAX_TRIAL_PTS:
         {
             pe = entries.find ( "MODEL_SEARCH_MAX_TRIAL_PTS" );
-            if ( pe ) {
+            if ( pe )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MODEL_SEARCH_MAX_TRIAL_PTS not unique" );
@@ -1699,7 +1909,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // MODEL_EVAL_SORT:
         {
             pe = entries.find ( "MODEL_EVAL_SORT" );
-            if ( pe ) {
+            if ( pe )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MODEL_EVAL_SORT not unique" );
@@ -1716,7 +1927,9 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
                     set_MODEL_EVAL_SORT ( imt == 1 );
                 
                 // entered as a model type:
-                else {
+                else
+                {
+                    
                     
                     if ( !NOMAD::string_to_model_type ( smt , mt ) )
                         throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -1731,7 +1944,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // MODEL_EVAL_SORT_CAUTIOUS:
         {
             pe = entries.find ( "MODEL_EVAL_SORT_CAUTIOUS" );
-            if ( pe ) {
+            if ( pe )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: MODEL_EVAL_SORT_CAUTIOUS not unique" );
@@ -1749,7 +1963,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -------------------
     {
         pe = entries.find ( "SPECULATIVE_SEARCH" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: SPECULATIVE_SEARCH not unique" );
@@ -1766,7 +1981,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -----------
     {
         pe = entries.find ( "VNS_SEARCH" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: VNS_SEARCH not unique" );
@@ -1778,7 +1994,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
             i = NOMAD::string_to_bool ( s );
             
             // entered as a real:
-            if ( i == -1 || s == "1" ) {
+            if ( i == -1 || s == "1" )
+            {
                 if ( !d.atof ( s ) )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: VNS_SEARCH" );
@@ -1796,7 +2013,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -------------
     {
         pe = entries.find ( "CACHE_SEARCH" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: CACHE_SEARCH not unique" );
@@ -1813,7 +2031,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ----------
     {
         pe = entries.find ( "LH_SEARCH" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: LH_SEARCH not unique" );
@@ -1838,7 +2057,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         // -----------------
         {
             pe = entries.find ( "OPPORTUNISTIC_LH" );
-            if ( pe ) {
+            if ( pe )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: OPPORTUNISTIC_LH not unique" );
@@ -1856,7 +2076,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------------------------
     {
         pe = entries.find ( "OPPORTUNISTIC_CACHE_SEARCH" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: OPPORTUNISTIC_CACHE_SEARCH not unique" );
@@ -1875,7 +2096,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         
         // BB_MAX_BLOCK_SIZE
         pe = entries.find ( "BB_MAX_BLOCK_SIZE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: BB_MAX_BLOCK_SIZE not unique" );
@@ -1893,7 +2115,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         
         // OPPORTUNISTIC_EVAL:
         pe = entries.find ( "OPPORTUNISTIC_EVAL" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: OPPORTUNISTIC_EVAL not unique" );
@@ -1907,7 +2130,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         
         // OPPORTUNISTIC_MIN_NB_SUCCESS:
         pe = entries.find ( "OPPORTUNISTIC_MIN_NB_SUCCESS" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: OPPORTUNISTIC_MIN_NB_SUCCESS not unique" );
@@ -1920,7 +2144,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         
         // OPPORTUNISTIC_MIN_EVAL:
         pe = entries.find ( "OPPORTUNISTIC_MIN_EVAL" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: OPPORTUNISTIC_MIN_EVAL not unique" );
@@ -1933,7 +2158,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         
         // OPPORTUNISTIC_MIN_F_IMPRVMT:
         pe = entries.find ( "OPPORTUNISTIC_MIN_F_IMPRVMT" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: OPPORTUNISTIC_MIN_F_IMPRVMT not unique" );
@@ -1946,7 +2172,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         
         // OPPORTUNISTIC_LUCKY_EVAL:
         pe = entries.find ( "OPPORTUNISTIC_LUCKY_EVAL" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: OPPORTUNISTIC_LUCKY_EVAL not unique" );
@@ -1966,7 +2193,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         
         
         pe = entries.find ( "DIRECTION_TYPE" );
-        while ( pe ) {
+        while ( pe )
+        {
             
             if ( !NOMAD::strings_to_direction_type ( pe->get_values() , dt ) )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -1979,7 +2207,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         }
         
         pe = entries.find ( "SEC_POLL_DIR_TYPE" );
-        while ( pe ) {
+        while ( pe )
+        {
             if ( !NOMAD::strings_to_direction_type ( pe->get_values() , dt ) )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: SEC_POLL_DIR_TYPE" );
@@ -1990,12 +2219,30 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
         }
     }
     
+    // INTENSIFICATION:
+    {
+        pe = entries.find( "MAX_EVAL_INTENSIFICATION");
+        if ( pe )
+        {
+            if ( !pe->is_unique() )
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                         "invalid parameter: MAX_EVAL_INTENSIFICATION not unique" );
+            if ( !NOMAD::atoi (*(pe->get_values().begin()) , i) )
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                         "invalid parameter: MAX_EVAL_INTENSIFICATION" );
+            pe->set_has_been_interpreted();
+            set_MAX_EVAL_INTENSIFICATION (i);
+            
+        }
+    }
+    
     
     // MAX_ITERATIONS:
     // ---------------
     {
         pe = entries.find ( "MAX_ITERATIONS" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MAX_ITERATIONS not unique" );
@@ -2011,7 +2258,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ----------------------------------
     {
         pe = entries.find ( "MAX_CONSECUTIVE_FAILED_ITERATIONS" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MAX_CONSECUTIVE_FAILED_ITERATIONS not unique" );
@@ -2027,7 +2275,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -----------------
     {
         pe = entries.find ( "MAX_CACHE_MEMORY" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MAX_CACHE_MEMORY not unique" );
@@ -2043,7 +2292,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------
     {
         pe = entries.find ( "MAX_EVAL" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MAX_EVAL not unique" );
@@ -2059,7 +2309,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ------------
     {
         pe = entries.find ( "MAX_BB_EVAL" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MAX_BB_EVAL not unique" );
@@ -2075,7 +2326,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ----------------
     {
         pe = entries.find ( "MAX_SIM_BB_EVAL" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MAX_SIM_BB_EVAL not unique" );
@@ -2091,7 +2343,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // --------------
     {
         pe = entries.find ( "MAX_SGTE_EVAL" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MAX_SGTE_EVAL not unique" );
@@ -2107,7 +2360,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------
     {
         pe = entries.find ( "MAX_TIME" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: MAX_TIME not unique" );
@@ -2124,7 +2378,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ----------------
     {
         pe = entries.find ( "STAT_SUM_TARGET" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: STAT_SUM_TARGET not unique" );
@@ -2140,7 +2395,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------------
     {
         pe = entries.find ( "L_CURVE_TARGET" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: L_CURVE_TARGET not unique" );
@@ -2156,7 +2412,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ----------------------
     {
         pe = entries.find ( "EXTENDED_POLL_TRIGGER" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: EXTENDED_POLL_TRIGGER not unique" );
@@ -2177,7 +2434,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ----------------------
     {
         pe = entries.find ( "EXTENDED_POLL_ENABLED" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: EXTENDED_POLL_ENABLED not unique" );
@@ -2194,7 +2452,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -------------------
     {
         pe = entries.find ( "USER_CALLS_ENABLED" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: USER_CALLS_ENABLED not unique" );
@@ -2211,7 +2470,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -------------
     {
         pe = entries.find ( "ASYNCHRONOUS" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: ASYNCHRONOUS not unique" );
@@ -2228,7 +2488,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ----
     {
         pe = entries.find ( "RHO" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: RHO not unique" );
@@ -2244,7 +2505,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ------
     {
         pe = entries.find ( "H_MIN" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: H_MIN not unique" );
@@ -2260,7 +2522,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // --------
     {
         pe = entries.find ( "H_MAX_0" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: H_MAX_0 not unique" );
@@ -2276,7 +2539,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -------
     {
         pe = entries.find ( "H_NORM" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: H_NORM not unique" );
@@ -2295,7 +2559,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     {
         _tmp_dir.clear();
         pe = entries.find ( "TMP_DIR" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: TMP_DIR not unique" );
@@ -2314,7 +2579,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -----------------------
     {
         pe = entries.find ( "ADD_SEED_TO_FILE_NAMES" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: ADD_SEED_TO_FILE_NAMES not unique" );
@@ -2337,7 +2603,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     {
         _solution_file.clear();
         pe = entries.find ( "SOLUTION_FILE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: SOLUTION_FILE not unique" );
@@ -2355,7 +2622,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     {
         _history_file.clear();
         pe = entries.find ( "HISTORY_FILE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: HISTORY_FILE not unique" );
@@ -2372,7 +2640,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -----------
     {
         pe = entries.find ( "STATS_FILE" );
-        if ( pe ) {
+        if ( pe )
+        {
             
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -2386,7 +2655,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
             std::list<std::string> ls;
             if (it!=end)
             {
-                while ( it != end ) {
+                while ( it != end )
+                {
                     ls.push_back(*it);
                     ++it;
                 }
@@ -2403,7 +2673,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     {
         _cache_file.clear();
         pe = entries.find ( "CACHE_FILE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: CACHE_FILE not unique" );
@@ -2420,7 +2691,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     {
         _sgte_cache_file.clear();
         pe = entries.find ( "SGTE_CACHE_FILE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: SGTE_CACHE_FILE not unique" );
@@ -2437,7 +2709,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ------------------
     {
         pe = entries.find ( "CACHE_SAVE_PERIOD" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: CACHE_SAVE_PERIOD not unique" );
@@ -2453,7 +2726,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ----------
     {
         pe = entries.find ( "SGTE_COST" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: SGTE_COST not unique" );
@@ -2497,7 +2771,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // STOP_IF_FEASIBLE:
     // -----------------
     pe = entries.find ( "STOP_IF_FEASIBLE" );
-    if ( pe ) {
+    if ( pe )
+    {
         if ( !pe->is_unique() )
             throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                      "invalid parameter: STOP_IF_FEASIBLE not unique" );
@@ -2513,7 +2788,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------------------
     {
         pe = entries.find ( "BB_INPUT_INCLUDE_TAG" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: BB_INPUT_INCLUDE_TAG not unique" );
@@ -2530,7 +2806,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ----------------------
     {
         pe = entries.find ( "BB_INPUT_INCLUDE_SEED" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: BB_INPUT_INCLUDE_SEED not unique" );
@@ -2546,7 +2823,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------------
     {
         pe = entries.find ( "BB_REDIRECTION" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: BB_REDIRECTION not unique" );
@@ -2566,17 +2844,26 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     interpret_mesh_sizes ( entries , "MIN_MESH_SIZE"     );
     interpret_mesh_sizes ( entries , "MIN_POLL_SIZE"     );
     
+    
+    // GRANULARITY  ---> for the next release!
+    //--------------------
+    // interpret_granularity( entries , "GRANULARITY");
+    
+    
     // BB_OUTPUT_TYPE:
     // ---------------
     {
         pe = entries.find ( "BB_OUTPUT_TYPE" );
         
-        if ( !pe ) {
+        if ( !pe )
+        {
             if ( _bb_output_type.empty() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: BB_OUTPUT_TYPE not defined" );
         }
-        else {
+        else
+        {
+            
             
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -2592,8 +2879,10 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
             std::list<NOMAD::bb_output_type> bbot;
             i   = 0;
             end = pe->get_values().end();
-            for ( it = pe->get_values().begin() ; it != end ; ++it ) {
-                if ( !NOMAD::string_to_bb_output_type ( *it , cur ) ) {
+            for ( it = pe->get_values().begin() ; it != end ; ++it )
+            {
+                if ( !NOMAD::string_to_bb_output_type ( *it , cur ) )
+                {
                     err = "invalid parameter: BB_OUTPUT_TYPE (" + pe->get_name();
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
                 }
@@ -2611,7 +2900,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     {
         _neighbors_exe.clear();
         pe = entries.find ( "NEIGHBORS_EXE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: NEIGHBORS_EXE not unique" );
@@ -2628,7 +2918,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -------
     {
         pe = entries.find ( "BB_EXE" );
-        if ( pe ) {
+        if ( pe )
+        {
             
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -2639,7 +2930,9 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
             if ( m == 1 )
                 set_BB_EXE ( *pe->get_values().begin() );
             
-            else {
+            else
+            {
+                
                 
                 if ( m != static_cast<int>(_bb_output_type.size()) )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -2661,18 +2954,21 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------
     {
         pe = entries.find ( "SGTE_EXE" );
-        if ( pe ) {
+        if ( pe )
+        {
             
             std::string bb_exe_name , sgte_name;
             
-            if ( pe->get_nb_values() == 1 ) {
+            if ( pe->get_nb_values() == 1 )
+            {
                 if ( !pe->is_unique() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: SGTE_EXE (with one arguement) not unique" );
                 sgte_name = *pe->get_values().begin();
             }
             
-            else if ( pe->get_nb_values() == 2 ) {
+            else if ( pe->get_nb_values() == 2 )
+            {
                 bb_exe_name = *pe->get_values().begin();
                 sgte_name   = *(++pe->get_values().begin());
             }
@@ -2690,7 +2986,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------------
     {
         pe = entries.find ( "SGTE_EVAL_SORT" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: SGTE_EVAL_SORT not unique" );
@@ -2707,7 +3004,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------
     {
         pe = entries.find ( "HAS_SGTE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: HAS_SGTE not unique" );
@@ -2724,7 +3022,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // --------------
     {
         pe = entries.find ( "OPT_ONLY_SGTE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: OPT_ONLY_SGTE not unique" );
@@ -2741,7 +3040,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // ---------------
     {
         pe = entries.find ( "DISPLAY_DEGREE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: DISPLAY_DEGREE not unique" );
@@ -2757,7 +3057,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -----------
     {
         pe = entries.find ( "OPEN_BRACE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: OPEN_BRACE not unique" );
@@ -2776,7 +3077,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -------------
     {
         pe = entries.find ( "CLOSED_BRACE" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: CLOSED_BRACE not unique" );
@@ -2794,7 +3096,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // DISPLAY_STATS:
     {
         pe = entries.find ( "DISPLAY_STATS" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: DISPLAY_STATS not unique" );
@@ -2812,7 +3115,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     // -----------------
     {
         pe = entries.find ( "DISPLAY_ALL_EVAL" );
-        if ( pe ) {
+        if ( pe )
+        {
             if ( !pe->is_unique() )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: DISPLAY_ALL_EVAL not unique" );
@@ -2844,7 +3148,6 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
             s = *(pe->get_values().begin());
             NOMAD::toupper(s);
             
-            
             if ( s == "DIFF" )
                 i = -1;
             else if ( !NOMAD::atoi ( s , i ) )
@@ -2853,10 +3156,10 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
             set_SEED(i);
             pe->set_has_been_interpreted();
             
-            
         }
     }
     
+    
     // VARIABLE_GROUP:
     // ---------------
     interpret_var_groups ( entries );
@@ -2869,7 +3172,8 @@ void NOMAD::Parameters::read ( const NOMAD::Parameter_Entries & entries )
     
     // check the non-interpreted parameters:
     pe = entries.find_non_interpreted();
-    if ( pe ) {
+    if ( pe )
+    {
         err = "invalid parameter: " + pe->get_name() + " - unknown";
         throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ , err );
     }
@@ -2884,13 +3188,15 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
 {
     std::list<std::string>::const_iterator it;
     
-    if ( _to_be_checked ) {
+    if ( _to_be_checked )
+    {
         out << "parameters not checked" << std::endl;
         return;
     }
     
     // problem directory:
-    if ( !_problem_dir.empty() ) {
+    if ( !_problem_dir.empty() )
+    {
         out << "problem directory    : " << _problem_dir << std::endl;
         if ( _tmp_dir != _problem_dir )
             out << "tmp directory        : " << _tmp_dir << std::endl;
@@ -2900,26 +3206,30 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     out << "dimension            : n=" << _dimension << std::endl;
     
     // bounds:
-    if ( _lb.is_defined() ) {
+    if ( _lb.is_defined() )
+    {
         out << "lower bounds         : ( ";
         _lb.display ( out , " " , 4 , NOMAD::Point::get_display_limit() );
         out << " )" << std::endl;
     }
-    if ( _ub.is_defined() ) {
+    if ( _ub.is_defined() )
+    {
         out << "upper bounds         : ( ";
         _ub.display ( out , " " , 4 , NOMAD::Point::get_display_limit() );
         out << " )" << std::endl;
     }
     
     // scaling:
-    if ( _scaling.is_defined() ) {
+    if ( _scaling.is_defined() )
+    {
         out << "scaling              : ( ";
         _scaling.display ( out , " " , 4 , NOMAD::Point::get_display_limit() );
         out << " )" << std::endl;
     }
     
     // fixed variables:
-    if ( _fixed_variables.is_defined() ) {
+    if ( _fixed_variables.is_defined() )
+    {
         out << "fixed variables      : ( ";
         _fixed_variables.display ( out , " " , 4 , NOMAD::Point::get_display_limit() );
         out << " )" << std::endl;
@@ -2938,8 +3248,10 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         out << "( " << _bb_input_type << " )" << std::endl;
     
     // extended poll trigger:
-    if ( get_signature()->has_categorical() ) {
-        if ( _extended_poll_enabled ) {
+    if ( get_signature()->has_categorical() )
+    {
+        if ( _extended_poll_enabled )
+        {
             out << "extended poll trigger: " << _extended_poll_trigger;
             if ( _relative_ept )
                 out << " (relative)";
@@ -2952,7 +3264,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     }
     
     // periodic variables:
-    if ( !_periodic_variables.empty() ) {
+    if ( !_periodic_variables.empty() )
+    {
         out << "periodic variables   : { ";
         for ( size_t k = 0 ; k < _periodic_variables.size() ; ++k )
             if ( _periodic_variables[k] )
@@ -2961,7 +3274,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     }
     
     // variable groups:
-    if ( _var_groups.size() > 1 ) {
+    if ( _var_groups.size() > 1 )
+    {
         int i = 0;
         out.open_block ( "variable groups" );
         std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp>::const_iterator
@@ -2981,9 +3295,11 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         it = _bb_exe.begin();
         
         out.open_block ( "blackbox outputs (m=" + NOMAD::itos ( m ) + ")" );
-        for ( int i = 0 ; i < m ; ++i ) {
+        for ( int i = 0 ; i < m ; ++i )
+        {
             out << "#" << std::setw(w) << i << " " << std::setw(12) << _bb_output_type[i];
-            if ( display_bb_exe ) {
+            if ( display_bb_exe )
+            {
                 out << "\t" << *it;
                 if ( display_sgte_exe )
                     out << "\t" << get_sgte_exe(*it);
@@ -2999,7 +3315,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     << ( (_std_signature) ? "standard" : "extern" ) << std::endl;
     
     // BB_REDIRECTION:
-    if ( !_bb_redirection ) {
+    if ( !_bb_redirection )
+    {
         out << "blackbox output redirection     : ";
         out.display_yes_or_no ( _bb_redirection );
         out << std::endl;
@@ -3010,10 +3327,12 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         out << "has surrogate                   : ";
         out.display_yes_or_no ( _has_sgte );
         out << std::endl;
-        if ( _has_sgte ) {
+        if ( _has_sgte )
+        {
             
             // OPT_ONLY_SGTE:
-            if ( _opt_only_sgte ) {
+            if ( _opt_only_sgte )
+            {
                 out << "minimize only with surrogate    : ";
                 out.display_yes_or_no ( _opt_only_sgte );
                 out << std::endl;
@@ -3035,7 +3354,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     }
     
     // MULTI-MADS:
-    if ( get_nb_obj() > 1 ) {
+    if ( get_nb_obj() > 1 )
+    {
         out << "multi-MADS                      : [overall bb eval=";
         if ( _multi_overall_bb_eval >= 0 )
             out << _multi_overall_bb_eval;
@@ -3051,7 +3371,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         out << "]" << std::endl
         << "                                  [formulation="
         << _multi_formulation << "]";
-        if ( _multi_f_bounds.is_defined() ) {
+        if ( _multi_f_bounds.is_defined() )
+        {
             out << " [f_bounds=";
             _multi_f_bounds.display ( out , "," , -1 , -1 );
             out << "]";
@@ -3060,10 +3381,12 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     }
     
     // barrier:
-    if ( _has_constraints ) {
+    if ( _has_constraints )
+    {
         
         out << "barrier type                    : ";
-        switch ( _barrier_type ) {
+        switch ( _barrier_type )
+        {
             case NOMAD::EB:
                 out << "extreme" << std::endl;
                 break;
@@ -3102,10 +3425,12 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     
     // STATS_FILE:
     out << "stats file                      : ";
-    if ( !_stats_file_name.empty() ) {
+    if ( !_stats_file_name.empty() )
+    {
         out << "(" << _stats_file_name << ") ";
         std::list<std::string>::const_iterator end = _stats_file.end();
-        for ( it = _stats_file.begin() ; it != end ; ++it ) {
+        for ( it = _stats_file.begin() ; it != end ; ++it )
+        {
             if ( it->empty() )
                 out << " ";
             else
@@ -3118,7 +3443,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     
     // CACHE_FILE:
     out << "cache file                      : ";
-    if ( !_cache_file.empty() ) {
+    if ( !_cache_file.empty() )
+    {
         out << _cache_file << std::endl;
         out << "cache save period               : ";
         if ( _cache_save_period <= 0 )
@@ -3141,10 +3467,14 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     if ( _x0s.empty() && _x0_cache_file.empty() )
         out << "x0                              : points in \'"
         << _cache_file << "\'" << std::endl;
-    else {
+    else
+    {
+        
         bool first = true;
-        if ( !_x0_cache_file.empty() ) {
-            if ( first ) {
+        if ( !_x0_cache_file.empty() )
+        {
+            if ( first )
+            {
                 out << "x0                              : ";
                 first = false;
             }
@@ -3155,10 +3485,13 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
                 out << " (read only)";
             out << std::endl;
         }
-        if ( !_x0s.empty() ) {
+        if ( !_x0s.empty() )
+        {
             size_t x0n = _x0s.size();
-            for ( size_t k = 0 ; k < x0n ; ++k ) {
-                if ( first ) {
+            for ( size_t k = 0 ; k < x0n ; ++k )
+            {
+                if ( first )
+                {
                     out << "x0                              : ";
                     first = false;
                 }
@@ -3177,20 +3510,27 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         if ( _direction_types.size() == 1 )
             out << "directions                      : "
             << *_direction_types.begin() << std::endl;
-        else {
+        else
+        {
+            
             out << NOMAD::open_block ( "directions" );
             for ( it = _direction_types.begin() ; it != end ; ++it )
                 out << *it << std::endl;
             out.close_block();
         }
-        if ( _barrier_type == NOMAD::PB || _barrier_type == NOMAD::PEB_P ) {
+        if ( _barrier_type == NOMAD::PB || _barrier_type == NOMAD::PEB_P )
+        {
             if ( _sec_poll_dir_types.empty() )
                 out << "sec. poll dir. type: no secondary poll" << std::endl;
-            else {
+            else
+            {
+                
                 if ( _sec_poll_dir_types.size() == 1 )
                     out << "sec. poll dir. type: "
                     << *_sec_poll_dir_types.begin() << std::endl;
-                else {
+                else
+                {
+                    
                     end = _sec_poll_dir_types.end();
                     out << NOMAD::open_block ( "sec. poll dir. types" );
                     for ( it = _sec_poll_dir_types.begin() ; it != end ; ++it )
@@ -3199,17 +3539,16 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
                 }
             }
         }
-        
     }
     
     // mesh:
     {
-        if ( get_use_smesh() )
+        if ( _mesh_type == NOMAD::SMESH )
         {
             out << NOMAD::open_block ( "smesh (isotropic)" );
             out << "mesh update basis       : " << std::setw(3) << _mesh_update_basis << std::endl;
         }
-        else
+        else if ( _mesh_type == NOMAD::XMESH )
         {
             if ( get_anisotropic_mesh() )
                 out << NOMAD::open_block ( "xmesh (anisotropic)" );
@@ -3217,6 +3556,7 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
                 out << NOMAD::open_block ( "xmesh (isotropic)" );
             out << "poll update basis      : " << std::setw(3) << _poll_update_basis << std::endl;
         }
+        
         out << "coarsening exponent    : " << std::setw(3) << _mesh_coarsening_exponent
         << std::endl
         << "refining exponent      : " << std::setw(3) << _mesh_refining_exponent
@@ -3228,12 +3568,14 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         out << "initial poll size      : ( ";
         _initial_poll_size.display ( out , " " , 4 , NOMAD::Point::get_display_limit() );
         out << " )" << std::endl;
-        if ( _min_mesh_size.is_defined() ) {
+        if ( _min_mesh_size.is_defined() )
+        {
             out << "min mesh size          : ( ";
             _min_mesh_size.display ( out , " " , 4 , NOMAD::Point::get_display_limit() );
             out << " )" << std::endl;
         }
-        if ( _min_poll_size.is_defined() ) {
+        if ( _min_poll_size.is_defined() )
+        {
             out << "min poll size          : ( ";
             _min_poll_size.display ( out , " " , 4 , NOMAD::Point::get_display_limit() );
             out << " )" << std::endl;
@@ -3262,7 +3604,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         out << "opportunistic evaluations        : ";
         out.display_yes_or_no ( _opportunistic_eval );
         out << std::endl;
-        if ( _opportunistic_eval ) {
+        if ( _opportunistic_eval )
+        {
             if ( _opportunistic_min_nb_success > 0 )
                 out << "opportunistic min nb success     : "
                 << _opportunistic_min_nb_success << std::endl;
@@ -3314,8 +3657,10 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
                 out << "no model search" << std::endl;
             
             //  model ordering:
-            if ( _model_params.eval_sort != NOMAD::NO_MODEL ) {
-                if ( _model_params.eval_sort == NOMAD::QUADRATIC_MODEL ) {
+            if ( _model_params.eval_sort != NOMAD::NO_MODEL )
+            {
+                if ( _model_params.eval_sort == NOMAD::QUADRATIC_MODEL )
+                {
                     out << NOMAD::open_block ( "model ordering" )
                     << "models type            : " << _model_params.eval_sort
                     << std::endl << "cautious model ordering: ";
@@ -3343,12 +3688,13 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
             // quadratic model parameters:
             if ( _model_params.eval_sort == NOMAD::QUADRATIC_MODEL ||
                 _model_params.search1   == NOMAD::QUADRATIC_MODEL ||
-                _model_params.search2   == NOMAD::QUADRATIC_MODEL    ) {
+                _model_params.search2   == NOMAD::QUADRATIC_MODEL    )
+            {
                 out << NOMAD::open_block ( "quadratic model parameters" )
                 << "radius factor: " << _model_params.quad_radius_factor << std::endl
                 << "use WP       : ";
                 out.display_yes_or_no ( _model_params.quad_use_WP );
-                out	<< std::endl << "min Y size   : ";
+                out    << std::endl << "min Y size   : ";
                 if ( _model_params.quad_min_Y_size < 0 )
                     out << "n+1";
                 else
@@ -3357,19 +3703,11 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
                 << "max Y size   : " << _model_params.quad_max_Y_size
                 << std::endl << NOMAD::close_block();
             }
-            
-            // TGP model parameters:
-            if ( _model_params.eval_sort == NOMAD::TGP_MODEL ||
-                _model_params.search1   == NOMAD::TGP_MODEL ||
-                _model_params.search2   == NOMAD::TGP_MODEL    ) {
-                out << NOMAD::open_block ( "TGP model parameters" )
-                << "mode       : " << _model_params.tgp_mode        << std::endl
-                << "reuse model: " << _model_params.tgp_reuse_model << std::endl
-                << NOMAD::close_block();
-            }
             out.close_block();
         }
-        else {
+        else
+        {
+            
             out << "use models                       : ";
             out.display_yes_or_no ( false );
             out << std::endl;
@@ -3390,7 +3728,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     
     // LH_SEARCH:
     out << "Latin-Hypercube (LH) search      : ";
-    if ( _LH_search_p0 > 0 || _LH_search_pi > 0 ) {
+    if ( _LH_search_p0 > 0 || _LH_search_pi > 0 )
+    {
         out << "#init:"   << _LH_search_p0
         << ", #iter:" << _LH_search_pi
         << ", opport:";
@@ -3402,7 +3741,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     
     // CACHE_SEARCH:
     out << "cache search                     : ";
-    if ( _cache_search ) {
+    if ( _cache_search )
+    {
         out.display_yes_or_no ( true );
         out << ", opport:";
         out.display_yes_or_no ( _opportunistic_cache_search );
@@ -3437,7 +3777,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     // DISPLAY_STATS:
     out << "display stats                : ";
     std::list<std::string>::const_iterator end = _display_stats.end();
-    for ( it = _display_stats.begin() ; it != end ; ++it ) {
+    for ( it = _display_stats.begin() ; it != end ; ++it )
+    {
         if ( it->empty() )
             out << " ";
         else
@@ -3462,7 +3803,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         out << "max eval. (bb+cache)         : " << _max_eval << std::endl;
     
     // MAX_BB_EVAL:
-    if ( _max_bb_eval >= 0 ) {
+    if ( _max_bb_eval >= 0 )
+    {
         out << "max number of blackbox eval. : " << _max_bb_eval;
         if ( _max_bb_eval == 0 )
             out << " (no blackbox eval. allowed)";
@@ -3474,7 +3816,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         out << "max simulated blackbox eval. : " << _max_sim_bb_eval << std::endl;
     
     // MAX_SGTE_EVAL:
-    if ( _sgte_max_eval >= 0 ) {
+    if ( _sgte_max_eval >= 0 )
+    {
         out << "max surrogate eval.          : " << _sgte_max_eval;
         if ( _sgte_max_eval == 0 )
             out << " (no surrogate eval. allowed)";
@@ -3482,7 +3825,8 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
     }
     
     // MAX_ITERATIONS:
-    if ( _max_iterations >= 0 ) {
+    if ( _max_iterations >= 0 )
+    {
         out << "max iterations               : " << _max_iterations;
         if ( _max_iterations == 0 )
             out << " (no iterations allowed)";
@@ -3503,9 +3847,11 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         out << "max wall-clock time          : " << _max_time << "s" << std::endl;
     
     // F_TARGET:
-    if ( _f_target.is_defined() ) {
+    if ( _f_target.is_defined() )
+    {
         out << "objective target             : ";
-        if ( _f_target.size() > 1 ) {
+        if ( _f_target.size() > 1 )
+        {
             out << "( ";
             _f_target.display ( out , " " , 4 , -1 );
             out << " )" << std::endl;
@@ -3525,11 +3871,13 @@ void NOMAD::Parameters::display ( const NOMAD::Display & out ) const
         << _L_curve_target << std::endl;
     
     // STOP_IF_FEASIBLE:
-    if ( _stop_if_feasible ) {
+    if ( _stop_if_feasible )
+    {
         out << "stop if feasible             : ";
         out.display_yes_or_no ( _stop_if_feasible );
         out << std::endl;
     }
+    
 }
 
 /*---------------------------------------*/
@@ -3764,7 +4112,7 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
     /*----------------------------*/
     {
         
-        if ( _use_smesh && _anisotropic_mesh )
+        if ( _mesh_type == NOMAD::SMESH && _anisotropic_mesh )
         {
             _anisotropic_mesh=false;
             if ( !_warning_has_been_displayed )
@@ -3795,6 +4143,36 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
         }
         
         
+        // limit mesh index:
+        // --------------------------------
+        {
+            if ( _mesh_type == NOMAD::SMESH && _limit_mesh_index > NOMAD::L_LIMITS )
+                if ( !_warning_has_been_displayed )
+                    _out << NOMAD::open_block("Warning:")
+                    << "A limit mesh index that is greater than the defaut limit of " << NOMAD::L_LIMITS << " is provided. This convergence criterion can be difficult to meet due to nomad precision" << std::endl
+                    << NOMAD::close_block();
+            
+            if ( _mesh_type == NOMAD::SMESH && _limit_mesh_index == NOMAD::XL_LIMITS )
+                _limit_mesh_index = NOMAD::L_LIMITS;
+            
+            if ( ( _mesh_type == NOMAD::XMESH ) && _limit_mesh_index < NOMAD::XL_LIMITS )
+                if ( !_warning_has_been_displayed )
+                    _out << NOMAD::open_block("Warning:")
+                    << "A limit mesh index that is smaller than the defaut limit of " << NOMAD::L_LIMITS << " is provided. This convergence criterion can be difficult to meet due to nomad precision" << std::endl
+                    << NOMAD::close_block();
+            
+            if ( _mesh_type == NOMAD::SMESH && _limit_mesh_index <= _initial_mesh_index  )
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                         "invalid parameter: LIMIT_MESH_INDEX must be larger than INITIAL_MESH_INDEX (SMESH)" );
+            
+            if ( ( _mesh_type == NOMAD::XMESH ) && _limit_mesh_index >= _initial_mesh_index  )
+                throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                         "invalid parameter: LIMIT_MESH_INDEX must be smaller than INITIAL_MESH_INDEX (XMESH)" );
+            
+            
+        }
+        
+        
         // initial mesh size or poll size:
         // --------------------------------
         bool use_x0 = !_x0s.empty() && _x0s[0]->size() == _dimension;
@@ -3806,10 +4184,10 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
             if ( _bb_input_type[i] == NOMAD::CONTINUOUS )
             {
                 
-                // Determine _initial_mesh_size from _initial_poll_size (this will disappear in future version)
                 if ( _initial_mesh_size[i].is_defined() )
                     _initial_poll_size[i]=_initial_mesh_size[i]*pow(_dimension,0.5);
                 
+                
                 // default value for initial mesh size
                 if ( !_initial_poll_size[i].is_defined() )
                 {
@@ -3846,12 +4224,19 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
                         }
                     }
                 }
+                
                 else if ( !_fixed_variables[i].is_defined() &&
                          ( _initial_poll_size[i].value() <  NOMAD::Double::get_epsilon() ||
                           _initial_poll_size[i].value() <= 0.0                             ) )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: INITIAL_MESH_SIZE" );
+                
+                // Determine _initial_mesh_size from _initial_poll_size (this will disappear in future version)
+                if ( !_initial_mesh_size[i].is_defined() )
+                    _initial_mesh_size[i]=_initial_poll_size[i]*pow(_dimension,-0.5);
+                
             }
+            
             // binary/categorical variables:
             // -----------------------------
             else if ( _bb_input_type[i] == NOMAD::BINARY      ||
@@ -3862,6 +4247,7 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
                 _initial_mesh_size[i] = 1.0;
                 _initial_poll_size[i] = 1.0;
             }
+            
             // integer variables:
             // ------------------
             else
@@ -3877,31 +4263,27 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
                     if ( _initial_mesh_size[i] < 1.0 )
                         _initial_mesh_size[i] = 1.0;
                     
+                    
                 }
                 else // that is no initial_mesh_size and no initial_poll_size
                 {
-                    
-                    // default value for initial mesh size
                     // (r0.1 if there are bounds + rounding to nearest integer not zero, 1.0 otherwise):
                     if ( !_lb[i].is_defined() || !_ub[i].is_defined() )
                         _initial_mesh_size[i] = 1.0;
                     else
                     {
                         set_INITIAL_POLL_SIZE ( i , 0.1 , true );
-                        _initial_mesh_size[i]=_initial_poll_size[i]*pow(_dimension,-0.5);
-                        _initial_mesh_size[i]=_initial_mesh_size[i].round();
+                        _initial_mesh_size[i] = _initial_poll_size[i] * pow(_dimension,-0.5);
+                        _initial_mesh_size[i] = _initial_mesh_size[i].round();
                         if ( _initial_mesh_size[i] < 1.0 )
                             _initial_mesh_size[i] = 1.0;
                         
                     }
                 }
-                _initial_poll_size[i]=_initial_mesh_size[i]*pow(_dimension,0.5);
+                // Determine the initial poll size from mesh size
+                _initial_poll_size[i] = _initial_mesh_size[i] * pow(_dimension,0.5);
                 
             }
-            // Determine _initial_mesh_size from _initial_poll_size (this will disappear in future version)
-            if ( !_initial_mesh_size[i].is_defined() )
-                _initial_mesh_size[i]=_initial_poll_size[i]*pow(_dimension,-0.5);
-            
         }
         
         // min mesh size \delta_min:
@@ -3910,14 +4292,14 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
             
             if ( _min_mesh_size.size() != _dimension )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                         "invalid parameter: MIN_MESH_SIZE" );
+                                         "invalid parameter: MIN_MESH_SIZE must have the same dimension as the problem" );
             
             for ( i = 0 ; i < _dimension ; ++i )
                 if ( _min_mesh_size[i].is_defined() &&
-                    (_min_mesh_size[i].value() <  NOMAD::Double::get_epsilon() ||
+                    ( _min_mesh_size[i].value() <  NOMAD::Double::get_epsilon() ||
                      _min_mesh_size[i].value() <= 0.0                             ) )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                             "invalid parameters: MIN_MESH_SIZE" );
+                                             "invalid parameters: MIN_MESH_SIZE must be greater than zero" );
         }
         
         // min poll size \Delta^p_min:
@@ -3928,8 +4310,8 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
             
             if ( _min_poll_size.size() != _dimension )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                         "invalid parameter: MIN_POLL_SIZE" );
-            
+                                         "invalid parameter: MIN_POLL_SIZE must have the same dimension as the problem." );
+            // test validity of min poll size
             for ( i = 0 ; i < _dimension ; ++i )
             {
                 // continuous variables:
@@ -3939,36 +4321,20 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
                         (_min_poll_size[i].value() <  NOMAD::Double::get_epsilon() ||
                          _min_poll_size[i].value() <= 0.0                             ) )
                         throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                                 "invalid parameters: MIN_POLL_SIZE" );
+                                                 "invalid parameters: MIN_POLL_SIZE must be consistent with continuous variable" );
                 }
-                
                 // integer and binary variables:
                 else if ( _bb_input_type[i] != NOMAD::CATEGORICAL )
                 {
-                    if ( _min_poll_size[i].is_defined() )
-                    {
-                        if ( _min_poll_size[i] < 1.0 )
-                            _min_poll_size[i] = 1.0;
-                    }
-                    else
-                        _min_poll_size[i] = 1.0;
+                    if ( _min_poll_size[i].is_defined() && _min_poll_size[i] < 1.0 )
+                        throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                                 "invalid parameters: MIN_POLL_SIZE must be consistent with integer/binary variable" );
                 }
             }
         }
-        
-        // default min poll size for non-continuous variables:
         else
-        {
-            
             _min_poll_size_defined = false;
-            
-            _min_poll_size = NOMAD::Point ( _dimension );
-            for ( i = 0 ; i < _dimension ; ++i )
-                if ( _bb_input_type[i] == NOMAD::INTEGER )
-                    _min_poll_size[i] = 1.0;
-        }
         
-        // default value for _mesh_update_basis (tau):
         if ( _mesh_update_basis <= 1.0 )
             throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                      "invalid parameters: MESH_UPDATE_BASIS (must be >1)" );
@@ -3979,6 +4345,66 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
     }
     
     
+    {
+        // Granularity --> this will be used in the next version in which granular variabtesles will be handled
+        //-------------------
+        if ( _granularity.is_defined () && _granularity.size () != _dimension )
+            throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                     "invalid parameters: granularity (size must be equal to dimension)" );
+        
+        if ( ! _granularity.is_defined() )
+            _granularity = NOMAD::Point ( _dimension ,0 );
+        else
+        {
+            double inpart;
+            for ( i = 0 ; i < _dimension ; ++i )
+            {
+                
+                if ( _granularity[i].is_defined() && _granularity[i] < 0 )
+                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                             "invalid parameters: granularity (negative values)" );
+                
+                if ( _granularity[i].is_defined() && _granularity[i] !=0 && _mesh_type == NOMAD::SMESH )
+                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                             "invalid parameters: granular variables are not supported when mesh_type = smesh " );
+                
+                // Exception if a granularity is not supported by xmesh is given
+                if ( _granularity[i].is_defined() && _granularity[i] != 0.0 && _granularity[i] != 1.0 )
+                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                             "invalid parameters: granularity must be 0 (continuous) or 1 (integer). " );
+                
+                //from  bb_input_type --> _granularity. No granularity is required for categorical variables (different variable group + no mesh )
+                if ( _bb_input_type[i] == NOMAD::CONTINUOUS )
+                {
+                    if ( _granularity[i].is_defined() && _granularity[i] != 0.0 && _out.get_gen_dd()>=NOMAD::NORMAL_DISPLAY && !_warning_has_been_displayed )
+                        _out << NOMAD::open_block("Warning:")
+                        << " The granularity of the continuous variable " << i << " is changed to 0." << std::endl
+                        << NOMAD::close_block();
+                    _granularity[i] = 0.0;
+                }
+                
+                if ( _bb_input_type[i] == NOMAD::INTEGER || _bb_input_type[i] == NOMAD::BINARY )
+                {
+                    
+                    if ( _granularity[i].is_defined() && _granularity[i] != 1.0 && _out.get_gen_dd() >= NOMAD::NORMAL_DISPLAY && !_warning_has_been_displayed )
+                        _out << NOMAD::open_block("Warning:")
+                        << " The granularity of the integer/binary variable " << i << " is changed to 1." << std::endl
+                        << NOMAD::close_block();
+                    _granularity[i] = 1.0;
+                }
+                
+                if ( !_x0s.empty() && _granularity[i].is_defined() && _granularity[i] > 0.0
+                    && std::modf ( (*_x0s[0])[i].value() / _granularity[i].value() , &inpart ) != 0 )
+                    throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                             "NOMAD::Parameters::check : invalid granularity of variables vs initial value" );
+            }
+            
+        }
+        
+        
+    }
+    
+    
     int nb_obj = static_cast<int>(_index_obj.size());
     
     /*----------------------------*/
@@ -4068,14 +4494,16 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
         // blackbox with the associated surrogate
         // (SGTE_EXE parameter with only one argument):
         it = _sgte_exe.find("");
-        if ( it != end ) {
+        if ( it != end )
+        {
             if ( _sgte_exe.size() != 1 )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: SGTE_EXE - impossible to interpret with one argument" );
             
             std::string bb_exe_name = *bb_exe_begin;
             std::list<std::string>::const_iterator it2 = ++bb_exe_begin;
-            while ( it2 != bb_exe_end ) {
+            while ( it2 != bb_exe_end )
+            {
                 if ( *it2 != bb_exe_name )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: unique SGTE_EXE without unique blackbox executable" );
@@ -4244,10 +4672,20 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
             _speculative_search = false;
     }
     
+    
+    /*----------------------------*/
+    /*      intensification       */
+    /*----------------------------*/
+    if ( _max_eval_intensification > 0 )
+        _intensification_type = NOMAD::POLL_AND_SEARCH;
+    else
+        _intensification_type = NOMAD::NO_INTENSIFICATION;
+    
     /*----------------------------*/
     /*      periodic variables    */
     /*----------------------------*/
-    if ( !_periodic_variables.empty() ) {
+    if ( !_periodic_variables.empty() )
+    {
         
         // check the size:
         if ( _dimension != static_cast<int>(_periodic_variables.size()) )
@@ -4256,7 +4694,8 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
         
         // check the bounds:
         for ( int k = 0 ; k < _dimension ; ++k )
-            if ( _periodic_variables[k] ) {
+            if ( _periodic_variables[k] )
+            {
                 if ( !_lb[k].is_defined() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                              "invalid parameter: PERIODIC_VARIABLE - lower bound not defined" );
@@ -4275,7 +4714,7 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
         // disable models upon request
         if ( _disable_models)
         {
-            _model_params.search1 = _model_params.search2 = _model_params.eval_sort	= NOMAD::NO_MODEL;
+            _model_params.search1 = _model_params.search2 = _model_params.eval_sort    = NOMAD::NO_MODEL;
             if (_out.get_gen_dd()>NOMAD::MINIMAL_DISPLAY && !_warning_has_been_displayed)
             {
                 _out << NOMAD::open_block("Warning:")
@@ -4311,25 +4750,36 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
         
         if ( _nb_free_variables >= 50 || has_categorical || _opt_only_sgte )
         {
-            _model_params.search1 = _model_params.search2 = _model_params.eval_sort	= NOMAD::NO_MODEL;
+            _model_params.search1 = _model_params.search2 = _model_params.eval_sort    = NOMAD::NO_MODEL;
             set_DIRECTION_TYPE_NO_MODEL();
             
-            if (_out.get_gen_dd()>NOMAD::MINIMAL_DISPLAY && !_warning_has_been_displayed)
+            if ( _out.get_gen_dd() > NOMAD::MINIMAL_DISPLAY && !_warning_has_been_displayed)
             {
-                if ( _opt_only_sgte)
+                if ( _opt_only_sgte )
                     _out << NOMAD::open_block("Warning:")
                     << "Model use is disabled when setting the option OPT_ONLY_SGTE to yes." << std::endl;
-                if ( has_categorical)
+                if ( has_categorical )
                     _out << NOMAD::open_block("Warning:")
                     << "Model use is disabled for problem with categorical variables." << std::endl
                     << NOMAD::close_block();
-                if ( _nb_free_variables >= 50)
+                if ( _nb_free_variables >= 50 )
                     _out << NOMAD::open_block("Warning:")
                     << "Model use is disabled for problem with dimension greater than 50." << std::endl
                     << NOMAD::close_block();
             }
         }
         
+        // disable minimal granularity when categorical variables are present
+        if ( has_categorical && get_number_granular_variables() > 0 )
+        {
+            _granularity.reset( _dimension , 0.0 );
+            
+            if (_out.get_gen_dd()>NOMAD::MINIMAL_DISPLAY && !_warning_has_been_displayed)
+                _out << NOMAD::open_block("Warning:")
+                << "Setting granularity different than 0 is disabled for problem with categorical variables." << std::endl
+                << NOMAD::close_block();
+            
+        }
         
         // disable PEB constraints when categorical variables are present
         if ( has_categorical && _barrier_type == NOMAD::PEB_P)
@@ -4402,12 +4852,14 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
         if ( _model_params.search_max_trial_pts < 1 )
             throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                      "invalid parameter: MODEL_SEARCH_MAX_TRIAL_PTS (must be >= 1)" );
+        
+        
     }
     
     /*----------------------------*/
     /*        EVAL SORT           */
     /*----------------------------*/
-    if (_disable_eval_sort)
+    if ( _disable_eval_sort )
     {
         
         _model_params.eval_sort = NOMAD::NO_MODEL;
@@ -4474,7 +4926,8 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
         
         for ( i = 0 ; i < _dimension ; ++i )
         {
-            if ( !in_group[i] && !_fixed_variables[i].is_defined() ) {
+            if ( !in_group[i] && !_fixed_variables[i].is_defined() )
+            {
                 if (  _bb_input_type[i] != NOMAD::CATEGORICAL )
                     vi_cbi.insert(i);
                 else
@@ -4485,6 +4938,7 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
         // creation of a group for cont./bin./int. variables:
         if ( !vi_cbi.empty() )
         {
+            
             vg = new NOMAD::Variable_Group ( vi_cbi              ,
                                             _direction_types    ,
                                             _sec_poll_dir_types ,
@@ -4640,16 +5094,18 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
                                                      _bb_input_type      ,
                                                      _lb                 ,
                                                      _ub                 ,
-                                                     _use_smesh          ,
-                                                     _anisotropic_mesh ,
-                                                     _initial_poll_size,
-                                                     _min_poll_size,
-                                                     _min_mesh_size,
-                                                     _mesh_update_basis,
-                                                     _poll_update_basis,
+                                                     _mesh_type          ,
+                                                     _anisotropic_mesh   ,
+                                                     _granularity ,
+                                                     _initial_poll_size  ,
+                                                     _min_poll_size      ,
+                                                     _min_mesh_size      ,
+                                                     _mesh_update_basis  ,
+                                                     _poll_update_basis  ,
                                                      _mesh_coarsening_exponent,
                                                      _mesh_refining_exponent,
-                                                     _initial_mesh_index,
+                                                     _initial_mesh_index ,
+                                                     _limit_mesh_index   ,
                                                      _scaling            ,
                                                      _fixed_variables    ,
                                                      _periodic_variables ,
@@ -4679,6 +5135,7 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
                                    _ub                 ,
                                    _scaling            ,
                                    _fixed_variables    ,
+                                   _granularity        ,
                                    _periodic_variables ,
                                    _var_groups           );
         }
@@ -4697,7 +5154,8 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
     /*              X0            */
     /*----------------------------*/
     {
-        if ( _x0s.empty() && _x0_cache_file.empty() ) {
+        if ( _x0s.empty() && _x0_cache_file.empty() )
+        {
             if ( _LH_search_p0 <= 0 )
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "Parameters::check(): no starting point" );
@@ -4713,13 +5171,12 @@ void NOMAD::Parameters::check ( bool remove_history_file  ,
                 throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                          "invalid parameter: x0 with missing coordinates" );
             
-            // check that x0 is consistent with input type
             for ( i = 0 ; i < _dimension ; ++i )
             {
                 const NOMAD::Double xi = (*_x0s[k])[i];
                 if (  _bb_input_type[i] != NOMAD::CONTINUOUS && ! xi.is_integer() )
                     throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                             "invalid parameter: x0 with variables values inconistent with their type (integer, binary, categorical." );
+                                             "invalid parameter: x0 with variables values inconsistent with their type (integer, binary, categorical)." );
                 
             }
             
@@ -4759,7 +5216,8 @@ void NOMAD::Parameters::add_seed_to_file_name ( int                 n_seed    ,
     std::string ext = "";
     std::string fic = file_name;
     
-    if ( k >= 0 && k < n_pn ) {
+    if ( k >= 0 && k < n_pn )
+    {
         fic  = file_name.substr ( 0 , k      );
         ext  = file_name.substr ( k , n_pn-k );
         n_pn = k;
@@ -4936,24 +5394,6 @@ int NOMAD::Parameters::get_model_quad_min_Y_size ( void ) const
     return _model_params.quad_min_Y_size;
 }
 
-// get_model_tgp_mode:
-NOMAD::TGP_mode_type NOMAD::Parameters::get_model_tgp_mode ( void ) const
-{
-    if ( _to_be_checked )
-        throw Bad_Access ( "Parameters.cpp" , __LINE__ ,
-                          "Parameters::get_model_tgp_mode(), Parameters::check() must be invoked" );
-    return _model_params.tgp_mode;
-}
-
-// get_model_tgp_reuse_model:
-bool NOMAD::Parameters::get_model_tgp_reuse_model ( void ) const
-{
-    if ( _to_be_checked )
-        throw Bad_Access ( "Parameters.cpp" , __LINE__ ,
-                          "Parameters::get_model_tgp_reuse_model(), Parameters::check() must be invoked" );
-    return _model_params.tgp_reuse_model;
-}
-
 // get_model_search_max_trial_pts:
 int NOMAD::Parameters::get_model_search_max_trial_pts ( void ) const
 {
@@ -5082,17 +5522,18 @@ bool NOMAD::Parameters::get_anisotropic_mesh ( void ) const
     return _anisotropic_mesh;
 }
 
-
-// smesh:
-bool NOMAD::Parameters::get_use_smesh ( void ) const
+// mesh_type:
+const NOMAD::mesh_type & NOMAD::Parameters::get_mesh_type ( void ) const
 {
     if ( _to_be_checked )
         throw Bad_Access ( "Parameters.cpp" , __LINE__ ,
-                          "Parameters::get_use_smesh, Parameters::check() must be invoked" );
-    return _use_smesh;
+                          "Parameters::get_mesh_type, Parameters::check() must be invoked" );
+    return _mesh_type;
+    
 }
 
 
+
 // get_mesh_update_basis:
 const NOMAD::Double & NOMAD::Parameters::get_mesh_update_basis ( void ) const
 {
@@ -5963,7 +6404,8 @@ void NOMAD::Parameters::set_POINT_DISPLAY_LIMIT ( int dl )
 // set_DIMENSION:
 bool NOMAD::Parameters::set_DIMENSION ( int dim )
 {
-    if ( _dimension > 0 ) {
+    if ( _dimension > 0 )
+    {
         _dimension = -1;
         throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                  "invalid parameter: DIMENSION - defined twice" );
@@ -5972,7 +6414,8 @@ bool NOMAD::Parameters::set_DIMENSION ( int dim )
     
     _to_be_checked = true;
     _dimension     = dim;
-    if ( _dimension <= 0 ) {
+    if ( _dimension <= 0 )
+    {
         _dimension = -1;
         throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                  "invalid parameter: DIMENSION" );
@@ -6020,6 +6463,9 @@ void NOMAD::Parameters::set_EXTERN_SIGNATURE ( NOMAD::Signature * s )
     // fixed variables:
     set_FIXED_VARIABLE ( s->get_fixed_variables() );
     
+    // granularity:
+    set_GRANULARITY( s->get_granularity() );
+    
     // periodic variables:
     set_PERIODIC_VARIABLE ( s->get_periodic_variables() );
     
@@ -6027,9 +6473,12 @@ void NOMAD::Parameters::set_EXTERN_SIGNATURE ( NOMAD::Signature * s )
     reset_variable_groups();
     set_VARIABLE_GROUP ( s->get_var_groups() );
     
+    // mesh: the mesh is set during check
+    
     _to_be_checked = true;
 }
 
+
 // set_SNAP_TO_BOUNDS:
 void NOMAD::Parameters::set_SNAP_TO_BOUNDS ( bool stb )
 {
@@ -6078,8 +6527,6 @@ void NOMAD::Parameters::set_model_parameters ( const NOMAD::model_params_type &
     set_MODEL_QUAD_USE_WP          ( mp.quad_use_WP          );
     set_MODEL_QUAD_MIN_Y_SIZE      ( mp.quad_min_Y_size      );
     set_MODEL_QUAD_MAX_Y_SIZE      ( mp.quad_max_Y_size      );
-    set_MODEL_TGP_MODE             ( mp.tgp_mode             );
-    set_MODEL_TGP_REUSE_MODEL      ( mp.tgp_reuse_model      );
 }
 
 // set_MODEL_SEARCH (1/3):
@@ -6087,24 +6534,21 @@ void NOMAD::Parameters::set_MODEL_SEARCH ( int i , NOMAD::model_type ms )
 {
     _to_be_checked = true;
     
-#ifndef USE_TGP
-    if ( ms == NOMAD::TGP_MODEL )
-        throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                 "invalid parameter: MODEL_SEARCH: this version has not been compiled for TGP" );
-#endif
-    
     if ( i != 1 && i != 2 )
         throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                  "NOMAD::Parameters::set_MODEL_SEARCH(i,m): bad value for argument i (must be 1 or 2)" );
     
-    if ( i == 1 ) {
+    if ( i == 1 )
+    {
         if ( _model_params.search2 != NOMAD::NO_MODEL )
             throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                      "NOMAD::Parameters::set_MODEL_SEARCH(1,m): already a second model search" );
         
         _model_params.search1 = ms;
     }
-    else {
+    else
+    {
+        
         
         if ( _model_params.search1 == NOMAD::NO_MODEL && ms != NOMAD::NO_MODEL )
             throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -6121,11 +6565,14 @@ void NOMAD::Parameters::set_MODEL_SEARCH ( int i , NOMAD::model_type ms )
 // set_MODEL_SEARCH (2/3):
 void NOMAD::Parameters::set_MODEL_SEARCH ( bool ms )
 {
-    if ( ms ) {
+    if ( ms )
+    {
         set_MODEL_SEARCH ( 1 , NOMAD::QUADRATIC_MODEL );
         set_MODEL_SEARCH ( 2 , NOMAD::NO_MODEL        );
     }
-    else {
+    else
+    {
+        
         set_MODEL_SEARCH ( 1 , NOMAD::NO_MODEL );
         set_MODEL_SEARCH ( 2 , NOMAD::NO_MODEL );
     }
@@ -6142,11 +6589,6 @@ void NOMAD::Parameters::set_MODEL_SEARCH ( NOMAD::model_type ms )
 // set_MODEL_EVAL_SORT (1/2):
 void NOMAD::Parameters::set_MODEL_EVAL_SORT ( NOMAD::model_type mes )
 {
-#ifndef USE_TGP
-    if ( mes == NOMAD::TGP_MODEL )
-        throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                 "invalid parameter: MODEL_EVAL_SORT: this version has not been compiled for TGP" );
-#endif
     _to_be_checked          = true;
     _model_params.eval_sort = mes;
 }
@@ -6210,27 +6652,6 @@ void NOMAD::Parameters::set_MODEL_NP1_QUAD_EPSILON ( const NOMAD::Double & d )
     _model_params.model_np1_quad_epsilon = d;
 }
 
-
-
-// set_MODEL_TGP_MODE:
-void NOMAD::Parameters::set_MODEL_TGP_MODE ( NOMAD::TGP_mode_type m )
-{
-    if ( m == NOMAD::TGP_USER ) {
-        throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
-                                 "invalid parameter: MODEL_TGP_MODE: the TGP user mode is only a debugging option" );
-    }
-    
-    _to_be_checked         = true;
-    _model_params.tgp_mode = m;
-}
-
-// set_MODEL_TGP_REUSE_MODEL:
-void NOMAD::Parameters::set_MODEL_TGP_REUSE_MODEL ( bool rm )
-{
-    _to_be_checked                = true;
-    _model_params.tgp_reuse_model = rm;
-}
-
 // set_MODEL_SEARCH_MAX_TRIAL_PTS:
 void NOMAD::Parameters::set_MODEL_SEARCH_MAX_TRIAL_PTS ( int s )
 {
@@ -6257,7 +6678,8 @@ void NOMAD::Parameters::set_VNS_SEARCH ( bool s )
 void NOMAD::Parameters::set_VNS_SEARCH ( const NOMAD::Double & trigger )
 {
     _to_be_checked = true;
-    if ( !trigger.is_defined() ) {
+    if ( !trigger.is_defined() )
+    {
         _VNS_search = false;
         return;
     }
@@ -6323,7 +6745,8 @@ void NOMAD::Parameters::set_SEC_POLL_DIR_TYPE ( NOMAD::direction_type dt )
 
 // set_SEC_POLL_DIR_TYPE (2/2):
 void NOMAD::Parameters::set_SEC_POLL_DIR_TYPE
-( const std::set<NOMAD::direction_type> & dt ) {
+( const std::set<NOMAD::direction_type> & dt )
+{
     std::set<NOMAD::direction_type>::const_iterator it , end = dt.end();
     for ( it = dt.begin() ; it != end ; ++it )
         set_SEC_POLL_DIR_TYPE ( *it );
@@ -6796,7 +7219,8 @@ void NOMAD::Parameters::set_SGTE_CACHE_FILE ( const std::string & cf )
     _sgte_cache_file = cf;
     if ( cf.empty() )
         return;
-    if ( !NOMAD::Parameters::check_directory ( _sgte_cache_file ) ) {
+    if ( !NOMAD::Parameters::check_directory ( _sgte_cache_file ) )
+    {
         throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                  "invalid parameter: SGTE_CACHE_FILE");
     }
@@ -6828,7 +7252,8 @@ void NOMAD::Parameters::set_X0 ( const std::string & file_name )
     std::string   complete_file_name = _problem_dir + file_name;
     std::ifstream fin ( complete_file_name.c_str() );
     
-    if ( fin.fail() ) {
+    if ( fin.fail() )
+    {
         std::string err = "invalid parameter: X0 - could not open file \'"
         + complete_file_name + "\'";
         fin.close();
@@ -6839,14 +7264,16 @@ void NOMAD::Parameters::set_X0 ( const std::string & file_name )
     try {
         fin >> tmp_x0;
     }
-    catch ( NOMAD::Point::Bad_Input & ) {
+    catch ( NOMAD::Point::Bad_Input & )
+    {
         flag = false;
         
         // we suppose that the file name corresponds to a cache file:
         _x0_cache_file = file_name;
     }
     
-    while ( flag ) {
+    while ( flag )
+    {
         
         set_X0 ( tmp_x0 );
         
@@ -6855,7 +7282,8 @@ void NOMAD::Parameters::set_X0 ( const std::string & file_name )
         try {
             fin >> tmp_x0;
         }
-        catch ( NOMAD::Point::Bad_Input & ) {
+        catch ( NOMAD::Point::Bad_Input & )
+        {
             flag = false;
         }
     }
@@ -6880,7 +7308,8 @@ void NOMAD::Parameters::set_DISPLAY_STATS ( const std::list<std::string> & ls )
 // set_DISPLAY_STATS (2/2):
 void NOMAD::Parameters::set_DISPLAY_STATS ( const std::string & stats )
 {
-    if ( stats.empty() ) {
+    if ( stats.empty() )
+    {
         _display_stats.clear();
         return;
     }
@@ -6891,7 +7320,8 @@ void NOMAD::Parameters::set_DISPLAY_STATS ( const std::string & stats )
     it  = pe.get_values().begin();
     std::list<std::string>                 ls;
     
-    while ( it != end ) {
+    while ( it != end )
+    {
         ls.push_back ( *it );
         ++it;
     }
@@ -6905,7 +7335,8 @@ void NOMAD::Parameters::set_DISPLAY_STATS ( const std::string & stats )
 void NOMAD::Parameters::set_STATS_FILE ( const std::string            & file_name ,
                                         const std::list<std::string> & ls          )
 {
-    if ( file_name.empty() ) {
+    if ( file_name.empty() )
+    {
         reset_stats_file();
         return;
     }
@@ -6930,7 +7361,8 @@ void NOMAD::Parameters::set_STATS_FILE ( const std::string & file_name ,
     it  = pe.get_values().begin();
     std::list<std::string>                 ls;
     ++it;
-    while ( it != end ) {
+    while ( it != end )
+    {
         ls.push_back(*it);
         ++it;
     }
@@ -6957,27 +7389,32 @@ bool NOMAD::Parameters::set_DISPLAY_DEGREE ( const std::string & dd )
         std::string ddu = dd;
         NOMAD::toupper ( ddu );
         
-        if ( ddu == "NO" || ddu == "NO_DISPLAY" ) {
+        if ( ddu == "NO" || ddu == "NO_DISPLAY" )
+        {
             set_DISPLAY_DEGREE ( 0 , 0 , 0 , 0 );
             return true;
         }
-        else if ( ddu == "MIN" || ddu == "MINIMAL" || ddu == "MINIMAL_DISPLAY" ) {
+        else if ( ddu == "MIN" || ddu == "MINIMAL" || ddu == "MINIMAL_DISPLAY" )
+        {
             set_DISPLAY_DEGREE ( 1 , 1 , 1 , 1 );
             return true;
         }
         
-        else if ( ddu == "NORMAL" || ddu == "NORMAL_DISPLAY" ) {
+        else if ( ddu == "NORMAL" || ddu == "NORMAL_DISPLAY" )
+        {
             set_DISPLAY_DEGREE ( 2 , 2 , 2 , 2 );
             return true;
         }
         
-        else if ( ddu == "FULL" || ddu == "FULL_DISPLAY" ) {
+        else if ( ddu == "FULL" || ddu == "FULL_DISPLAY" )
+        {
             set_DISPLAY_DEGREE ( 3 , 3 , 3 , 3 );
             return true;
         }
     }
     
-    if ( dd.size() == 1 ) {
+    if ( dd.size() == 1 )
+    {
         int i;
         if ( !NOMAD::atoi ( dd[0] , i ) )
             return false;
@@ -7073,6 +7510,15 @@ void NOMAD::Parameters::set_MAX_BB_EVAL ( int bbe )
     _max_bb_eval     = ( bbe < 0 ) ? -1 : bbe;
 }
 
+
+// set_MAX_BB_EVAL:
+void NOMAD::Parameters::set_MAX_EVAL_INTENSIFICATION ( int bbe )
+{
+    _to_be_checked   = true;
+    _max_eval_intensification     = ( bbe <= 0 ) ? -1 : bbe;
+}
+
+
 // set_MAX_SIM_BB_EVAL:
 void NOMAD::Parameters::set_MAX_SIM_BB_EVAL ( int bbe )
 {
@@ -7160,20 +7606,20 @@ void NOMAD::Parameters::set_L_CURVE_TARGET ( const NOMAD::Double & lct )
 // set_ANISOTROPIC_MESH:
 void NOMAD::Parameters::set_ANISOTROPIC_MESH ( bool anis )
 {
-    _to_be_checked		= true;
-    _anisotropic_mesh	= anis;
+    _to_be_checked       = true;
+    _anisotropic_mesh    = anis;
 }
 
-
-// set_USE_SMESH:
-void NOMAD::Parameters::set_USE_SMESH ( bool use_smesh )
+// set_MESH_TYPE:
+void NOMAD::Parameters::set_MESH_TYPE ( NOMAD::mesh_type mt )
 {
-    _to_be_checked		= true;
-    _use_smesh          = use_smesh;
+    _to_be_checked        = true;
+    _mesh_type          = mt;
 }
 
 
 
+
 // set_MESH_UPDATE_BASIS:
 void NOMAD::Parameters::set_MESH_UPDATE_BASIS ( const NOMAD::Double & mub )
 {
@@ -7426,7 +7872,8 @@ void NOMAD::Parameters::set_MIN_POLL_SIZE ( int                   index    ,
         throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
                                  "invalid parameter: MIN_POLL_SIZE" );
     _to_be_checked = true;
-    if ( relative ) {
+    if ( relative )
+    {
         if ( !_lb[index].is_defined()  || !_ub[index].is_defined() ||
             !d.is_defined() || d <= 0.0 || d > 1.0 )
             throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
@@ -7442,7 +7889,8 @@ void NOMAD::Parameters::set_MIN_POLL_SIZE ( const NOMAD::Point & delta_p_min ,
                                            bool                 relative      )
 {
     _to_be_checked = true;
-    if ( relative ) {
+    if ( relative )
+    {
         int nd = delta_p_min.size();
         for ( int i = 0 ; i < nd ; ++i )
             set_MIN_POLL_SIZE ( i , delta_p_min[i] , true );
@@ -7465,6 +7913,12 @@ void NOMAD::Parameters::set_MIN_POLL_SIZE ( const NOMAD::Double & d , bool relat
         _min_poll_size = NOMAD::Point ( _dimension , d );
 }
 
+void NOMAD::Parameters::set_LIMIT_MESH_INDEX ( const int & lmi )
+{
+    _to_be_checked = true;
+    _limit_mesh_index = lmi;
+}
+
 // set_NEIGHBORS_EXE:
 void NOMAD::Parameters::set_NEIGHBORS_EXE ( const std::string & ne )
 {
@@ -7560,7 +8014,6 @@ void NOMAD::Parameters::set_BB_MAX_BLOCK_SIZE ( int max_block_size )
     
     if ( _bb_max_block_size > 1 )
         _eval_points_as_block=true;
-
     
 }
 
@@ -7708,11 +8161,83 @@ void NOMAD::Parameters::set_VARIABLE_GROUP
     for ( it = vg.begin() ; it != end ; ++it )
         set_VARIABLE_GROUP ( (*it)->get_var_indexes       () ,
                             (*it)->get_direction_types   () ,
-                            (*it)->get_sec_poll_dir_types()
-                            );
+                            (*it)->get_sec_poll_dir_types() );
+    
+}
+
+
+void NOMAD::Parameters::reset_granulary ( void )
+{
+    _to_be_checked = true;
+    _granularity.clear();
+}
+
+
+const NOMAD::Point & NOMAD::Parameters::get_granularity ( void ) const
+{
+    if ( _to_be_checked )
+        throw Bad_Access ( "Parameters.cpp" , __LINE__ ,
+                          "Parameters::get_granularity(), Parameters::check() must be invoked" );
+    
+    return _granularity;
+}
+
+int NOMAD::Parameters::get_number_granular_variables ( void ) const
+{
+    
+    if ( ! _granularity.is_defined() )
+        return -1;
+    
+    int k=0;
+    for ( int i=0 ; i < _dimension ; i++ )
+    {
+        if ( _granularity[i] > 0 )
+            k++;
+        
+    }
+    return k;
+}
+
+
+// set_GRANULAR_VARIABLE
+void NOMAD::Parameters::set_GRANULARITY ( int index , const NOMAD::Double & value )
+{
+    
+    _to_be_checked = true;
+    
+    if ( index < 0 || index >= _dimension )
+        throw Invalid_Parameter ( "Parameters.cpp" , __LINE__ ,
+                                 "invalid parameter: GRANULARITY - index must be in [0;dimension-1] " );
+    
+    if ( ! _granularity.is_defined() || _granularity.size() != _dimension )
+        _granularity.reset( _dimension, 0.0 );
     
+    _granularity[index] = value;
 }
 
+
+// set_GRANULARITY
+void NOMAD::Parameters::set_GRANULARITY ( const NOMAD::Point & v )
+{
+    _to_be_checked = true;
+    _granularity = v;
+    
+}
+
+
+// set_GRANULARITY
+void NOMAD::Parameters::set_GRANULARITY ( const NOMAD::Double & v )
+{
+    _to_be_checked = true;
+    
+    _granularity.clear();
+    
+    set_GRANULARITY ( NOMAD::Point( _dimension , v ) );
+    
+}
+
+
+
 /*-----------------------------------------------*/
 /*  help (display parameter descriptions) - 1/3  */
 /*-----------------------------------------------*/
@@ -7765,8 +8290,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     
     
     const char registered_key_basic[]="2N ANGLES AVG BARRIER BASIC BASIC BB_EXE BB_INPUT_TYPE BB_OUTPUT_TYPE BI-MADS BI-OBJECTIVES BIMADS \
-    BINARY BIOBJECTIVES BLACK-BOXES	BLACKBOXES BOUNDS CACHE BBEVAL CACHE_FILE CNT_EVAL CONSTRAINTS CONTINUOUS COUNT DEBUG DELTA_0 DIMENSION \
-    DIRECTION_TYPE DIRECTION_TYPES DIRECTIONS DIRECTIONS_TYPES DIRECTORY DISPLAY_ALL_EVAL DISPLAY_DEGREES DISPLAY_STATS	EVALUATIONS \
+    BINARY BIOBJECTIVES BLACK-BOXES BLACKBOXES BOUNDS CACHE BBEVAL CACHE_FILE CNT_EVAL CONSTRAINTS CONTINUOUS COUNT DEBUG DELTA_0 DIMENSION \
+    DIRECTION_TYPE DIRECTION_TYPES DIRECTIONS DIRECTIONS_TYPES DIRECTORY DISPLAY_ALL_EVAL DISPLAY_DEGREES DISPLAY_STATS EVALUATIONS \
     EXECUTABLE F_TARGET FILES FILTER FORMAT GPS h(x) HISTORY_FILE INITIAL_MESH_SIZE INTEGER LATEX LATIN-HYPERCUBE LB LH_SEARCH LOWER_BOUND \
     LT LT-MADS LTMADS MADS MAX_BB_EVAL MAX_TIME MAXIMUM MINIMIZE MODEL MODELS MULTI-OBJECTIVE MULTIOBJECTIVES N+1 NUMBER OPTIMIZE ORTHO \
     ORTHO-MADS ORTHOMADS OUTPUTS PATH PB PEB POINT POLL PROGRESSIVE-BARRIER RANDOM SAMPLING SCREEN SCREEN SOLUTION_FILE STARTING STATIC \
@@ -7786,16 +8311,17 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     OPTIMISTIC ORTHO ORTHO-MADS ORTHOGONAL ORTHOMADS OUTPUT OUTPUTS PARALLELISM PARETO PB PEB PERIODIC_VARIABLE PMADS POINT_DISPLAY_LIMIT \
     POLL POLL_UPDATE_BASIS PRECISION PROGRESSIVE-BARRIER PROJECTION PSD-MADS PSDMADS QUAD QUADRATIC RAM RANDOM REALS REGRESSION RHO SAMPLING SCALE SCALING \
     SEARCH SEED SGTE_CACHE_FILE SGTE_COST SGTE_EVAL_SORT SGTE_EXE SGTE_ORDERING SGTES SIMULATED SNAP_TO_BOUNDS SPECULATIVE_SEARCH \
-    STAT_SUM_TARGET STATS STOP_IF_FEASIBLE SUCCESSES SURF SURROGATES TABULATIONS TAU TERMINATES TERMINATION TGP TGPMODEL_SEARCH TRIGGER \
-    UB UNDEF_STR UNDEFINED USER_CALLS_DISABLED USER_CALLS_ENABLED VARIABLE_GROUP VARIABLES VNS_SEARCH W- W+";
+    STAT_SUM_TARGET STATS STOP_IF_FEASIBLE SUCCESSES SURF SURROGATES TABULATIONS TAU TERMINATES TERMINATION TRIGGER \
+    UB UNDEF_STR UNDEFINED USER_CALLS_DISABLED USER_CALLS_ENABLED VARIABLE_GROUP VARIABLES VNS_SEARCH W- W+ ";
     
     const char registered_key_developer[]="BI-MADS BI-OBJECTIVES BIMADS BIOBJECTIVES BLACK-BOXES BLACK-BOXES COMPARISONS DEVELOPER \
     DIRECTIONS EPSILON EVALUATIONS FROBENIUS INITIAL_MESH_INDEX IMPROVEMENT INTERPOLATION L_CURVE_TARGET MADS MFN MODEL MODEL_EVAL_SORT_CAUTIOUS MODEL_ORDERING \
     MODEL_QUAD_MAX_Y_SIZE MODEL_QUAD_MIN_Y_SIZE MODEL_QUAD_RADIUS_FACTOR MODEL_QUAD_USE_WP MODEL_SEARCH MODEL_SEARCH_MAX_TRIAL_PTS \
-    MODEL_SEARCH_PROJ_TO_MESH MODEL_TGP_MODE MODEL_TGP_REUSE_MODEL MODELS MULTI_FORMULATION MULTI_USE_DELTA_CRITERION MULTI-OBJECTIVES \
+    MODEL_SEARCH_PROJ_TO_MESH MODELS MULTI_FORMULATION MULTI_USE_DELTA_CRITERION MULTI-OBJECTIVES \
     MULTIOBJECTIVES N+1 NP1 OBJECTIVE OPPORTUNISTIC_LUCKY_EVAL OPPORTUNISTIC_MIN_F_IMPRVMT OPPORTUNISTIC_MIN_NB_SUCCESSES OPT_ONLY_SGTES \
     ORTHO PARETO PB PEB POLL PRECISION PROGRESSIVE-BARRIER PROJECTION QUAD QUADRATIC REALS REGRESSION SEC_POLL_DIR_TYPES SGTES STOPPING \
-    SUCCESSES SURROGATES TERMINATES TERMINATION TGP USE_SMESH WELL-POISEDNESS";
+    SUCCESSES SURROGATES TERMINATES TERMINATION MESH_TYPE WELL-POISEDNESS " ;
+    
     
     
     if ( display_all || NOMAD::string_find ( registered_key_basic, param_names ) )
@@ -7812,7 +8338,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             EXECUTABLE FILES BI-OBJECTIVES \
                                             BIOBJECTIVES MULTIOBJECTIVES \
                                             BIMADS BI-MADS \
-                                            MULTI-OBJECTIVES" , param_names ) ) {
+                                            MULTI-OBJECTIVES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "BB_EXE (basic)" )            << std::endl
         << ". blackbox executable names"                     << std::endl
@@ -7839,7 +8366,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // --------------
     if ( display_all || NOMAD::string_find ( "BB_INPUT_TYPE BLACK-BOXES BLACKBOXES \
                                             BASIC VARIABLES CONTINUOUS \
-                                            INTEGER BINARY" , param_names ) ) {
+                                            INTEGER BINARY" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "BB_INPUT_TYPE (basic)" )           << std::endl
         << ". blackbox input types"                                << std::endl
@@ -7869,7 +8397,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             MULTI-OBJECTIVE MINIMIZE \
                                             BIOBJECTIVES MULTIOBJECTIVES \
                                             BI-MADS BIMADS \
-                                            OPTIMIZE" , param_names ) ) {
+                                            OPTIMIZE" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "BB_OUTPUT_TYPE (basic)" )             << std::endl
         << ". blackbox output types"                                  << std::endl
@@ -7915,7 +8444,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // CACHE_FILE:
     // -----------
     if ( display_all || NOMAD::string_find ( "CACHE_FILE BASIC \
-                                            FILES OUTPUTS" , param_names ) ) {
+                                            FILES OUTPUTS" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "CACHE_FILE (basic)" ) << std::endl
         << ". cache file; if the specified file"      << std::endl
@@ -7952,7 +8482,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             MADS DIRECTIONS 2N N+1 POLL MODEL MODELS \
                                             ORTHOMADS ORTHO-MADS LTMADS LT-MADS \
                                             RANDOM STATIC UNIFORM ANGLES" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "DIRECTION_TYPE (basic)" )              << std::endl
         << ". types of directions used in the poll step"               << std::endl
@@ -7975,6 +8506,10 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
         << "                                        # ((n+1)th dir = " << std::endl
         << "                                        # negative sum of" << std::endl
         << "                                        # n first dirs)"   << std::endl
+        << "DIRECTION_TYPE ORTHO N+1 UNI            #  OrthoMADS, n+1" << std::endl
+        << "                                        # uniform "        << std::endl
+        << "                                        # distribution of" << std::endl
+        << "                                        # dirs)"           << std::endl
         << "DIRECTION_TYPE ORTHO                    #  OrthoMADS, n+1 QUAD "  << std::endl
         << "DIRECTION_TYPE ORTHO 2N                 #  OrthoMADS, 2n"  << std::endl
         << "DIRECTION_TYPE LT    1                  #  LT-MADS, 1"     << std::endl
@@ -8028,12 +8563,13 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // DISPLAY_DEGREE:
     // ---------------
     if ( display_all || NOMAD::string_find ( "DISPLAY_DEGREES OUTPUTS \
-                                            SCREEN DEBUG BASIC" , param_names ) ) {
+                                            SCREEN DEBUG BASIC" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "DISPLAY_DEGREE (basic)" )              << std::endl
         << ". " << NOMAD::open_block ( "display degree" )
         << "0: no display"                                             << std::endl
-        << "1: minimal display"										<< std::endl
+        << "1: minimal display"                                        << std::endl
         << "2: normal display"                                         << std::endl
         << "3: full display"                                           << std::endl
         << NOMAD::close_block()
@@ -8066,7 +8602,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // DISPLAY_STATS:
     // ---------------
     if ( display_all || NOMAD::string_find ( "DISPLAY_STATS OUTPUTS LATEX FORMAT \
-                                            SCREEN DEBUG BASIC" , param_names ) ) {
+                                            SCREEN DEBUG BASIC" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "DISPLAY_STATS (basic)" )              << std::endl
         << ". format of the outputs displayed at each success"        << std::endl
@@ -8119,7 +8656,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             MULTI-OBJECTIVES \
                                             BIOBJECTIVES MULTIOBJECTIVES \
                                             BI-MADS BIMADS \
-                                            TERMINATES TERMINATION" , param_names ) ) {
+                                            TERMINATES TERMINATION" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "F_TARGET (basic)" )            << std::endl
         << ". NOMAD terminates if fi <= F_TARGET[i] for"       << std::endl
@@ -8137,7 +8675,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // HISTORY_FILE:
     // -------------
     if ( display_all || NOMAD::string_find ( "HISTORY_FILE BASIC \
-                                            FILES OUTPUTS" , param_names ) ) {
+                                            FILES OUTPUTS" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "HISTORY_FILE (basic)" ) << std::endl
         << ". history file: contains all trial points"  << std::endl
@@ -8155,7 +8694,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // INITIAL_MESH_SIZE:
     // ------------------
     if ( display_all || NOMAD::string_find ( "INITIAL_MESH_SIZE BASIC MADS \
-                                            DELTA_0 " , param_names ) ) {
+                                            DELTA_0 " , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "INITIAL_MESH_SIZE (basic)" )              << std::endl
         << ". initial mesh size"                                          << std::endl
@@ -8183,7 +8723,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // INITIAL_POLL_SIZE:
     // ------------------
     if ( display_all || NOMAD::string_find ( "INITIAL_POLL_SIZE BASIC MADS \
-                                            DELTA_0 " , param_names ) ) {
+                                            DELTA_0 " , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "INITIAL_POLL_SIZE (basic)" )              << std::endl
         << ". initial poll size"                                          << std::endl
@@ -8212,7 +8753,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // LH_SEARCH:
     // ----------
     if ( display_all || NOMAD::string_find ( "LH_SEARCH LATIN-HYPERCUBE \
-                                            SAMPLING BASIC" , param_names ) ) {
+                                            SAMPLING BASIC" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "LH_SEARCH (basic)" )         << std::endl
         << ". Latin-Hypercube sampling (search)"             << std::endl
@@ -8234,7 +8776,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // LOWER_BOUND:
     // ------------
     if ( display_all || NOMAD::string_find ( "LOWER_BOUND BASIC LB BOUNDS FILES" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "LOWER_BOUND (basic)" )              << std::endl
         << ". lower bounds for each variable"                       << std::endl
@@ -8258,7 +8801,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             BI-0BJECTIVE MULTI-OBJECTIVE \
                                             BIOBJECTIVES MULTIOBJECTIVES \
                                             BI-MADS BIMADS \
-                                            TERMINATES TERMINATION" , param_names ) ) {
+                                            TERMINATES TERMINATION" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MAX_BB_EVAL (basic)" )      << std::endl
         << ". maximum number of blackbox evaluations"       << std::endl
@@ -8278,7 +8822,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( display_all || NOMAD::string_find ( "MAX_TIME BASIC BLACK-BOXES BLACKBOXES \
                                             MAXIMUM WALL-CLOCK REAL \
                                             STOPPING TERMINATION \
-                                            TERMINATES" , param_names ) ) {
+                                            TERMINATES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MAX_TIME (basic)" )  << std::endl
         << ". maximum wall-clock time in seconds"    << std::endl
@@ -8293,7 +8838,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // SOLUTION_FILE:
     // --------------
     if ( display_all || NOMAD::string_find ( "SOLUTION_FILE BASIC \
-                                            FILES OUTPUTS" , param_names ) ) {
+                                            FILES OUTPUTS" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "SOLUTION_FILE (basic)" ) << std::endl
         << ". file containing the solution"              << std::endl
@@ -8312,7 +8858,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -----------
     if ( display_all || NOMAD::string_find ( "STATS_FILE BASIC \
                                             FILES OUTPUTS DISPLAY_STATS" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "STATS_FILE (basic)" )             << std::endl
         << ". file containing all successes with the same format" << std::endl
@@ -8332,7 +8879,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // --------
     if ( display_all || NOMAD::string_find ( "TMP_DIR BASIC PATH TEMPORARY \
                                             DIRECTORY FILES \
-                                            BLACK-BOXES BLACKBOXES" , param_names ) ) {
+                                            BLACK-BOXES BLACKBOXES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "TMP_DIR (basic)" )                   << std::endl
         << ". temporary directory for blackbox input/output files"   << std::endl
@@ -8349,7 +8897,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // UPPER_BOUND:
     // ------------
     if ( display_all || NOMAD::string_find ( "UPPER_BOUND BASIC UB BOUNDS" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "UPPER_BOUND (basic)" ) << std::endl
         << ". upper bounds for each variable"          << std::endl
@@ -8365,7 +8914,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( display_all || NOMAD::string_find ( "X0 STARTING POINT BASIC \
                                             VARIABLES \
                                             LH LATIN-HYPERCUBE \
-                                            CACHE FILES" , param_names ) ) {
+                                            CACHE FILES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "X0 (basic)" )                          << std::endl
         << ". starting point(s)"                                       << std::endl
@@ -8407,7 +8957,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ADD_SEED_TO_FILE_NAMES:
     // -----------------------
     if ( display_all || NOMAD::string_find ( "ADD_SEED_TO_FILE_NAMES OUTPUTS \
-                                            ADVANCED FILES" , param_names ) ) {
+                                            ADVANCED FILES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "ADD_SEED_TO_FILE_NAMES (advanced)" ) << std::endl
         << ". if \'yes\', the seed is added to the name of"          << std::endl
@@ -8422,12 +8973,13 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     
     // ANISOTROPIC_MESH:
     // -------------
-    if ( display_all || NOMAD::string_find ( "ANISOTROPIC MESH SCALING" , param_names ) ) {
+    if ( display_all || NOMAD::string_find ( "ANISOTROPIC MESH SCALING" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "ANISOTROPIC_MESH (advanced)" )      << std::endl
         << ". use anisotropic mesh for generating directions"   << std::endl
-        << ". if \'yes\', the mesh size is scaled dynamically"	<< std::endl
-        << ". based on direction of success."					<< std::endl
+        << ". if \'yes\', the mesh size is scaled dynamically"    << std::endl
+        << ". based on direction of success."                    << std::endl
         << ". This option is compatible with Ortho Mads "       << std::endl
         << ". directions only "                                 << std::endl
         << ". default: \'yes\'"                                 << std::endl
@@ -8440,7 +8992,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ASYNCHRONOUS:
     // -------------
     if ( display_all || NOMAD::string_find ( "ASYNCHRONOUS PARALLELISM MPI \
-                                            ADVANCED PMADS" , param_names ) ) {
+                                            ADVANCED PMADS" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "ASYNCHRONOUS (advanced)" )      << std::endl
         << ". asynchronous strategy for the parallel version"   << std::endl
@@ -8458,7 +9011,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ----------------------
     if ( display_all || NOMAD::string_find ( "BB_INPUT_INCLUDE_SEED BLACK-BOXES \
                                             BLACKBOXES \
-                                            ADVANCED FILES" , param_names ) ) {
+                                            ADVANCED FILES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "BB_INPUT_INCLUDE_SEED (advanced)" ) << std::endl
         << ". if \'yes\', the seed (\'SEED\') of the current"       << std::endl
@@ -8475,7 +9029,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ---------------------
     if ( display_all || NOMAD::string_find ( "BB_INPUT_INCLUDE_TAG \
                                             BLACK-BOXES BLACKBOXES \
-                                            ADVANCED FILES" , param_names ) ) {
+                                            ADVANCED FILES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "BB_INPUT_INCLUDE_TAG (advanced)" ) << std::endl
         << ". if \'yes\', the tag of a point is put as the first"  << std::endl
@@ -8492,7 +9047,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // BB_REDIRECTION:
     // ---------------
     if ( display_all || NOMAD::string_find ( "BB_REDIRECTION BLACK-BOXES BLACKBOXES \
-                                            ADVANCED OUTPUT FILES" , param_names ) ) {
+                                            ADVANCED OUTPUT FILES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "BB_REDIRECTION (advanced)" ) << std::endl
         << ". if NOMAD uses a redirection (\'>\') to"        << std::endl
@@ -8564,8 +9120,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( display_all || NOMAD::string_find ( "MODEL DISABLE MODELS DISABLE_MODELS \
                                             MODEL_EVAL_SORT ADVANCED \
                                             EVAL_SORT \
-                                            ORTHO N+1 QUAD QUADRATIC MODEL_SEARCH TGP " ,
-                                            param_names ) ) {
+                                            ORTHO N+1 QUAD QUADRATIC MODEL_SEARCH" ,
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "DISABLE (advanced)" )                         << std::endl
         << ". this parameter is used to forcefully disable a feature."        << std::endl
@@ -8578,35 +9135,37 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
         << "             MODEL_SEARCH and DIRECTION_TYPE ORTHO N+1 QUAD"      << std::endl
         << "             will be ignored "                                    << std::endl
         << ". # DISABLE EVAL_SORT: ordering by lexicographic order only. "    << std::endl
-        << "  # WARNING: setting of MODEL_EVAL_SORT,"						  << std::endl
-        << "             SURROGATE_EVAL_SORT and user priority 			"	  << std::endl
-        << "             will be ignored"									  << std::endl
+        << "  # WARNING: setting of MODEL_EVAL_SORT,"                          << std::endl
+        << "             SURROGATE_EVAL_SORT and user priority             "      << std::endl
+        << "             will be ignored"                                      << std::endl
         << ". default: no default"                                            << std::endl
         
         << NOMAD::close_block();
         chk = true;
     }
     
+    
     // BB_MAX_BLOCK_SIZE
     //-----------
     if ( display_all || NOMAD::string_find ( "EVAL LIST MAX BLOCK SIZE BB BLACKBOX \
                                             BLACK-BOX OPPORTUNIST OPPORTUNISTIC PARALLEL",
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
-        << NOMAD::open_block ( "BB_MAX_BLOCK_SIZE (advanced)" )					<< std::endl
-        << ". maximum size of a block of evaluations send to the blackbox"		<< std::endl
-        << " executable at once. Blackbox executable can manage parallel"		<< std::endl
-        << " evaluations on its own. Opportunistic strategies may apply after"	<< std::endl
-        << " each block of evaluations."										<< std::endl
-        << " Depending on the algorithm phase, the blackbox executable will"	<< std::endl
-        << " receive at most BB_MAX_BLOCK_SIZE points to evaluate."				<< std::endl
+        << NOMAD::open_block ( "BB_MAX_BLOCK_SIZE (advanced)" )                 << std::endl
+        << ". maximum size of a block of evaluations send to the blackbox"      << std::endl
+        << " executable at once. Blackbox executable can manage parallel"       << std::endl
+        << " evaluations on its own. Opportunistic strategies may apply after"  << std::endl
+        << " each block of evaluations."                                        << std::endl
+        << " Depending on the algorithm phase, the blackbox executable will"    << std::endl
+        << " receive at most BB_MAX_BLOCK_SIZE points to evaluate."             << std::endl
         << " When this parameter is greater than one, the number of evaluations"<< std::endl
-        << " may exceed the MAX_BB_EVAL stopping criterion."					<< std::endl
-        << ". argument: integer > 0"											<< std::endl
-        << ". example: BB_MAX_BLOCK_SIZE 3,"									<< std::endl
-        << "             The blackbox executable receives blocks of"			<< std::endl
-        << "			 at most 3 points for evaluation."						<< std::endl
-        << ". default: 1"														<< std::endl
+        << " may exceed the MAX_BB_EVAL stopping criterion."                    << std::endl
+        << ". argument: integer > 0"                                            << std::endl
+        << ". example: BB_MAX_BLOCK_SIZE 3,"                                    << std::endl
+        << "             The blackbox executable receives blocks of"            << std::endl
+        << "             at most 3 points for evaluation."                      << std::endl
+        << ". default: 1"                                                       << std::endl
         << NOMAD::close_block();
         chk = true;
     }
@@ -8618,7 +9177,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             EXTENDED_POLL_DISABLED \
                                             MIXED MVP CATEGORICAL \
                                             ADVANCED" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "EXTENDED_POLL_ENABLED (advanced)" ) << std::endl
         << ". if \'no\', the extended poll for categorical"         << std::endl
@@ -8635,7 +9195,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // EXTENDED_POLL_TRIGGER:
     // ----------------------
     if ( display_all || NOMAD::string_find ( "EXTENDED_POLL_TRIGGER ADVANCED \
-                                            MIXED MVP CATEGORICAL" , param_names ) ) {
+                                            MIXED MVP CATEGORICAL" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "EXTENDED_POLL_TRIGGER (advanced)" )    << std::endl
         << ". extended poll trigger for categorical variables"         << std::endl
@@ -8657,7 +9218,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // FIXED_VARIABLE:
     // ---------------
     if ( display_all || NOMAD::string_find ( "FIXED_VARIABLE VARIABLES ADVANCED \
-                                            FILES" , param_names ) ) {
+                                            FILES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "FIXED_VARIABLE (advanced)" )            << std::endl
         << ". fix some variables to some specific values"               << std::endl
@@ -8686,7 +9248,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             CONSTRAINTS PB FILTER PEB \
                                             L1 L2 LINF L_INF \
                                             FEASIBILITY \
-                                            PROGRESSIVE-BARRIER" , param_names ) ) {
+                                            PROGRESSIVE-BARRIER" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "H_MAX_0 (advanced)" )  << std::endl
         << ". initial value of h_max (for PB and"      << std::endl
@@ -8706,7 +9269,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             CONSTRAINTS PB FILTER PEB \
                                             L1 L2 LINF L_INF \
                                             FEASIBILITY \
-                                            PROGRESSIVE-BARRIER" , param_names ) ) {
+                                            PROGRESSIVE-BARRIER" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "H_MIN (advanced)" )           << std::endl
         << ". value of h_min; x is feasible if h(x) <= h_min" << std::endl
@@ -8724,7 +9288,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             CONSTRAINTS PB FILTER PEB \
                                             L1 L2 LINF L_INF \
                                             FEASIBILITY \
-                                            PROGRESSIVE-BARRIER" , param_names ) ) {
+                                            PROGRESSIVE-BARRIER" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "H_NORM (advanced)" )              << std::endl
         << ". norm used by the F and PB constraints handling"     << std::endl
@@ -8741,8 +9306,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // HAS_SGTE:
     // ---------
     if ( display_all || NOMAD::string_find ( "HAS_SGTE SGTE_EXE ADVANCED SURROGATES \
-                                            BLACK-BOXES	BLACKBOXES \
-                                            SGTES" , param_names ) ) {
+                                            BLACK-BOXES BLACKBOXES \
+                                            SGTES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "HAS_SGTE (advanced)" )             << std::endl
         << ". to indicate that the problem has a surrogate"        << std::endl
@@ -8762,7 +9328,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // --------
     if ( display_all || NOMAD::string_find ( "INF_STR ADVANCED \
                                             INFINITY DISPLAY REALS" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "INF_STR (advanced)" ) << std::endl
         << ". string used to display infinity"        << std::endl
@@ -8778,7 +9345,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( display_all || NOMAD::string_find ( "MAX_CACHE_MEMORY ADVANCED \
                                             MAXIMUM RAM STOPPING \
                                             MB MEGA-BYTES MEGABYTES \
-                                            TERMINATES TERMINATION" , param_names ) ) {
+                                            TERMINATES TERMINATION" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MAX_CACHE_MEMORY (advanced)" )     << std::endl
         << ". the program terminates as soon as the cache"         << std::endl
@@ -8794,7 +9362,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // MAX_CONSECUTIVE_FAILED_ITERATIONS:
     // ----------------------------------
     if ( display_all || NOMAD::string_find ( "MAX_CONSECUTIVE_FAILED_ITERATIONS ADVANCED \
-                                            TERMINATION	STOPPING TERMINATES" , param_names ) ) {
+                                            TERMINATION STOPPING TERMINATES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MAX_CONSECUTIVE_FAILED_ITERATIONS (advanced)" ) << std::endl
         << ". maximum number of consecutive failed iterations"                  << std::endl
@@ -8810,7 +9379,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( display_all || NOMAD::string_find ( "MAX_EVAL ADVANCED BLACK-BOXES BLACKBOXES \
                                             MAXIMUM CACHE BBEVAL \
                                             NUMBER EVALUATIONS STOPPING \
-                                            TERMINATES TERMINATION" , param_names ) ) {
+                                            TERMINATES TERMINATION" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MAX_EVAL (advanced)" ) << std::endl
         << ". maximum number of evaluations"           << std::endl
@@ -8828,7 +9398,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( display_all || NOMAD::string_find ( "MAX_ITERATIONS ADVANCED \
                                             MAXIMUM MADS \
                                             NUMBER STOPPING \
-                                            TERMINATES TERMINATION" , param_names ) ) {
+                                            TERMINATES TERMINATION" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MAX_ITERATIONS (advanced)" ) << std::endl
         << ". maximum number of MADS iterations"             << std::endl
@@ -8839,14 +9410,14 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
         chk = true;
     }
     
-    
     // MAX_SGTE_EVAL:
     // --------------
     if ( display_all || NOMAD::string_find ( "MAX_SGTE_EVAL ADVANCED BLACK-BOXES \
                                             BLACKBOXES \
                                             MAXIMUM SURROGATES BBEVAL SGTES \
                                             NUMBER EVALUATIONS STOPPING \
-                                            TERMINATES TERMINATION" , param_names ) ) {
+                                            TERMINATES TERMINATION" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MAX_SGTE_EVAL (advanced)" ) << std::endl
         << ". maximum number of surrogate evaluations"      << std::endl
@@ -8863,7 +9434,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             BLACK-BOXES BLACKBOXES BBEVAL \
                                             MAXIMUM CACHE SIMULATED \
                                             NUMBER EVALUATIONS STOPPING \
-                                            TERMINATES TERMINATION" , param_names ) ) {
+                                            TERMINATES TERMINATION" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MAX_SIM_BB_EVAL (advanced)" )    << std::endl
         << ". maximum number of simulated blackbox evaluations"  << std::endl
@@ -8883,7 +9455,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // MESH_COARSENING_EXPONENT:
     // -------------------------
     if ( display_all || NOMAD::string_find ( "MESH_COARSENING_EXPONENT ADVANCED \
-                                            MADS W+ \\DELTA" , param_names ) ) {
+                                            MADS W+ \\DELTA" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MESH_COARSENING_EXPONENT (advanced)" )  << std::endl
         << ". mesh coarsening exponent w^+ used to update the mesh"     << std::endl
@@ -8900,7 +9473,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // MESH_REFINING_EXPONENT:
     // -----------------------
     if ( display_all || NOMAD::string_find ( "MESH_REFINING_EXPONENT ADVANCED \
-                                            MADS W- \\DELTA" , param_names ) ) {
+                                            MADS W- \\DELTA" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MESH_REFINING_EXPONENT (advanced)" )       << std::endl
         << ". mesh refining exponent w^- used to update the mesh"          << std::endl
@@ -8915,7 +9489,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // MESH_UPDATE_BASIS:
     // ------------------
     if ( display_all || NOMAD::string_find ( "MESH_UPDATE_BASIS ADVANCED \
-                                            MADS \\TAU \\DELTA" , param_names ) ) {
+                                            MADS \\TAU \\DELTA" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MESH_UPDATE_BASIS (advanced)" ) << std::endl
         << ". mesh update basis \\tau used to update the"       << std::endl
@@ -8931,7 +9506,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // --------------
     if ( display_all || NOMAD::string_find ( "MIN_MESH_SIZE ADVANCED \
                                             \\DELTA MINIMUM TERMINATION \
-                                            STOPPING TERMINATES" , param_names ) ) {
+                                            STOPPING TERMINATES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MIN_MESH_SIZE (advanced)" ) << std::endl
         << ". minimum mesh size"                            << std::endl
@@ -8947,7 +9523,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // --------------
     if ( display_all || NOMAD::string_find ( "MIN_POLL_SIZE MESH ADVANCED \
                                             \\DELTA^P MINIMUM TERMINATION \
-                                            STOPPING TERMINATES" , param_names ) ) {
+                                            STOPPING TERMINATES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MIN_POLL_SIZE (advanced)" ) << std::endl
         << ". minimum poll size"                            << std::endl
@@ -8965,18 +9542,18 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ----------------
     if ( display_all || NOMAD::string_find ( "MODEL_ORDERING MODEL_EVAL_SORT ADVANCED \
                                             MODELS INTERPOLATION REGRESSION \
-                                            MFN FROBENIUS QUADRATIC \
-                                            TGP" , param_names ) ) {
+                                            MFN FROBENIUS QUADRATIC" , param_names ) )
+    {
         _out << std::endl
-        << NOMAD::open_block ( "MODEL_EVAL_SORT (advanced)" )      << std::endl
+        << NOMAD::open_block ( "MODEL_EVAL_SORT (advanced)" )   << std::endl
         << ". if models are used to sort the trial points"      << std::endl
         << ". disabled for more than 50 variables"              << std::endl
         << ". disabled with categorical variables"              << std::endl
         << ". argument: one boolean (\'yes\' or \'no\')"        << std::endl
-        << "         or one string in {\'QUADRATIC\', \'TGP\'}" << std::endl
+        << "         or one string in {\'QUADRATIC\'}"          << std::endl
         << ". default: \'QUADRATIC\'"                           << std::endl
         << ". examples: MODEL_EVAL_SORT quadratic"              << std::endl
-        << "        MODEL_EVAL_SORT yes # quadratic is used"      << std::endl
+        << "        MODEL_EVAL_SORT yes # quadratic is used"    << std::endl
         << "            MODEL_EVAL_SORT no  # no MES"           << std::endl
         << NOMAD::close_block();
         chk = true;
@@ -8987,8 +9564,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -------------
     if ( display_all || NOMAD::string_find ( "MODEL_SEARCH ADVANCED CATEGORICAL \
                                             MODELS INTERPOLATION REGRESSION \
-                                            MFN FROBENIUS QUADRATIC PARALLEL \
-                                            TGP" , param_names ) ) {
+                                            MFN FROBENIUS QUADRATIC PARALLEL" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MODEL_SEARCH (advanced)" )             << std::endl
         << ". model search (MS)"                                    << std::endl
@@ -8997,10 +9574,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
         << ". disabled with categorical variables"                  << std::endl
         << ". disabled in parallel mode"                            << std::endl
         << ". argument: one boolean (\'yes\' or \'no\')"            << std::endl
-        << "    or one string in {\'QUADRATIC\', \'TGP\'}"          << std::endl
+        << "    or one string in {\'QUADRATIC\'}"                   << std::endl
         << ". default: \'QUADRATIC\'"                               << std::endl
         << ". example: MODEL_SEARCH QUADRATIC"                      << std::endl
-        << "           MODEL_SEARCH TGP"                            << std::endl
         << NOMAD::close_block();
         chk = true;
     }
@@ -9011,8 +9587,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ------------------------
     if ( display_all || NOMAD::string_find ( "MODEL_SEARCH_OPTIMISTIC ADVANCED \
                                             MODELS INTERPOLATION REGRESSION \
-                                            MFN FROBENIUS QUADRATIC \
-                                            TGP" , param_names ) ) {
+                                            MFN FROBENIUS QUADRATIC "
+                                            , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MODEL_SEARCH_OPTIMISTIC (advanced)" ) << std::endl
         << ". model search (MS) is optimistic or not"                 << std::endl
@@ -9030,7 +9607,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             BI-OBJECTIVES MULTI-OBJECTIVES \
                                             BIOBJECTIVES MULTIOBJECTIVES \
                                             BI-MADS BIMADS SURF" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MULTI_F_BOUNDS (advanced)" )             << std::endl
         << ". multi-objective optimization: bounds on the two"           << std::endl
@@ -9055,7 +9633,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             BI-OBJECTIVES MULTI-OBJECTIVES \
                                             BIOBJECTIVES MULTIOBJECTIVES \
                                             BI-MADS BIMADS \
-                                            NUMBER" , param_names ) ) {
+                                            NUMBER" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MULTI_NB_MADS_RUNS (advanced)" ) << std::endl
         << ". multi-objective optimization:"                  << std::endl
@@ -9075,7 +9654,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             BI-MADS BIMADS \
                                             NUMBER BLACK-BOXES BLACKBOXES BBEVAL \
                                             EVALUATIONS TERMINATION \
-                                            STOPPING TERMINATES" , param_names ) ) {
+                                            STOPPING TERMINATES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MULTI_OVERALL_BB_EVAL (advanced)" ) << std::endl
         << ". multi-objective optimization: maximum"             << std::endl
@@ -9096,7 +9676,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             EXTENDED_POLL \
                                             MIXED MVP CATEGORICAL \
                                             ADVANCED" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "NEIGHBORS_EXE (advanced)" )              << std::endl
         << ". to indicate a neighborhood executable for categorical"     << std::endl
@@ -9135,7 +9716,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( display_all || NOMAD::string_find ( "OPPORTUNISTIC_CACHE_SEARCH ADVANCED \
                                             BLACK-BOXES BLACKBOXES EVALUATIONS \
                                             SUCCESSES CACHE SEARCH" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "OPPORTUNISTIC_CACHE_SEARCH (advanced)" ) << std::endl
         << ". opportunistic strategy for cache search"                   << std::endl
@@ -9150,7 +9732,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -------------------
     if ( display_all || NOMAD::string_find ( "OPPORTUNISTIC_EVAL ADVANCED \
                                             BLACK-BOXES BLACKBOXES EVALUATIONS \
-                                            SUCCESSES" , param_names ) ) {
+                                            SUCCESSES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "OPPORTUNISTIC_EVAL (advanced)" )          << std::endl
         << ". opportunistic strategy (terminate a list of"             << std::endl
@@ -9169,7 +9752,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( display_all || NOMAD::string_find ( "OPPORTUNISTIC_LH ADVANCED \
                                             BLACK-BOXES BLACKBOXES EVALUATIONS \
                                             SUCCESSES LATIN-HYPERCUBE SEARCH" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "OPPORTUNISTIC_LH (advanced)" )        << std::endl
         << ". opportunistic strategy for Latin-Hypercube search"   << std::endl
@@ -9186,7 +9770,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -----------------------
     if ( display_all || NOMAD::string_find ( "OPPORTUNISTIC_MIN_EVAL ADVANCED \
                                             BLACK-BOXES BLACKBOXES EVALUATIONS \
-                                            SUCCESSES" , param_names ) ) {
+                                            SUCCESSES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "OPPORTUNISTIC_MIN_EVAL (advanced)" ) << std::endl
         << ". advanced parameter for the opportunistic"              << std::endl
@@ -9220,7 +9805,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // POINT_DISPLAY_LIMIT:
     // --------------------
     if ( display_all || NOMAD::string_find ( "POINT_DISPLAY_LIMIT OUTPUTS \
-                                            ADVANCED PRECISION" , param_names ) ) {
+                                            ADVANCED PRECISION" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "POINT_DISPLAY_LIMIT (advanced)" ) << std::endl
         << ". maximum number of point coordinates"                << std::endl
@@ -9235,7 +9821,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // POLL_UPDATE_BASIS:
     // ------------------
     if ( display_all || NOMAD::string_find ( "POLL_UPDATE_BASIS ADVANCED \
-                                            MADS ANISOTROPIC MESH \\TAU \\DELTA" , param_names ) ) {
+                                            MADS ANISOTROPIC MESH \\TAU \\DELTA" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "POLL_UPDATE_BASIS (advanced)" ) << std::endl
         << ". poll update basis \\tau used to update the"       << std::endl
@@ -9250,8 +9837,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // RHO:
     // ----
     if ( display_all || NOMAD::string_find ( "RHO ADVANCED MADS CONSTRAINTS \
-                                            PROGRESSIVE-BARRIER PB PEB	\
-                                            FILTER TRIGGER" , param_names ) ) {
+                                            PROGRESSIVE-BARRIER PB PEB \
+                                            FILTER TRIGGER" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "RHO (advanced)" )       << std::endl
         << ". rho parameter of the progressive barrier" << std::endl
@@ -9265,7 +9853,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // SCALING:
     // --------
     if ( display_all || NOMAD::string_find ( "SCALING SCALE ADVANCED \
-                                            FILES" , param_names ) ) {
+                                            FILES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "SCALING (advanced)" )                      << std::endl
         << ". variable scaling"                                            << std::endl
@@ -9293,8 +9882,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -----
     if ( display_all || NOMAD::string_find ( "SEED ADVANCED \
                                             RANDOM FILES ORTHOMADS LT-MADS LTMADS \
-                                            LATIN-HYPERCUBE LH TGP \
-                                            SAMPLING SEARCH" , param_names ) ) {
+                                            LATIN-HYPERCUBE LH \
+                                            SAMPLING SEARCH" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "SEED (advanced)" )             << std::endl
         << ". random seed"                                  << std::endl
@@ -9307,7 +9897,7 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
         << ". the seed is used in the output file names"    << std::endl
         << ". the seed affects the randomness of " << std::endl
         << "    Ortho-MADS and LT-MADS directions,"    << std::endl
-        << "    Latin-Hypercube search, and TGP search."     << std::endl
+        << "    Latin-Hypercube search."     << std::endl
         << ". example: SEED 123456"                            << std::endl
         << NOMAD::close_block();
         chk = true;
@@ -9319,7 +9909,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ----------------
     if ( display_all || NOMAD::string_find ( "SGTE_CACHE_FILE ADVANCED \
                                             SURROGATES SGTES \
-                                            FILES OUTPUTS" , param_names ) ) {
+                                            FILES OUTPUTS" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "SGTE_CACHE_FILE (advanced)" ) << std::endl
         << ". surrogate cache file; cannot be the same"       << std::endl
@@ -9358,7 +9949,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ---------------
     if ( display_all || NOMAD::string_find ( "SGTE_EVAL_SORT ADVANCED SURROGATES \
                                             SGTE_ORDERING SGTES BLACK-BOXES \
-                                            BLACKBOXES" , param_names ) ) {
+                                            BLACKBOXES" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "SGTE_EVAL_SORT (advanced)" ) << std::endl
         << ". if surrogate is used to sort the trial points" << std::endl
@@ -9373,7 +9965,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ----------
     if ( display_all || NOMAD::string_find ( "SGTE_EXE HAS_SGTE ADVANCED SURROGATES \
                                             SGTES BLACK-BOXES BLACKBOXES \
-                                            FILES EXECUTABLE" , param_names ) ) {
+                                            FILES EXECUTABLE" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "SGTE_EXE (advanced)" )            << std::endl
         << ". to indicate a surrogate executable"                 << std::endl
@@ -9389,7 +9982,7 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
         << "SGTE_EXE b1.exe s1.exe # \'s1.exe\' is a surrogate"   << std::endl
         << "                       # for \'b1.exe\'" << std::endl << std::endl
         << "SGTE_EXE sgte.exe      # only if one blackbox"        << std::endl
-        << "                       # executable is used"          << std::endl 
+        << "                       # executable is used"          << std::endl
         << NOMAD::close_block() << NOMAD::close_block();
         chk = true;
     }
@@ -9414,7 +10007,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // SPECULATIVE_SEARCH:
     // -------------------
     if ( display_all || NOMAD::string_find ( "SPECULATIVE_SEARCH MADS OPTIMISTIC \
-                                            ADVANCED" , param_names ) ) {
+                                            ADVANCED" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "SPECULATIVE_SEARCH (advanced)" ) << std::endl
         << ". MADS speculative_search (optimistic strategy)"     << std::endl
@@ -9447,7 +10041,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -----------------
     if ( display_all || NOMAD::string_find ( "STOP_IF_FEASIBLE ADVANCED \
                                             TERMINATES TERMINATION STOPPING" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "STOP_IF_FEASIBLE (advanced)" ) << std::endl
         << ". the algorithm terminates if it generates"        << std::endl
@@ -9464,7 +10059,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ----------
     if ( display_all || NOMAD::string_find ( "UNDEF_STR ADVANCED \
                                             UNDEFINED DISPLAY REALS" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "UNDEF_STR (advanced)" )     << std::endl
         << ". string used to display undefined real values" << std::endl
@@ -9480,7 +10076,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -------------------
     if ( display_all || NOMAD::string_find ( "USER_CALLS_ENABLED USER_CALLS_DISABLED \
                                             ADVANCED LIBRARY" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "USER_CALLS_ENABLED (advanced)" ) << std::endl
         << ". if \'no\', the automatic calls to user"            << std::endl
@@ -9495,7 +10092,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // VARIABLE_GROUP:
     // --------------
     if ( display_all || NOMAD::string_find ( "VARIABLE_GROUP GROUPS PSD-MADS PSDMADS \
-                                            VARIABLES ADVANCED" , param_names ) ) {
+                                            VARIABLES ADVANCED" , param_names ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "VARIABLE_GROUP (advanced)" )   << std::endl
         << ". defines groups of variables"                     << std::endl
@@ -9522,9 +10120,11 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                             METAHEURISTICS META-HEURISTICS \
                                             GLOBAL ADVANCED \
                                             TRIGGER" ,
-                                            param_names ) ) {
+                                            param_names ) )
+    {
         
-        if ( !NOMAD::string_find ( "RHO" , param_names ) ) {
+        if ( !NOMAD::string_find ( "RHO" , param_names ) )
+        {
             
             _out << std::endl
             << NOMAD::open_block ( "VNS_SEARCH (advanced)" )                 << std::endl
@@ -9553,7 +10153,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     
     
     // last display:
-    if ( !chk && !developer) {
+    if ( !chk && !developer)
+    {
         
         std::string pname = ( pnames.size() == 1 ) ?
         ("\'" + *pnames.begin() + "\'") :
@@ -9575,7 +10176,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // --------
     if ( developer && (display_all || NOMAD::string_find ( "EPSILON DEVELOPPER \
                                                           PRECISION REALS COMPARISONS" ,
-                                                          param_names ) ) ) {
+                                                          param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "EPSILON (developer)" ) << std::endl
         << ". precision on reals"                     << std::endl
@@ -9590,7 +10192,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // INITIAL_MESH_INDEX:
     // -------------------
     if ( developer && ( display_all || NOMAD::string_find ( "INITIAL_MESH_INDEX DEVELOPER SMESH \
-                                                           \\DELTA MADS L0 L_0 \\ELL_0" , param_names ) ) ) {
+                                                           \\DELTA MADS L0 L_0 \\ELL_0" , param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "INITIAL_MESH_INDEX (developer)" ) << std::endl
         << ". initial mesh index for SMesh \\ell_0"                        << std::endl
@@ -9606,7 +10209,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // L_CURVE_TARGET:
     // ---------------
     if (  developer && ( display_all || NOMAD::string_find ( "L_CURVE_TARGET DEVELOPER TERMINATION \
-                                                            STOPPING TERMINATES" , param_names ) )  ){
+                                                            STOPPING TERMINATES" , param_names ) )  )
+    {
+        
         _out << std::endl
         << NOMAD::open_block ( "L_CURVE_TARGET (developer)" )         << std::endl
         << ". MADS terminates if it detects that the objective will" << std::endl
@@ -9620,13 +10225,13 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     }
     
     
-    
     // MODEL_EVAL_SORT_CAUTIOUS:
     // -------------------------
     if ( developer && ( display_all || NOMAD::string_find ( "MODEL_ORDERING MODEL_EVAL_SORT_CAUTIOUS \
                                                            MODELS INTERPOLATION REGRESSION \
                                                            MFN FROBENIUS DEVELOPER \
-                                                           QUADRATIC TGP" , param_names ) ) ) {
+                                                           QUADRATIC" , param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MODEL_EVAL_SORT_CAUTIOUS (developer)" ) << std::endl
         << ". if the model ordering strategy is cautious, meaning"     << std::endl
@@ -9642,7 +10247,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ----------------------
     if ( developer && ( display_all || NOMAD::string_find ( "MODEL_QUAD_MAX_Y_SIZE MODEL_SEARCH DEVELOPER \
                                                            MODELS INTERPOLATION REGRESSION \
-                                                           MFN FROBENIUS QUADRATIC" , param_names ) ) ) {
+                                                           MFN FROBENIUS QUADRATIC" , param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MODEL_QUAD_MAX_Y_SIZE (developer)" )        << std::endl
         << ". Sup. limit on the size of interp. set Y for quadr. models"   << std::endl
@@ -9657,7 +10263,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ----------------------
     if ( developer && (display_all || NOMAD::string_find ( "MODEL_QUAD_MIN_Y_SIZE MODEL_SEARCH DEVELOPER \
                                                           MODELS INTERPOLATION REGRESSION \
-                                                          MFN FROBENIUS QUADRATIC" , param_names ) ) ) {
+                                                          MFN FROBENIUS QUADRATIC" , param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MODEL_QUAD_MIN_Y_SIZE (developer)" )      << std::endl
         << ". Inf. limit on the size of interp. set Y for quadr. models" << std::endl
@@ -9674,7 +10281,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -------------------------
     if ( developer && ( display_all || NOMAD::string_find ( "MODEL_QUAD_RADIUS_FACTOR MODEL_SEARCH \
                                                            DEVELOPER MODELS INTERPOLATION REGRESSION \
-                                                           MFN FROBENIUS QUADRATIC" , param_names ) ) ) {
+                                                           MFN FROBENIUS QUADRATIC" , param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MODEL_QUAD_RADIUS_FACTOR (developer)" ) << std::endl
         << ". quadratic model search radius factor (see user guide)"   << std::endl
@@ -9690,7 +10298,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( developer && ( display_all || NOMAD::string_find ( "MODEL_SEARCH_MAX_TRIAL_PTS \
                                                            DEVELOPER MODELS INTERPOLATION REGRESSION \
                                                            MFN FROBENIUS QUADRATIC \
-                                                           TGP" , param_names ) ) ) {
+                                                           " , param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MODEL_SEARCH_MAX_TRIAL_PTS (developer)" )       << std::endl
         << ". limit on the number of trial points for one model search"        << std::endl
@@ -9706,8 +10315,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // --------------------------
     if ( developer && ( display_all || NOMAD::string_find ( "MODEL_SEARCH_PROJ_TO_MESH DEVELOPER \
                                                            MODELS INTERPOLATION REGRESSION \
-                                                           MFN FROBENIUS QUADRATIC PROJECTION \
-                                                           TGP" , param_names ) ) ) {
+                                                           MFN FROBENIUS QUADRATIC PROJECTION " ,
+                                                           param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MODEL_SEARCH_PROJ_TO_MESH (developer)" ) << std::endl
         << ". if model search trial points are projected to the mesh"   << std::endl
@@ -9723,7 +10333,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( developer && ( display_all || NOMAD::string_find ( "MODEL_QUAD_USE_WP DEVELOPER \
                                                            WELL-POISEDNESS \
                                                            MODELS INTERPOLATION REGRESSION \
-                                                           MFN FROBENIUS QUADRATIC" , param_names ) ) ){
+                                                           MFN FROBENIUS QUADRATIC" , param_names ) ) )
+    {
+        
         _out << std::endl
         << NOMAD::open_block ( "MODEL_QUAD_USE_WP (developer)" )      << std::endl
         << ". enable the strategy to maintain WP with quadr. models" << std::endl
@@ -9739,50 +10351,20 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // ---------------
     if ( developer && (display_all || NOMAD::string_find ( "MODEL MODELS NP1 QUAD EPSILON \
                                                           ORTHO N+1 QUAD  DEVELOPER" ,
-                                                          param_names ) ) ){
+                                                          param_names ) ) )
+    {
+        
         _out << std::endl
         << NOMAD::open_block ( "MODEL_NP1_QUAD_EPSILON (developer)" )            << std::endl
         << ". with the direction type ORTHO N+1 QUAD selected the"               << std::endl
         << "   (n+1)-th direction is determined within a truncated "             << std::endl
         << "   unit hypercube ]epsilon;1[^n defined by the first "               << std::endl
         << "   n-th directions. The truncation is on lower limit "               << std::endl
-        << "   and is defined with a single argument (epsilon)."     			 << std::endl
+        << "   and is defined with a single argument (epsilon)."                 << std::endl
         << ". argument: real in ]0;1["                                           << std::endl
         << ". default: 0.01"                                                     << std::endl
         << NOMAD::close_block();
         chk = true;
-    }	
-    
-    
-    // MODEL_TGP_MODE:
-    // ---------------
-    if ( developer && (display_all || NOMAD::string_find ( "MODEL_TGP_MODE MODEL_SEARCH DEVELOPER \
-                                                          MODELS INTERPOLATION REGRESSION \
-                                                          TGP" , param_names ) ) ) {
-        _out << std::endl
-        << NOMAD::open_block ( "MODEL_TGP_MODE (developer)" )    << std::endl
-        << ". TGP mode (fast or precise)"                       << std::endl
-        << ". arguments: one string in {\'FAST\', \'PRECISE\'}" << std::endl
-        << ". default: \'FAST\'"                                << std::endl
-        << ". example: MODEL_TGP_MODE PRECISE"                  << std::endl
-        << NOMAD::close_block();
-        chk = true;
-    }
-    
-    // MODEL_TGP_REUSE_MODEL:
-    // ----------------------
-    if (developer && ( display_all || NOMAD::string_find ( "MODEL_TGP_REUSE_MODEL DEVELOPER \
-                                                          MODELS INTERPOLATION REGRESSION \
-                                                          TGP" , param_names ) ) ){
-        _out << std::endl
-        << NOMAD::open_block ( "MODEL_TGP_REUSE_MODEL (developer)" )  << std::endl
-        << ". enable to use the last model from the TGP search for"  << std::endl
-        << "    the TGP model eval sort strategy."                    << std::endl
-        << ". argument: one boolean (\'yes\' or \'no\')"             << std::endl
-        << ". default: \'yes\'"                                      << std::endl
-        << ". example: MODEL_TGP_REUSE_MODEL no"                     << std::endl
-        << NOMAD::close_block();
-        chk = true;
     }
     
     // MULTI_FORMULATION:
@@ -9791,7 +10373,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                                           BI-OBJECTIVES MULTI-OBJECTIVES\
                                                           BIOBJECTIVES MULTIOBJECTIVES \
                                                           BI-MADS BIMADS" ,
-                                                          param_names ) ) ) {
+                                                          param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "MULTI_FORMULATION (developer)" )            << std::endl
         << ". multi-objective optimization: single-objective reformulation"
@@ -9814,7 +10397,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
                                                            BIOBJECTIVES MULTIOBJECTIVES \
                                                            BI-MADS BIMADS \
                                                            BI-OBJECTIVES MULTI-OBJECTIVES" ,
-                                                           param_names ) ) ){
+                                                           param_names ) ) )
+    {
+        
         _out << std::endl
         << NOMAD::open_block ( "MULTI_USE_DELTA_CRIT (developer)" )   << std::endl
         << ". multi-objective optimization: use the delta criterion" << std::endl
@@ -9830,7 +10415,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -------------------------
     if ( developer && ( display_all || NOMAD::string_find ( "OPPORTUNISTIC_LUCKY_EVAL DEVELOPER \
                                                            BLACK-BOXES BLACKBOXES EVALUATIONS \
-                                                           SUCCESSES" , param_names ) ) ) {
+                                                           SUCCESSES" , param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "OPPORTUNISTIC_LUCKY_EVAL (developer)" ) << std::endl
         << ". developer parameter for the opportunistic"                << std::endl
@@ -9847,7 +10433,8 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     if ( developer && ( display_all || NOMAD::string_find ( "OPPORTUNISTIC_MIN_F_IMPRVMT DEVELOPER \
                                                            OBJECTIVE \
                                                            BLACK-BOXES BLACKBOXES EVALUATIONS \
-                                                           SUCCESSES IMPROVEMENT" , param_names ) ) ) {
+                                                           SUCCESSES IMPROVEMENT" , param_names ) ) )
+    {
         _out << std::endl
         << NOMAD::open_block ( "OPPORTUNISTIC_MIN_F_IMPRVMT (developer)" ) << std::endl
         << ". advanced parameter for the opportunistic"                   << std::endl
@@ -9863,7 +10450,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -----------------------------
     if ( developer && ( display_all || NOMAD::string_find ( "OPPORTUNISTIC_MIN_NB_SUCCESSES DEVELOPER \
                                                            BLACK-BOXES BLACKBOXES \
-                                                           EVALUATIONS" , param_names ) ) ){
+                                                           EVALUATIONS" , param_names ) ) )
+    {
+        
         _out << std::endl
         << NOMAD::open_block ( "OPPORTUNISTIC_MIN_NB_SUCCESS (developer)" ) << std::endl
         << ". advanced parameter for the opportunistic"                    << std::endl
@@ -9878,8 +10467,10 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // OPT_ONLY_SGTE:
     // --------------
     if (developer && ( display_all || NOMAD::string_find ( "OPT_ONLY_SGTES DEVELOPER SURROGATES \
-                                                          BLACK-BOXES	BLACKBOXES \
-                                                          SGTES" , param_names ) ) ){
+                                                          BLACK-BOXES BLACKBOXES \
+                                                          SGTES" , param_names ) ) )
+    {
+        
         _out << std::endl
         << NOMAD::open_block ( "OPT_ONLY_SGTE (developer)" ) << std::endl
         << ". NOMAD will only minimize the surrogate"       << std::endl
@@ -9895,7 +10486,9 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
     // -------------------
     if ( developer && ( display_all || NOMAD::string_find ( "SEC_POLL_DIR_TYPES DEVELOPER MADS \
                                                            POLL DIRECTIONS PB PEB \
-                                                           PROGRESSIVE-BARRIER" , param_names ) ) ){
+                                                           PROGRESSIVE-BARRIER" , param_names ) ) )
+    {
+        
         _out << std::endl
         << NOMAD::open_block ( "SEC_POLL_DIR_TYPES (developer)" ) << std::endl
         << ". types of directions for the secondary poll"        << std::endl
@@ -9906,22 +10499,26 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
         chk = true;
     }
     
-    // USE_SMESH:
+    // MESH_TYPE:
     // -------------------
-    if ( developer && ( display_all || NOMAD::string_find ( "USE_SMESH SMESH MESH \
-                                                           ANISO" , param_names ) ) ){
+    if ( developer && ( display_all || NOMAD::string_find ( "MESH_TYPE XMESH SMESH MESH \
+                                                           ANISO" , param_names ) ) )
+    {
+        
         _out << std::endl
-        << NOMAD::open_block ( "USE_SMESH (developer)" )                    << std::endl
-        << ". forces the use of the standard mesh (older version of mesh)"  << std::endl
-        << ". default: no"                                                  << std::endl
-        << ". example: USE_SMESH 1"                                         << std::endl
+        << NOMAD::open_block ( "MESH_TYPE (developer)" )                         << std::endl
+        << ". forces the use of a specific type of mesh (xmesh, smesh))"         << std::endl
+        << ". arguments: X or S"                                                 << std::endl
+        << ". default: X"                                                        << std::endl
+        << ". example: MESH_TYPE X "                                             << std::endl
         << NOMAD::close_block();
         chk = true;
     }
     
     
     // last display:
-    if ( !chk && developer) {
+    if ( !chk && developer)
+    {
         
         std::string pname = ( pnames.size() == 1 ) ?
         ("\'" + *pnames.begin() + "\'") :
@@ -9933,6 +10530,7 @@ void NOMAD::Parameters::help ( const std::list<std::string> & pnames,bool develo
         << std::endl;
     }
     
-    
     _out.close_block();
 }
+
+
diff --git a/src/Parameters.hpp b/src/Parameters.hpp
index 5a8d6c8..cf8e370 100644
--- a/src/Parameters.hpp
+++ b/src/Parameters.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -71,8 +78,6 @@ namespace NOMAD {
         int           quad_max_Y_size;    ///< Limit sup on the size of \c Y.
         NOMAD::Double model_np1_quad_epsilon;///< Ortho n+1 quadratic model epsilon (scaling used for (n+1)th dynamic direction with Ortho n+1)
         
-        NOMAD::TGP_mode_type tgp_mode;    ///< TGP mode (fast or precise).
-        bool          tgp_reuse_model;    ///< Use the model from MS for the MES.
     };
     
     /// Class for the NOMAD parameters.
@@ -103,6 +108,15 @@ namespace NOMAD {
         void interpret_mesh_sizes ( const NOMAD::Parameter_Entries & entries    ,
                                    const std::string              & param_name   );
         
+        /// Interpretation of the entries for granular variables.
+        /**
+         \param entries Parameter entries -- \b IN.
+         \param param_name Parameter name -- \b IN.
+         */
+        void interpret_granularity ( const NOMAD::Parameter_Entries & entries    ,
+                                    const std::string              & param_name   );
+        
+        
         /// Interpretation of the entries for bounds and fixed variables.
         /**
          \c BFVS stands for "Bounds and Fixed VariableS".
@@ -238,8 +252,8 @@ namespace NOMAD {
         /// Display parameter help.
         /**
          For a list of parameters.
-         \param param_names_list	List of parameter names              -- \b IN.
-         \param developer			Bool to request developer help (defaut=false) -- \b IN.
+         \param param_names_list    List of parameter names                         -- \b IN.
+         \param developer           Bool to request developer help (defaut=false)   -- \b IN.
          */
         void help ( const std::list<std::string> & param_names_list , bool developer=false) const;
         
@@ -315,6 +329,12 @@ namespace NOMAD {
         /// Maximum number of simulated evaluations.
         int                    _max_sim_bb_eval;
         
+        
+        /// Maximum number of evaluation during intensification of poll and/or search
+        int                    _max_eval_intensification;
+        
+        int                    _intensification_type;
+        
         int                    _max_time;           ///< Maximum time.
         int                    _max_iterations;     ///< Maximum number of iterations.
         int                    _max_cons_failed_it; ///< Maximum number of consecutive failed iterations.
@@ -399,6 +419,19 @@ namespace NOMAD {
          */
         int get_max_bb_eval ( void ) const;
         
+        /// Access to the \c INTENSITIFICATION_TYPE parameter.
+        /**
+         \return The \c INTENSIFICATION_TYPE parameter.
+         */
+        int get_intensification_type ( void ) const { return _intensification_type ; }
+        
+        /// Access to the \c MAX_EVAL_INTENSIFICATION parameter.
+        /**
+         \return The \c MAX_EVAL_INTENSIFICATION parameter.
+         */
+        int get_max_eval_intensification ( void ) const { return _max_eval_intensification ; }
+        
+        
         /// Access to the \c MAX_TIME parameter.
         /**
          \return The \c MAX_TIME parameter.
@@ -567,6 +600,12 @@ namespace NOMAD {
          */
         void set_MAX_BB_EVAL ( int bbe );
         
+        /// Set the \c MAX_EVAL_INTENSIFICATION parameter.
+        /**
+         \param bbe The \c MAX_EVAL_INTENSIFICATION parameter -- \b IN.
+         */
+        void set_MAX_EVAL_INTENSIFICATION ( int bbe );
+        
         /// Set the \c MAX_TIME parameter.
         /**
          \param mt The \c MAX_TIME parameter -- \b IN.
@@ -912,18 +951,6 @@ namespace NOMAD {
          */
         int get_model_quad_min_Y_size ( void ) const;
         
-        /// Access to the \c MODEL_TGP_MODE parameter.
-        /**
-         \return The \c MODEL_TGP_MODE parameter.
-         */
-        NOMAD::TGP_mode_type get_model_tgp_mode ( void ) const;
-        
-        /// Access to the \c MODEL_TGP_REUSE_MODEL parameter.
-        /**
-         \return The \c MODEL_TGP_REUSE_MODEL parameter.
-         */
-        bool get_model_tgp_reuse_model ( void ) const;
-        
         /// Access to the \c MODEL_SEARCH_MAX_TRIAL_PTS parameter.
         /**
          \return The \c MODEL_SEARCH_MAX_TRIAL_PTS parameter.
@@ -1074,18 +1101,6 @@ namespace NOMAD {
          */
         void set_MODEL_NP1_QUAD_EPSILON ( const NOMAD::Double & r );
         
-        /// Set the \c MODEL_TGP_MODE parameter.
-        /**
-         \param m The \c MODEL_TGP_MODE parameter -- \b IN.
-         */
-        void set_MODEL_TGP_MODE ( NOMAD::TGP_mode_type m );
-        
-        /// Set the \c MODEL_TGP_REUSE_MODEL parameter.
-        /**
-         \param rm The \c MODEL_TGP_REUSE_MODEL parameter -- \b IN.
-         */
-        void set_MODEL_TGP_REUSE_MODEL ( bool rm );
-        
         /// Set the \c MODEL_SEARCH_MAX_TRIAL_PTS parameter.
         /**
          \param s The \c MODEL_SEARCH_MAX_TRIAL_PTS parameter -- \b IN.
@@ -1152,13 +1167,14 @@ namespace NOMAD {
         // -----
     private:
         
-        bool		  _use_smesh;               ///< Use smesh (default xmesh)
-        bool		  _anisotropic_mesh;		///< Anisotropic mesh (xmesh only, i.e. _use_smesh=false)
+        NOMAD::mesh_type _mesh_type;            ///< The type of mesh used (xmesh [D], smesh [old] )
+        bool          _anisotropic_mesh;        ///< Anisotropic mesh (xmesh only)
         NOMAD::Double _mesh_update_basis;        ///< Mesh update basis (tau).
         NOMAD::Double _poll_update_basis;        ///< Poll update basis (beta).
         int           _mesh_coarsening_exponent; ///< Mesh coarsening exponent.
         int           _mesh_refining_exponent;   ///< Mesh refining exponent.
         int           _initial_mesh_index;       ///< Initial mesh index (ell_0).
+        int           _limit_mesh_index;         ///< Limit value of mesh index.
         NOMAD::Point  _initial_mesh_size; ///< Initial (absolute) mesh size (delta^0).
         NOMAD::Point  _min_mesh_size;     ///< Minimal (absolute) mesh size (delta_min).
         NOMAD::Point  _initial_poll_size; ///< Initial (absolute) poll size (delta^0).
@@ -1174,12 +1190,12 @@ namespace NOMAD {
          */
         bool get_anisotropic_mesh ( void ) const;
         
-        /// Access to the \c USE_SMESH parameter.
+        
+        /// Access to the \c MESH_TYPE parameter.
         /**
-         \return The \c USE_SMESH parameter -- \b IN.
+         \return The \c MESH_TYPE parameter -- \b IN.
          */
-        bool get_use_smesh ( void ) const;
-        
+        const NOMAD::mesh_type & get_mesh_type ( void ) const;
         
         
         /// Access to the \c POLL_UPDATE_BASIS parameter.
@@ -1213,7 +1229,6 @@ namespace NOMAD {
          */
         int get_initial_mesh_index ( void ) const;
         
-        
         /// Access to the \c INITIAL_MESH_SIZE parameter.
         /**
          \return The \c INITIAL_MESH_SIZE parameter.
@@ -1251,12 +1266,11 @@ namespace NOMAD {
          */
         void set_ANISOTROPIC_MESH ( bool anis );
         
-        /// Set the \c USE_SMESH parameter.
+        /// Set the \c MESH_TYPE parameter.
         /**
-         \param use_smesh The \c USE_SMESH parameter -- \b IN.
+         \param mt The \c MESH_TYPE parameter -- \b IN.
          */
-        void set_USE_SMESH ( bool use_smesh );
-        
+        void set_MESH_TYPE ( NOMAD::mesh_type mt );
         
         /// Set the \c MESH_UPDATE_BASIS parameter.
         /**
@@ -1270,7 +1284,6 @@ namespace NOMAD {
          */
         void set_POLL_UPDATE_BASIS ( const NOMAD::Double & r );
         
-        
         /// Set the \c INITIAL_MESH_INDEX parameter.
         /**
          \param ell_0 The \c INITIAL_MESH_INDEX parameter -- \b IN.
@@ -1295,7 +1308,8 @@ namespace NOMAD {
          \param relative Indicated as a relative value
          -- \b IN -- \b optional (default = \c false).
          */
-        void set_MIN_MESH_SIZE ( const NOMAD::Double & mms , bool relative = false );
+        void set_MIN_MESH_SIZE ( const NOMAD::Double & mms ,
+                                bool relative = false );
         
         /// Set the \c MIN_MESH_SIZE parameter.
         /**
@@ -1314,7 +1328,8 @@ namespace NOMAD {
          \param relative Indicated as relative values
          -- \b IN -- \b optional (default = \c false).
          */
-        void set_MIN_MESH_SIZE ( const NOMAD::Point & mms , bool relative = false );
+        void set_MIN_MESH_SIZE ( const NOMAD::Point & mms ,
+                                bool relative = false );
         
         /// Set the \c MIN_POLL_SIZE parameter.
         /**
@@ -1322,7 +1337,8 @@ namespace NOMAD {
          \param relative Indicated as a relative value
          -- \b IN -- \b optional (default = \c false).
          */
-        void set_MIN_POLL_SIZE ( const NOMAD::Double & mps , bool relative = false );
+        void set_MIN_POLL_SIZE ( const NOMAD::Double & mps ,
+                                bool relative = false );
         
         /// Set the \c MIN_POLL_SIZE parameter.
         /**
@@ -1341,7 +1357,8 @@ namespace NOMAD {
          \param relative Indicated as relative values
          -- \b IN -- \b optional (default = \c false).
          */
-        void set_MIN_POLL_SIZE ( const NOMAD::Point & mps , bool relative = false );
+        void set_MIN_POLL_SIZE ( const NOMAD::Point & mps ,
+                                bool relative = false );
         
         /// Set the \c INITIAL_MESH_SIZE parameter.
         /**
@@ -1349,7 +1366,8 @@ namespace NOMAD {
          \param relative Indicated as a relative value
          -- \b IN -- \b optional (default = \c false).
          */
-        void set_INITIAL_MESH_SIZE ( const NOMAD::Double & ims , bool relative = false );
+        void set_INITIAL_MESH_SIZE ( const NOMAD::Double & ims ,
+                                    bool relative = false );
         
         /// Set the \c INITIAL_MESH_SIZE parameter.
         /**
@@ -1368,7 +1386,8 @@ namespace NOMAD {
          \param relative Indicated as relative values
          -- \b IN -- \b optional (default = \c false).
          */
-        void set_INITIAL_MESH_SIZE ( const NOMAD::Point & ims , bool relative = false );
+        void set_INITIAL_MESH_SIZE ( const NOMAD::Point & ims ,
+                                    bool relative = false );
         
         
         /// Set the \c INITIAL_POLL_SIZE parameter.
@@ -1377,7 +1396,8 @@ namespace NOMAD {
          \param relative Indicated as a relative value
          -- \b IN -- \b optional (default = \c false).
          */
-        void set_INITIAL_POLL_SIZE ( const NOMAD::Double & ims , bool relative = false );
+        void set_INITIAL_POLL_SIZE ( const NOMAD::Double & ims ,
+                                    bool relative = false );
         
         /// Set the \c INITIAL_POLL_SIZE parameter.
         /**
@@ -1399,6 +1419,63 @@ namespace NOMAD {
         void set_INITIAL_POLL_SIZE ( const NOMAD::Point & ims , bool relative = false );
         
         
+        /// Set the \c LIMIT_MESH_INDEX parameter.
+        /**
+         \param lmi      Limit mesh index   -- \b IN.
+         */
+        void set_LIMIT_MESH_INDEX ( const int & lmi );
+        
+        
+        
+        // Granular variables:
+        // -------------------
+    private:
+        
+        NOMAD::Point _granularity; ///< Granularity.
+        
+    public:
+        
+        /// Access to the granular variables.
+        /**
+         \return The granular variables.
+         */
+        const NOMAD::Point & get_granularity ( void ) const ;
+        
+        /// Access to the number of granular variables (granularity !=0).
+        /**
+         \return The number of real granular variables.
+         */
+        int get_number_granular_variables ( void ) const;
+        
+        
+        /// Reset the granular variables.
+        /**
+         This sets all variables with a granularity of zero.
+         */
+        void reset_granulary ( void );
+        
+        /// Set the granularity for one variable.
+        /**
+         \param i     Index of the variable       -- \b IN.
+         \param value Granularity of the variable -- \b IN.
+         */
+        void set_GRANULARITY ( int i , const NOMAD::Double & value );
+        
+        /// Set the granularity of a series of variables.
+        /**
+         \param fv The granular variables; This point is of dimension \c n;
+         regular variables have a granularity of zero -- \b IN.
+         */
+        void set_GRANULARITY ( const NOMAD::Point & fv );
+        
+        
+        /// Set the granularity of all variables.
+        /**
+         \param v The granularity of all variables -- \b IN.
+         */
+        void set_GRANULARITY ( const NOMAD::Double & v );
+        
+        
         
         // Directions:
         // -----------
@@ -1445,8 +1522,9 @@ namespace NOMAD {
          */
         bool has_dynamic_direction(void) const;
         
-        
         /// Reset the directions.
+        /**
+         */
         void reset_directions ( void );
         
         
@@ -1475,6 +1553,7 @@ namespace NOMAD {
          */
         void set_SEC_POLL_DIR_TYPE ( const std::set<NOMAD::direction_type> & dt );
         
+        
         /// Enables use of quad model to determine prospect direction
         /// for Ortho n+1 direction type
         /**
@@ -1784,8 +1863,7 @@ namespace NOMAD {
          \param g Group to reset; may be \c _var_groups or \c _user_var_groups
          -- \b IN/OUT.
          */
-        void reset_variable_groups
-        ( std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp> & g ) const;
+        void reset_variable_groups ( std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp> & g ) const;
         
     public:
         
@@ -1813,10 +1891,9 @@ namespace NOMAD {
          \param prim_poll_dir_types Types of the poll directions           -- \b IN.
          \param sec_poll_dir_types  Types of the secondary poll directions -- \b IN.
          */
-        void set_VARIABLE_GROUP
-        ( const std::set<int>                   & var_indexes         ,
-         const std::set<NOMAD::direction_type> & prim_poll_dir_types ,
-         const std::set<NOMAD::direction_type> & sec_poll_dir_types  );
+        void set_VARIABLE_GROUP ( const std::set<int>                   & var_indexes         ,
+                                 const std::set<NOMAD::direction_type> & prim_poll_dir_types ,
+                                 const std::set<NOMAD::direction_type> & sec_poll_dir_types  );
         
         /// Set several groups of variables.
         /**
@@ -2151,7 +2228,7 @@ namespace NOMAD {
          */
         std::map<std::string,std::string> _sgte_exe;
         
-        bool _disable_eval_sort;  ///< Sort disablement  
+        bool _disable_eval_sort;  ///< Sort disablement
         
         /// Flag equal to \c true if surrogates are used to sort evaluation points.
         bool _sgte_eval_sort;
@@ -2168,7 +2245,7 @@ namespace NOMAD {
          */
         int _sgte_cost;
         
-        /// Maximum number of surrogate evaluations. 
+        /// Maximum number of surrogate evaluations.
         int _sgte_max_eval;
         
         /// Surrogate cache file.
@@ -2467,7 +2544,7 @@ namespace NOMAD {
         
         /// Minimum number of evaluations.
         /**
-         Parameter \c OPPORTUNISTIC_MIN_EVAL.       
+         Parameter \c OPPORTUNISTIC_MIN_EVAL.
          */
         int _opportunistic_min_eval;
         
@@ -2488,7 +2565,7 @@ namespace NOMAD {
         /**
          Parameter \c BB_MAX_BLOCK_SIZE.
          */
-        int _bb_max_block_size; 
+        int _bb_max_block_size;
         
         /// Block of points evaluation
         /**
@@ -2579,7 +2656,6 @@ namespace NOMAD {
         
         
         
-        
     };
     
     /*----------------------------------------------------------------------*/
diff --git a/src/Pareto_Front.cpp b/src/Pareto_Front.cpp
index 0abcee5..c6dc902 100644
--- a/src/Pareto_Front.cpp
+++ b/src/Pareto_Front.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Pareto_Front.cpp
-  \brief  Pareto front (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-09
-  \see    Pareto_Front.hpp
-*/
+ \file   Pareto_Front.cpp
+ \brief  Pareto front (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-09
+ \see    Pareto_Front.hpp
+ */
 #include "Pareto_Front.hpp"
 
 /*------------------------------------------------------*/
@@ -48,43 +55,50 @@
 /*------------------------------------------------------*/
 bool NOMAD::Pareto_Front::insert ( const NOMAD::Eval_Point & x )
 {
-
-  NOMAD::Pareto_Point pp ( &x );
     
-  if ( _pareto_pts.empty() ) {
-    _pareto_pts.insert (pp);
-    return true;
-  }
-
-  bool insert = false;
-
-  std::set<NOMAD::Pareto_Point>::iterator it = _pareto_pts.begin();
-  while ( it != _pareto_pts.end() ) {
-    if ( pp.dominates (*it) ) {
-      _pareto_pts.erase(it++);
-      insert = true;
-
-      continue;
+    NOMAD::Pareto_Point pp ( &x );
+    
+    if ( _pareto_pts.empty() )
+    {
+        _pareto_pts.insert (pp);
+        return true;
     }
-    ++it;
-  }
-    
-  if ( !insert ) {
-    insert = true;
-    std::set<NOMAD::Pareto_Point>::iterator end = _pareto_pts.end();
-    for ( it = _pareto_pts.begin() ; it != end ; ++it ) {
-      if ( it->dominates (pp) ) {
-	insert = false;
-	break;
-      }
+    
+    bool insert = false;
+    
+    std::set<NOMAD::Pareto_Point>::iterator it = _pareto_pts.begin();
+    while ( it != _pareto_pts.end() )
+    {
+        if ( pp.dominates (*it) )
+        {
+            _pareto_pts.erase(it++);
+            insert = true;
+            
+            continue;
+        }
+        ++it;
+    }
+    
+    if ( !insert )
+    {
+        insert = true;
+        std::set<NOMAD::Pareto_Point>::iterator end = _pareto_pts.end();
+        for ( it = _pareto_pts.begin() ; it != end ; ++it )
+        {
+            if ( it->dominates (pp) )
+            {
+                insert = false;
+                break;
+            }
+        }
+    }
+    
+    if ( insert )
+    {
+        _pareto_pts.insert ( pp );
+        return true;
     }
-  }
-      
-  if ( insert ) {
-    _pareto_pts.insert ( pp );
-    return true;
-  }
-  return false;
+    return false;
 }
 
 /*-------------------------------------------------------*/
@@ -93,298 +107,310 @@ bool NOMAD::Pareto_Front::insert ( const NOMAD::Eval_Point & x )
 /*-------------------------------------------------------*/
 const NOMAD::Eval_Point * NOMAD::Pareto_Front::get_best_f2 ( void ) const
 {
-  if ( _pareto_pts.empty() )
-    return NULL;
-
-  std::set<NOMAD::Pareto_Point>::const_iterator it = _pareto_pts.end();
-  --it;
-
-  return it->get_element();
+    if ( _pareto_pts.empty() )
+        return NULL;
+    
+    std::set<NOMAD::Pareto_Point>::const_iterator it = _pareto_pts.end();
+    --it;
+    
+    return it->get_element();
 }
 
 /*------------------------------------------------------*/
 /*                get the reference point               */
 /*------------------------------------------------------*/
 NOMAD::Point * NOMAD::Pareto_Front::get_ref ( const NOMAD::Pareto_Point *& xj ,
-					      NOMAD::Double & delta_j ) const
+                                             NOMAD::Double & delta_j ) const
 {
-  xj = NULL;
-  delta_j.clear();
-
-  int p = static_cast<int>(_pareto_pts.size());
+    xj = NULL;
+    delta_j.clear();
     
-  // no points in the front:
-  if ( p == 0 )
-    return NULL;
-
-  // just one point in the front:
-  if ( p == 1 ) {
-    xj      = &(*_pareto_pts.begin());
-    delta_j = 1.0 / ( xj->get_w() + 1 );  // delta=1.0
-    return NULL;
-  }
-    
-  std::set<NOMAD::Pareto_Point>::const_iterator it = _pareto_pts.begin();
-  NOMAD::Point * ref = new NOMAD::Point ( 2 );
-
-  NOMAD::Double f1xm1;  // f_1 ( x_{j-1} )
-  NOMAD::Double f1x;    // f_1 ( x_j     )
-  NOMAD::Double f1xp1;  // f_1 ( x_{j+1} )
-
-  NOMAD::Double f2xm1;  // f_2 ( x_{j-1} )
-  NOMAD::Double f2x;    // f_2 ( x_j     )
-  NOMAD::Double f2xp1;  // f_2 ( x_{j+1} )
+    int p = static_cast<int>(_pareto_pts.size());
     
-  // two points in the front:
-  if ( p == 2 ) {
-
-    f1xm1 = it->get_f1();
-    f2xm1 = it->get_f2();
-
-    ++it;
-    xj = &(*it);
+    // no points in the front:
+    if ( p == 0 )
+        return NULL;
     
-    f1x = xj->get_f1();
-    f2x = xj->get_f2();
-
-    delta_j = ( (f1x-f1xm1).pow2() + (f2x-f2xm1).pow2() ) / ( xj->get_w() + 1.0 );
+    // just one point in the front:
+    if ( p == 1 )
+    {
+        xj      = &(*_pareto_pts.begin());
+        delta_j = 1.0 / ( xj->get_w() + 1 );  // delta=1.0
+        return NULL;
+    }
     
-    const_cast<NOMAD::Pareto_Point *>(xj)->update_w();
+    std::set<NOMAD::Pareto_Point>::const_iterator it = _pareto_pts.begin();
+    NOMAD::Point * ref = new NOMAD::Point ( 2 );
     
-    (*ref)[0] = f1x;
-    (*ref)[1] = f2xm1;
-
-    return ref;
-  }
-
-  // more than two points in the front:
-  std::set<NOMAD::Pareto_Point>::const_iterator end = _pareto_pts.end();
+    NOMAD::Double f1xm1;  // f_1 ( x_{j-1} )
+    NOMAD::Double f1x;    // f_1 ( x_j     )
+    NOMAD::Double f1xp1;  // f_1 ( x_{j+1} )
     
-  const NOMAD::Pareto_Point * prev , * cur , * next;
-
-  NOMAD::Double delta;
-
-  prev = &(*it);
-  ++it;
+    NOMAD::Double f2xm1;  // f_2 ( x_{j-1} )
+    NOMAD::Double f2x;    // f_2 ( x_j     )
+    NOMAD::Double f2xp1;  // f_2 ( x_{j+1} )
     
-  while ( true ) {
-
-    cur = &(*it);
-
-    ++it;
-    if ( it == end )
-      break;
+    // two points in the front:
+    if ( p == 2 )
+    {
+        
+        f1xm1 = it->get_f1();
+        f2xm1 = it->get_f2();
+        
+        ++it;
+        xj = &(*it);
+        
+        f1x = xj->get_f1();
+        f2x = xj->get_f2();
+        
+        delta_j = ( (f1x-f1xm1).pow2() + (f2x-f2xm1).pow2() ) / ( xj->get_w() + 1.0 );
+        
+        const_cast<NOMAD::Pareto_Point *>(xj)->update_w();
+        
+        (*ref)[0] = f1x;
+        (*ref)[1] = f2xm1;
+        
+        return ref;
+    }
     
-    next = &(*it);
-   
-    f1xm1 = prev->get_f1();
-    f2xm1 = prev->get_f2();
+    // more than two points in the front:
+    std::set<NOMAD::Pareto_Point>::const_iterator end = _pareto_pts.end();
     
-    f1x   = cur->get_f1();
-    f2x   = cur->get_f2();
-
-    f1xp1 = next->get_f1();
-    f2xp1 = next->get_f2();
-
-    delta = ( (f1x-f1xm1).pow2() + (f2x-f2xm1).pow2() +
-	      (f1x-f1xp1).pow2() + (f2x-f2xp1).pow2()   ) / ( cur->get_w() + 1.0 );
-      
-    if ( !delta_j.is_defined() || delta > delta_j ) {
-      xj      = cur;
-      delta_j = delta;
-      (*ref)[0] = f1xp1;
-      (*ref)[1] = f2xm1;
+    const NOMAD::Pareto_Point * prev , * cur , * next;
+    
+    NOMAD::Double delta;
+    
+    prev = &(*it);
+    ++it;
+    
+    while ( true )
+    {
+        
+        cur = &(*it);
+        
+        ++it;
+        if ( it == end )
+            break;
+        
+        next = &(*it);
+        
+        f1xm1 = prev->get_f1();
+        f2xm1 = prev->get_f2();
+        
+        f1x   = cur->get_f1();
+        f2x   = cur->get_f2();
+        
+        f1xp1 = next->get_f1();
+        f2xp1 = next->get_f2();
+        
+        delta = ( (f1x-f1xm1).pow2() + (f2x-f2xm1).pow2() +
+                 (f1x-f1xp1).pow2() + (f2x-f2xp1).pow2()   ) / ( cur->get_w() + 1.0 );
+        
+        if ( !delta_j.is_defined() || delta > delta_j )
+        {
+            xj      = cur;
+            delta_j = delta;
+            (*ref)[0] = f1xp1;
+            (*ref)[1] = f2xm1;
+        }
+        
+        prev = cur;
     }
     
-    prev = cur;
-  }
-  
-  const_cast<Pareto_Point *>(xj)->update_w();
-  
-  return ref;
+    const_cast<Pareto_Point *>(xj)->update_w();
+    
+    return ref;
 }
 
 /*------------------------------------------------------*/
 /*                  compute delta and surf              */
 /*------------------------------------------------------*/
 void NOMAD::Pareto_Front::get_delta_surf ( NOMAD::Double      & delta_j  ,
-					   NOMAD::Double      & surf     ,
-					   const NOMAD::Point & f_bounds   ) const
+                                          NOMAD::Double      & surf     ,
+                                          const NOMAD::Point & f_bounds   ) const
 {
-  bool def = f_bounds.is_complete();
-  NOMAD::Double f1_min , f1_max , f2_min , f2_max;
-
-  if ( def ) {
-
-    if ( f_bounds.size() == 4 ) {
-
-      f1_min = f_bounds[0];
-      f1_max = f_bounds[1];
-      f2_min = f_bounds[2];
-      f2_max = f_bounds[3];
-
-      if ( f1_min >= f1_max || f2_min >= f2_max ) {
-	f1_min.clear();
-	f1_max.clear();
-	f2_min.clear();
-	f2_max.clear();
-	def = false;
-      }
-    }
-    else
-      def = false;
-  }
-
-  delta_j.clear();
-  surf.clear();
-
-  int p = static_cast<int> ( _pareto_pts.size() );
-
-  // no point in the front:
-  if ( p == 0 ) {
+    bool def = f_bounds.is_complete();
+    NOMAD::Double f1_min , f1_max , f2_min , f2_max;
+    
     if ( def )
-      surf = 1.0;
-    return;
-  }
-
-  const NOMAD::Pareto_Point * xj;
-  NOMAD::Double               f1x;  // f_1 ( x_j )
-  NOMAD::Double              f2x;  // f_2 ( x_j )
-
-  NOMAD::Double surf_frame = (def) ?
+    {
+        
+        if ( f_bounds.size() == 4 )
+        {
+            
+            f1_min = f_bounds[0];
+            f1_max = f_bounds[1];
+            f2_min = f_bounds[2];
+            f2_max = f_bounds[3];
+            
+            if ( f1_min >= f1_max || f2_min >= f2_max )
+            {
+                f1_min.clear();
+                f1_max.clear();
+                f2_min.clear();
+                f2_max.clear();
+                def = false;
+            }
+        }
+        else
+            def = false;
+    }
+    
+    delta_j.clear();
+    surf.clear();
+    
+    int p = static_cast<int> ( _pareto_pts.size() );
+    
+    // no point in the front:
+    if ( p == 0 )
+    {
+        if ( def )
+            surf = 1.0;
+        return;
+    }
+    
+    const NOMAD::Pareto_Point * xj;
+    NOMAD::Double               f1x;  // f_1 ( x_j )
+    NOMAD::Double              f2x;  // f_2 ( x_j )
+    
+    NOMAD::Double surf_frame = (def) ?
     ( f2_max - f2_min ) * ( f1_max - f1_min )
     : NOMAD::Double();
-
-  // just one point in the front:
-  if ( p == 1 ) {
-    xj      = &(*_pareto_pts.begin());
-    delta_j = 1.0 / ( xj->get_w() + 1 );  // delta=1.0
-    f1x     = xj->get_f1();
-    f2x     = xj->get_f2();
-
-    if ( !def || f1x > f1_max || f1x < f1_min || f2x > f2_max || f2x < f2_min )
-      return;
-
-    surf = (   ( f2_max - f2_min ) * (    f1x - f1_min )
-	     + (    f2x - f2_min ) * ( f1_max - f1x    ) ) / surf_frame;
-
-    return;
-  }
-
-  std::set<NOMAD::Pareto_Point>::const_iterator it = _pareto_pts.begin();
-
-  NOMAD::Double f1xm1;  // f_1 ( x_{j-1} )
-  NOMAD::Double f1xp1;  // f_1 ( x_{j+1} )
-
-  NOMAD::Double f2xm1;  // f_2 ( x_{j-1} )
-  NOMAD::Double f2xp1;  // f_2 ( x_{j+1} )
     
-  // two points in the front:
-  if ( p == 2 ) {
-
-    f1xm1 = it->get_f1();
-    f2xm1 = it->get_f2();
-
-    if ( def && ( f1xm1 < f1_min ||
-		  f1xm1 > f1_max ||
-		  f2xm1 < f2_min ||
-		  f2xm1 > f2_max    ) )
-      def = false;
-
-    ++it;
-    xj = &(*it);
+    // just one point in the front:
+    if ( p == 1 )
+    {
+        xj      = &(*_pareto_pts.begin());
+        delta_j = 1.0 / ( xj->get_w() + 1 );  // delta=1.0
+        f1x     = xj->get_f1();
+        f2x     = xj->get_f2();
+        
+        if ( !def || f1x > f1_max || f1x < f1_min || f2x > f2_max || f2x < f2_min )
+            return;
+        
+        surf = (   ( f2_max - f2_min ) * (    f1x - f1_min )
+                + (    f2x - f2_min ) * ( f1_max - f1x    ) ) / surf_frame;
+        
+        return;
+    }
     
-    f1x = xj->get_f1();
-    f2x = xj->get_f2();
-
-    if ( def && ( f1x < f1_min ||
-		  f1x > f1_max ||
-		  f2x < f2_min ||
-		  f2x > f2_max    ) )
-      def = false;
+    std::set<NOMAD::Pareto_Point>::const_iterator it = _pareto_pts.begin();
     
-    delta_j = ( (f1x-f1xm1).pow2() + (f2x-f2xm1).pow2() ) / ( xj->get_w() + 1.0 );
-
-    if ( def )
-      surf  = (    ( f2xm1  - f2_min ) * ( f1x    - f1xm1  )
-		 + ( f2_max - f2_min ) * ( f1xm1  - f1_min )
-	         + ( f2x    - f2_min ) * ( f1_max - f1x    )  ) / surf_frame;
-
-    return;
-  }
-
-  // more than two points in the front:
-  std::set<NOMAD::Pareto_Point>::const_iterator end = _pareto_pts.end();
+    NOMAD::Double f1xm1;  // f_1 ( x_{j-1} )
+    NOMAD::Double f1xp1;  // f_1 ( x_{j+1} )
     
-  const NOMAD::Pareto_Point * prev , * cur , * next;
-
-  NOMAD::Double delta;
-
-  prev  = &(*it);
-  f1xm1 = prev->get_f1();
-  f2xm1 = prev->get_f2();
-
-  ++it;
-
-  cur  = &(*it);
-  f1x  = cur->get_f1();
-
-  if ( def && ( f1xm1 < f1_min ||
-		f1xm1 > f1_max ||
-		f2xm1 < f2_min ||
-		f2xm1 > f2_max ||
-	        f1x   < f1_min ||
-		f1x   > f1_max    ) )
-    def = false;
-
-  if ( def )
-    surf =  ( f2xm1  - f2_min ) * ( f1x   - f1xm1  )
-          + ( f2_max - f2_min ) * ( f1xm1 - f1_min );
-
-  while ( true ) {
-
-    cur = &(*it);
-
-    ++it;
-    if ( it == end )
-      break;
+    NOMAD::Double f2xm1;  // f_2 ( x_{j-1} )
+    NOMAD::Double f2xp1;  // f_2 ( x_{j+1} )
+    
+    // two points in the front:
+    if ( p == 2 )
+    {
+        
+        f1xm1 = it->get_f1();
+        f2xm1 = it->get_f2();
+        
+        if ( def && ( f1xm1 < f1_min ||
+                     f1xm1 > f1_max ||
+                     f2xm1 < f2_min ||
+                     f2xm1 > f2_max    ) )
+            def = false;
+        
+        ++it;
+        xj = &(*it);
+        
+        f1x = xj->get_f1();
+        f2x = xj->get_f2();
+        
+        if ( def && ( f1x < f1_min ||
+                     f1x > f1_max ||
+                     f2x < f2_min ||
+                     f2x > f2_max    ) )
+            def = false;
+        
+        delta_j = ( (f1x-f1xm1).pow2() + (f2x-f2xm1).pow2() ) / ( xj->get_w() + 1.0 );
+        
+        if ( def )
+            surf  = (    ( f2xm1  - f2_min ) * ( f1x    - f1xm1  )
+                     + ( f2_max - f2_min ) * ( f1xm1  - f1_min )
+                     + ( f2x    - f2_min ) * ( f1_max - f1x    )  ) / surf_frame;
+        
+        return;
+    }
     
-    next = &(*it);
-   
+    // more than two points in the front:
+    std::set<NOMAD::Pareto_Point>::const_iterator end = _pareto_pts.end();
+    
+    const NOMAD::Pareto_Point * prev , * cur , * next;
+    
+    NOMAD::Double delta;
+    
+    prev  = &(*it);
     f1xm1 = prev->get_f1();
     f2xm1 = prev->get_f2();
     
-    f1x   = cur->get_f1();
-    f2x   = cur->get_f2();
-
-    f1xp1 = next->get_f1();
-    f2xp1 = next->get_f2();
-
-
-    if ( def &&
-	 ( f1xm1 < f1_min || f1xm1 > f1_max || f2xm1 < f2_min || f2xm1 > f2_max ||
-	   f1x   < f1_min || f1x   > f1_max || f2x   < f2_min || f2x   > f2_max ||
-	   f1xp1 < f1_min || f1xp1 > f1_max || f2xp1 < f2_min || f2xp1 > f2_max    ) )
-      def = false;
-
-    delta = ( (f1x-f1xm1).pow2() + (f2x-f2xm1).pow2() +
- 	      (f1x-f1xp1).pow2() + (f2x-f2xp1).pow2()   ) / ( cur->get_w() + 1.0 );
-      
-    if ( !delta_j.is_defined() || delta > delta_j )
-      delta_j = delta;
-
+    ++it;
+    
+    cur  = &(*it);
+    f1x  = cur->get_f1();
+    
+    if ( def && ( f1xm1 < f1_min ||
+                 f1xm1 > f1_max ||
+                 f2xm1 < f2_min ||
+                 f2xm1 > f2_max ||
+                 f1x   < f1_min ||
+                 f1x   > f1_max    ) )
+        def = false;
+    
     if ( def )
-      surf += ( f2x - f2_min ) * ( f1xp1 - f1x );
+        surf =  ( f2xm1  - f2_min ) * ( f1x   - f1xm1  )
+        + ( f2_max - f2_min ) * ( f1xm1 - f1_min );
     
-    prev = cur;
-  }
-
-  if ( def ) {
-    surf += ( f2xp1 - f2_min ) * ( f1_max - f1xp1 );
-    surf  = surf / surf_frame;
-  }
-  else
-    surf.clear();
+    while ( true )
+    {
+        
+        cur = &(*it);
+        
+        ++it;
+        if ( it == end )
+            break;
+        
+        next = &(*it);
+        
+        f1xm1 = prev->get_f1();
+        f2xm1 = prev->get_f2();
+        
+        f1x   = cur->get_f1();
+        f2x   = cur->get_f2();
+        
+        f1xp1 = next->get_f1();
+        f2xp1 = next->get_f2();
+        
+        
+        if ( def &&
+            ( f1xm1 < f1_min || f1xm1 > f1_max || f2xm1 < f2_min || f2xm1 > f2_max ||
+             f1x   < f1_min || f1x   > f1_max || f2x   < f2_min || f2x   > f2_max ||
+             f1xp1 < f1_min || f1xp1 > f1_max || f2xp1 < f2_min || f2xp1 > f2_max    ) )
+            def = false;
+        
+        delta = ( (f1x-f1xm1).pow2() + (f2x-f2xm1).pow2() +
+                 (f1x-f1xp1).pow2() + (f2x-f2xp1).pow2()   ) / ( cur->get_w() + 1.0 );
+        
+        if ( !delta_j.is_defined() || delta > delta_j )
+            delta_j = delta;
+        
+        if ( def )
+            surf += ( f2x - f2_min ) * ( f1xp1 - f1x );
+        
+        prev = cur;
+    }
+    
+    if ( def )
+    {
+        surf += ( f2xp1 - f2_min ) * ( f1_max - f1xp1 );
+        surf  = surf / surf_frame;
+    }
+    else
+        surf.clear();
 }
 
 /*------------------------------------------------------*/
@@ -392,16 +418,17 @@ void NOMAD::Pareto_Front::get_delta_surf ( NOMAD::Double      & delta_j  ,
 /*------------------------------------------------------*/
 void NOMAD::Pareto_Front::display ( const NOMAD::Display & out ) const
 {
-  size_t nb  = _pareto_pts.size();
-  int    cnt = 0;
-  std::set<NOMAD::Pareto_Point>::const_iterator it , end = _pareto_pts.end();
-  for ( it = _pareto_pts.begin() ; it != end ; ++it ) {
-    out << "#";
-    out.display_int_w ( cnt++ , static_cast<int>(nb) );
-    out << " ";
-    it->display ( out );
-    out << std::endl;
-  }
+    size_t nb  = _pareto_pts.size();
+    int    cnt = 0;
+    std::set<NOMAD::Pareto_Point>::const_iterator it , end = _pareto_pts.end();
+    for ( it = _pareto_pts.begin() ; it != end ; ++it ) 
+    {
+        out << "#";
+        out.display_int_w ( cnt++ , static_cast<int>(nb) );
+        out << " ";
+        it->display ( out );
+        out << std::endl;
+    }
 }
 
 /*------------------------------------------------------------------*/
@@ -410,7 +437,8 @@ void NOMAD::Pareto_Front::display ( const NOMAD::Display & out ) const
 /*  . example:                                                      */
 /*                                                                  */
 /*        const Eval_Point * cur = pareto_front.begin();            */
-/*        while (cur) {                                             */
+/*        while (cur) 
+ {                                             */
 /*          ...                                                     */
 /*          cur = pareto_front.next();                              */
 /*        }                                                         */
@@ -420,20 +448,20 @@ void NOMAD::Pareto_Front::display ( const NOMAD::Display & out ) const
 // --------
 const NOMAD::Eval_Point * NOMAD::Pareto_Front::begin ( void ) const
 {
-  if ( _pareto_pts.empty() )
-    return NULL;
-  _it = _pareto_pts.begin();
-  return _it->get_element();
+    if ( _pareto_pts.empty() )
+        return NULL;
+    _it = _pareto_pts.begin();
+    return _it->get_element();
 }
 
 // next(): (supposes that begin() has been called)
 // -------
 const NOMAD::Eval_Point * NOMAD::Pareto_Front::next ( void ) const
 {
-  if ( _pareto_pts.empty() )
-    return NULL;
-  ++_it;
-  if ( _it == _pareto_pts.end() )
-    return NULL;
-  return _it->get_element();
+    if ( _pareto_pts.empty() )
+        return NULL;
+    ++_it;
+    if ( _it == _pareto_pts.end() )
+        return NULL;
+    return _it->get_element();
 }
diff --git a/src/Pareto_Front.hpp b/src/Pareto_Front.hpp
index c7d251f..2c33263 100644
--- a/src/Pareto_Front.hpp
+++ b/src/Pareto_Front.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,133 +41,134 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Pareto_Front.hpp
-  \brief  Pareto front (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-09
-  \see    Pareto_Front.cpp
-*/
+ \file   Pareto_Front.hpp
+ \brief  Pareto front (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-09
+ \see    Pareto_Front.cpp
+ */
 #ifndef __PARETO_FRONT__
 #define __PARETO_FRONT__
 
 #include "Pareto_Point.hpp"
 
 namespace NOMAD {
-
-  /// Pareto front for two objective functions.
-  /**
+    
+    /// Pareto front for two objective functions.
+    /**
      Browse the front with the following instructions:
      \code
      const Eval_Point * cur = pareto_front.begin();
      while ( cur ) {
-       ...
-       cur = pareto_front.next();
+     ...
+     cur = pareto_front.next();
      }
      \endcode
-  */
-  class Pareto_Front : private NOMAD::Uncopyable {
-
-  private:
-
-    /// The set of Pareto points.
-    std::set<NOMAD::Pareto_Point> _pareto_pts;
-
-    /// Iterator to browse the front with begin() and next().
-    mutable std::set<NOMAD::Pareto_Point>::const_iterator _it;
-
-  public:
-
-    /// Constructor.
-    Pareto_Front ( void ) {}
-
-    /// Destructor.
-    virtual ~Pareto_Front ( void ) {}
-
-    /// Access to the first Pareto point.
-    /**
-       Used to initialize a loop on the Pareto points.
-       \return A pointer to the first Pareto point and \c NULL if the front
-               is empty.
-    */
-    const NOMAD::Eval_Point * begin ( void ) const;
-
-    /// Access to the next Pareto point.
-    /**
-       Used to increment a loop on the Pareto points.
-       \return A pointer to the next Pareto point and \c NULL if
-               the current point is the last point in the front.
-    */
-    const NOMAD::Eval_Point * next  ( void ) const;
-
-    /// Access to the number of Pareto points.
-    /**
-       \return The number of Pareto points.
-    */
-    int size ( void ) const { return static_cast<int>(_pareto_pts.size()); }
-
-    /// Check if the front is empty.
-    /**
-       \return A boolean equal to \c true if the front is empty.
-    */
-    bool empty ( void ) const { return _pareto_pts.empty(); }
-
-    /// Computation and access to the reference point.
-    /**
-       \param xj      A pointer to the reference point; Is equal to \c NULL if
-                      no reference exists -- \b OUT.
-       \param delta_j The \c delta stats measuring the front repartition -- \b OUT.
-       \return A pointer to the reference point and
-               \c NULL if there is no reference point.
-    */
-    NOMAD::Point * get_ref ( const NOMAD::Pareto_Point *& xj      ,
-			     NOMAD::Double              & delta_j   ) const;
-
-    /// Access to the Pareto point minimizing f2(x).
-    /**
-       \return A pointer to the Pareto point minimizing f2 and
-               \c NULL if such a point does not exist.
-    */
-    const NOMAD::Eval_Point * get_best_f2 ( void ) const;
-
-    /// Compute the stats \c delta and \c surf.
-    /**
-       - \c delta measures the front repartition (lower is best).
-       - \c surf measures the front quality (lower is best).
-       \param delta_j   The \c delta stat -- \b OUT.
-       \param surf      The \c surf stat  -- \b OUT.
-       \param f_bounds  NOMAD::Point with 4 values (f1_min, f1_max, f2_min, and f2_max)
-                        defining bounds for f1 and f2 for the computation
-			of the \c surf stat -- \b IN.
-    */
-    void get_delta_surf ( NOMAD::Double      & delta_j ,
-			  NOMAD::Double      & surf    ,
-			  const NOMAD::Point & f_bounds  ) const;       
+     */
+    class Pareto_Front : private NOMAD::Uncopyable {
+        
+    private:
+        
+        /// The set of Pareto points.
+        std::set<NOMAD::Pareto_Point> _pareto_pts;
+        
+        /// Iterator to browse the front with begin() and next().
+        mutable std::set<NOMAD::Pareto_Point>::const_iterator _it;
+        
+    public:
+        
+        /// Constructor.
+        Pareto_Front ( void ) {}
+        
+        /// Destructor.
+        virtual ~Pareto_Front ( void ) {}
+        
+        /// Access to the first Pareto point.
+        /**
+         Used to initialize a loop on the Pareto points.
+         \return A pointer to the first Pareto point and \c NULL if the front
+         is empty.
+         */
+        const NOMAD::Eval_Point * begin ( void ) const;
+        
+        /// Access to the next Pareto point.
+        /**
+         Used to increment a loop on the Pareto points.
+         \return A pointer to the next Pareto point and \c NULL if
+         the current point is the last point in the front.
+         */
+        const NOMAD::Eval_Point * next  ( void ) const;
+        
+        /// Access to the number of Pareto points.
+        /**
+         \return The number of Pareto points.
+         */
+        int size ( void ) const { return static_cast<int>(_pareto_pts.size()); }
+        
+        /// Check if the front is empty.
+        /**
+         \return A boolean equal to \c true if the front is empty.
+         */
+        bool empty ( void ) const { return _pareto_pts.empty(); }
+        
+        /// Computation and access to the reference point.
+        /**
+         \param xj      A pointer to the reference point; Is equal to \c NULL if
+         no reference exists -- \b OUT.
+         \param delta_j The \c delta stats measuring the front repartition -- \b OUT.
+         \return A pointer to the reference point and
+         \c NULL if there is no reference point.
+         */
+        NOMAD::Point * get_ref ( const NOMAD::Pareto_Point *& xj      ,
+                                NOMAD::Double              & delta_j   ) const;
+        
+        /// Access to the Pareto point minimizing f2(x).
+        /**
+         \return A pointer to the Pareto point minimizing f2 and
+         \c NULL if such a point does not exist.
+         */
+        const NOMAD::Eval_Point * get_best_f2 ( void ) const;
+        
+        /// Compute the stats \c delta and \c surf.
+        /**
+         - \c delta measures the front repartition (lower is best).
+         - \c surf measures the front quality (lower is best).
+         \param delta_j   The \c delta stat -- \b OUT.
+         \param surf      The \c surf stat  -- \b OUT.
+         \param f_bounds  NOMAD::Point with 4 values (f1_min, f1_max, f2_min, and f2_max)
+         defining bounds for f1 and f2 for the computation
+         of the \c surf stat -- \b IN.
+         */
+        void get_delta_surf ( NOMAD::Double      & delta_j ,
+                             NOMAD::Double      & surf    ,
+                             const NOMAD::Point & f_bounds  ) const;
+        
+        /// Insertion of a point in the Pareto front.
+        /**
+         \param x The point to be inserted -- \b IN.
+         \return A boolean equal to \c true if the point is a new Pareto point.
+         */
+        bool insert ( const NOMAD::Eval_Point & x );
+        
+        /// Display the Pareto points.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+    };
     
-    /// Insertion of a point in the Pareto front.
+    /// Display a NOMAD::Pareto_Front object.
     /**
-       \param x The point to be inserted -- \b IN.
-       \return A boolean equal to \c true if the point is a new Pareto point.
-    */
-    bool insert ( const NOMAD::Eval_Point & x );
-
-    /// Display the Pareto points.
-    /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    void display ( const NOMAD::Display & out ) const;
-  };
-
-  /// Display a NOMAD::Pareto_Front object.
-  /**
      \param out The NOMAD::Display object -- \b IN.
      \param pf  The NOMAD::Pareto_Front object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display      & out ,
-					      const NOMAD::Pareto_Front & pf    ) {
-    pf.display ( out );
-    return out;
-  }
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display      & out ,
+                                               const NOMAD::Pareto_Front & pf    )
+    {
+        pf.display ( out );
+        return out;
+    }
 }
 
 #endif
diff --git a/src/Pareto_Point.cpp b/src/Pareto_Point.cpp
index 75ad0ae..985d367 100644
--- a/src/Pareto_Point.cpp
+++ b/src/Pareto_Point.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Pareto_Point.cpp
-  \brief  Pareto point (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-09
-  \see    Pareto_Point.hpp
-*/
+ \file   Pareto_Point.cpp
+ \brief  Pareto point (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-09
+ \see    Pareto_Point.hpp
+ */
 #include "Pareto_Point.hpp"
 
 /*--------------------------------------------------------*/
@@ -51,13 +58,13 @@
 bool NOMAD::Pareto_Point::operator <
 ( const NOMAD::Set_Element<NOMAD::Eval_Point> & fp ) const
 {
-  if ( this == &fp || get_element() == fp.get_element() )
-    return false;
-  
-  int i1 = NOMAD::Multi_Obj_Evaluator::get_i1();
-
-  return get_element()->get_bb_outputs()[i1].value() <
-         fp.get_element()->get_bb_outputs()[i1].value();
+    if ( this == &fp || get_element() == fp.get_element() )
+        return false;
+    
+    int i1 = NOMAD::Multi_Obj_Evaluator::get_i1();
+    
+    return get_element()->get_bb_outputs()[i1].value() <
+    fp.get_element()->get_bb_outputs()[i1].value();
 }
 
 /*---------------------------------------------------------------*/
@@ -67,25 +74,25 @@ bool NOMAD::Pareto_Point::operator <
 /*---------------------------------------------------------------*/
 bool NOMAD::Pareto_Point::dominates ( const NOMAD::Pareto_Point & pp ) const
 {
-  if ( this == &pp || get_element() == pp.get_element() )
+    if ( this == &pp || get_element() == pp.get_element() )
+        return false;
+    
+    int i1 = NOMAD::Multi_Obj_Evaluator::get_i1();
+    int i2 = NOMAD::Multi_Obj_Evaluator::get_i2();
+    
+    // we compare F(x)=[f1(x),f2(x)] and F(y)=[f1(y),f2(y)]:
+    double f1x  = get_element()->get_bb_outputs   ()[i1].value();
+    double f2x  = get_element()->get_bb_outputs   ()[i2].value();
+    double f1y  = pp.get_element()->get_bb_outputs()[i1].value();
+    double f2y  = pp.get_element()->get_bb_outputs()[i2].value();
+    
+    if ( f1x < f1y )
+        return f2x <= f2y;
+    
+    if ( f1x == f1y )
+        return ( f2x < f2y );
+    
     return false;
-
-  int i1 = NOMAD::Multi_Obj_Evaluator::get_i1();
-  int i2 = NOMAD::Multi_Obj_Evaluator::get_i2();
-
-  // we compare F(x)=[f1(x),f2(x)] and F(y)=[f1(y),f2(y)]:
-  double f1x  = get_element()->get_bb_outputs   ()[i1].value();
-  double f2x  = get_element()->get_bb_outputs   ()[i2].value();
-  double f1y  = pp.get_element()->get_bb_outputs()[i1].value();
-  double f2y  = pp.get_element()->get_bb_outputs()[i2].value();
-  
-  if ( f1x < f1y )
-    return f2x <= f2y;
-
-  if ( f1x == f1y )
-    return ( f2x < f2y );
-  
-  return false;
 }
 
 /*---------------------------------------------------------------*/
@@ -93,14 +100,14 @@ bool NOMAD::Pareto_Point::dominates ( const NOMAD::Pareto_Point & pp ) const
 /*---------------------------------------------------------------*/
 void NOMAD::Pareto_Point::display ( const NOMAD::Display & out ) const
 {
-  const NOMAD::Point & bbo = get_element()->get_bb_outputs();
-  int                  w   = 13;
-
-  out << "x=( ";
-  get_element()->NOMAD::Point::display ( out , " " , w , -1 );
-  out << " ) F(x)=[ ";
-  bbo.Point::display ( out , " " , w , -1 );
-  out << " ] [ f1(x) f2(x) ]=[ "
-      << std::setw(w) << bbo[NOMAD::Multi_Obj_Evaluator::get_i1()] << " "
-      << std::setw(w) << bbo[NOMAD::Multi_Obj_Evaluator::get_i2()] << " ]";
+    const NOMAD::Point & bbo = get_element()->get_bb_outputs();
+    int                  w   = 13;
+    
+    out << "x=( ";
+    get_element()->NOMAD::Point::display ( out , " " , w , -1 );
+    out << " ) F(x)=[ ";
+    bbo.Point::display ( out , " " , w , -1 );
+    out << " ] [ f1(x) f2(x) ]=[ "
+    << std::setw(w) << bbo[NOMAD::Multi_Obj_Evaluator::get_i1()] << " "
+    << std::setw(w) << bbo[NOMAD::Multi_Obj_Evaluator::get_i2()] << " ]";
 }
diff --git a/src/Pareto_Point.hpp b/src/Pareto_Point.hpp
index 1d981f6..9503fbb 100644
--- a/src/Pareto_Point.hpp
+++ b/src/Pareto_Point.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,122 +41,122 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Pareto_Point.hpp
-  \brief  Pareto point (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-22
-  \see    Pareto_Point.cpp
-*/
+ \file   Pareto_Point.hpp
+ \brief  Pareto point (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-22
+ \see    Pareto_Point.cpp
+ */
 #ifndef __PARETO_POINT__
 #define __PARETO_POINT__
 
 #include "Multi_Obj_Evaluator.hpp"
 
 namespace NOMAD {
-
-  /// Pareto point for two objective functions.
-  class Pareto_Point : public NOMAD::Set_Element<NOMAD::Eval_Point> {
-  
-  private:
-
-    int _w; ///< Weight.
-
-    /// Affectation operator.
-    /**
-       \param p The right-hand side object -- \b IN.
-    */
-    Pareto_Point & operator = ( const Pareto_Point & p );
-
-  public:
-
-    /// Constructor.
-    /**
-       \param ep A pointer to an evaluation point -- \b IN.
-    */
-    Pareto_Point ( const NOMAD::Eval_Point * ep )
-      : NOMAD::Set_Element<NOMAD::Eval_Point> ( ep ) ,
-	_w                                    ( 0  )   {}
-
-    /// Copy constructor.
-    /**
-       \param pp The copied object -- \b IN.
-    */
-    explicit Pareto_Point ( const Pareto_Point & pp )
-      : NOMAD::Set_Element<NOMAD::Eval_Point> ( pp.get_element() ) ,
-	_w                                    ( 0                )   {}
-
-    /// Destructor.
-    virtual ~Pareto_Point ( void ) {}
-
-    /// Update the weight.
-    /**
-       A more evolved formula than \c ++w is used in order
-       to avoid stagnation with large number of evaluations.
-    */
-    void update_w ( void ) { _w = 2 * _w + 2; }
-
-    /// Access to the weight.
-    /**
-       \return The weight.
-    */
-    int get_w ( void ) const { return _w; }
-
-    /// Access to the value of the first objective function.
-    /**
-       \return The value of the first objective function.
-    */
-    const NOMAD::Double & get_f1 ( void ) const
-    {
-      return get_element()->get_bb_outputs()[NOMAD::Multi_Obj_Evaluator::get_i1()];
-    }
-
-    /// Access to the value of the second objective function.
-    /**
-       \return The value of the second objective function.
-    */
-    const NOMAD::Double & get_f2 ( void ) const
-    {
-      return get_element()->get_bb_outputs()[NOMAD::Multi_Obj_Evaluator::get_i2()];
-    }
-
-    /// Comparison operator.
-    /**
-       - Supposes that \c y is a Pareto point.
-       - Used for the insertion in a set (the Pareto front).
-       - \c f1(*this) and \c f1(y) are compared.
-       \param y The right-hand side of the comparison -- \b IN.
-       \return A boolean equal to \c true if \c *this \c < \c y.
-    */
-    virtual bool operator < ( const NOMAD::Set_Element<NOMAD::Eval_Point> & y ) const;
-
-    /// Dominance operator.
-    /**
-       Used for the comparison (dominance) of two Pareto points
-       before they are inserted into the Pareto front.
-       \param y The right-hand side of the comparison -- \b IN.
-       \return A boolean equal to \c true if \c *this dominates \c y.
-    */
-    bool dominates ( const Pareto_Point & y ) const;
     
-    /// Display the Pareto point.
+    /// Pareto point for two objective functions.
+    class Pareto_Point : public NOMAD::Set_Element<NOMAD::Eval_Point> {
+        
+    private:
+        
+        int _w; ///< Weight.
+        
+        /// Affectation operator.
+        /**
+         \param p The right-hand side object -- \b IN.
+         */
+        Pareto_Point & operator = ( const Pareto_Point & p );
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param ep A pointer to an evaluation point -- \b IN.
+         */
+        Pareto_Point ( const NOMAD::Eval_Point * ep )
+        : NOMAD::Set_Element<NOMAD::Eval_Point> ( ep ) ,
+        _w                                    ( 0  )   {}
+        
+        /// Copy constructor.
+        /**
+         \param pp The copied object -- \b IN.
+         */
+        explicit Pareto_Point ( const Pareto_Point & pp )
+        : NOMAD::Set_Element<NOMAD::Eval_Point> ( pp.get_element() ) ,
+        _w                                    ( 0                )   {}
+        
+        /// Destructor.
+        virtual ~Pareto_Point ( void ) {}
+        
+        /// Update the weight.
+        /**
+         A more evolved formula than \c ++w is used in order
+         to avoid stagnation with large number of evaluations.
+         */
+        void update_w ( void ) { _w = 2 * _w + 2; }
+        
+        /// Access to the weight.
+        /**
+         \return The weight.
+         */
+        int get_w ( void ) const { return _w; }
+        
+        /// Access to the value of the first objective function.
+        /**
+         \return The value of the first objective function.
+         */
+        const NOMAD::Double & get_f1 ( void ) const
+        {
+            return get_element()->get_bb_outputs()[NOMAD::Multi_Obj_Evaluator::get_i1()];
+        }
+        
+        /// Access to the value of the second objective function.
+        /**
+         \return The value of the second objective function.
+         */
+        const NOMAD::Double & get_f2 ( void ) const
+        {
+            return get_element()->get_bb_outputs()[NOMAD::Multi_Obj_Evaluator::get_i2()];
+        }
+        
+        /// Comparison operator.
+        /**
+         - Supposes that \c y is a Pareto point.
+         - Used for the insertion in a set (the Pareto front).
+         - \c f1(*this) and \c f1(y) are compared.
+         \param y The right-hand side of the comparison -- \b IN.
+         \return A boolean equal to \c true if \c *this \c < \c y.
+         */
+        virtual bool operator < ( const NOMAD::Set_Element<NOMAD::Eval_Point> & y ) const;
+        
+        /// Dominance operator.
+        /**
+         Used for the comparison (dominance) of two Pareto points
+         before they are inserted into the Pareto front.
+         \param y The right-hand side of the comparison -- \b IN.
+         \return A boolean equal to \c true if \c *this dominates \c y.
+         */
+        bool dominates ( const Pareto_Point & y ) const;
+        
+        /// Display the Pareto point.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+    };
+    
+    /// Display a NOMAD::Pareto_Point object.
     /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    void display ( const NOMAD::Display & out ) const;
-  };
-
-  /// Display a NOMAD::Pareto_Point object.
-  /**
      \param out The NOMAD::Display object -- \b IN.
      \param pp  The NOMAD::Pareto_Point object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display      & out ,
-					      const NOMAD::Pareto_Point & pp    )
-  {
-    pp.display ( out );
-    return out;
-  }
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display      & out ,
+                                               const NOMAD::Pareto_Point & pp    )
+    {
+        pp.display ( out );
+        return out;
+    }
 }
 
 #endif
diff --git a/src/Phase_One_Evaluator.cpp b/src/Phase_One_Evaluator.cpp
index 27d57ef..ba014d5 100644
--- a/src/Phase_One_Evaluator.cpp
+++ b/src/Phase_One_Evaluator.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -48,30 +55,30 @@
 /*------------------------------------------------------------------*/
 void NOMAD::Phase_One_Evaluator::compute_f ( NOMAD::Eval_Point & x ) const
 {
-	if ( x.get_bb_outputs().size() != _p.get_bb_nb_outputs() )
-	{
-		std::ostringstream err;
-		err << "Phase_One_Evaluator::compute_f(x): "
-		<< "x has a wrong number of blackbox outputs ("
-		<< x.get_bb_outputs().size() <<  " != " << _p.get_bb_nb_outputs() << ")";
-		throw NOMAD::Exception ( "Phase_One_Evaluator.cpp" , __LINE__ , err.str() );
-	}
-	
-	// objective value for MADS phase 1: the squared sum of all EB constraint violations
-	// (each EB constraint has been previously transformed into OBJ values):
-	const std::list<int>               & index_obj = _p.get_index_obj();
-	const std::list<int>::const_iterator end       = index_obj.end();
-	const NOMAD::Point                 & bbo       = x.get_bb_outputs();
-	NOMAD::Double                        h_min     = _p.get_h_min();
-	NOMAD::Double                        sum       = 0.0;
-	NOMAD::Double                        v;
-	
-	for ( std::list<int>::const_iterator it = index_obj.begin() ; it != end ; ++it )
-	{
-		v = bbo[*it];
-		if ( v > h_min )
-			sum += v.pow2();
-	}
-	
-	x.set_f ( sum );
+    if ( x.get_bb_outputs().size() != _p.get_bb_nb_outputs() )
+    {
+        std::ostringstream err;
+        err << "Phase_One_Evaluator::compute_f(x): "
+        << "x has a wrong number of blackbox outputs ("
+        << x.get_bb_outputs().size() <<  " != " << _p.get_bb_nb_outputs() << ")";
+        throw NOMAD::Exception ( "Phase_One_Evaluator.cpp" , __LINE__ , err.str() );
+    }
+    
+    // objective value for MADS phase 1: the squared sum of all EB constraint violations
+    // (each EB constraint has been previously transformed into OBJ values):
+    const std::list<int>               & index_obj = _p.get_index_obj();
+    const std::list<int>::const_iterator end       = index_obj.end();
+    const NOMAD::Point                 & bbo       = x.get_bb_outputs();
+    NOMAD::Double                        h_min     = _p.get_h_min();
+    NOMAD::Double                        sum       = 0.0;
+    NOMAD::Double                        v;
+    
+    for ( std::list<int>::const_iterator it = index_obj.begin() ; it != end ; ++it )
+    {
+        v = bbo[*it];
+        if ( v > h_min )
+            sum += v.pow2();
+    }
+    
+    x.set_f ( sum );
 }
diff --git a/src/Phase_One_Evaluator.hpp b/src/Phase_One_Evaluator.hpp
index a22ca4e..0446b24 100644
--- a/src/Phase_One_Evaluator.hpp
+++ b/src/Phase_One_Evaluator.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -74,7 +81,8 @@ namespace NOMAD {
          \param s Stats -- \b IN.
          \param x Successful point -- \b IN.
          */
-        virtual void update_success ( const NOMAD::Stats & s , const NOMAD::Eval_Point & x )
+        virtual void update_success ( const NOMAD::Stats & s ,
+                                     const NOMAD::Eval_Point & x )
         {
             _basic_ev.update_success ( s , x );
         }
@@ -116,8 +124,7 @@ namespace NOMAD {
          This method is called before the evaluation of a list of points.
          \param pts List of points to preprocess -- \b IN/OUT.
          */
-        virtual void list_of_points_preprocessing
-        ( std::set<NOMAD::Priority_Eval_Point> & pts ) const
+        virtual void list_of_points_preprocessing ( std::set<NOMAD::Priority_Eval_Point> & pts ) const
         {
             _basic_ev.list_of_points_preprocessing ( pts );
         }
@@ -132,6 +139,7 @@ namespace NOMAD {
             return _basic_ev.is_model_evaluator();
         }
         
+        
         /// User updates after an iteration.
         /**
          This virtual method is called every time a MADS iteration is terminated.
diff --git a/src/Phase_One_Search.cpp b/src/Phase_One_Search.cpp
index d058fe2..19b3fd6 100644
--- a/src/Phase_One_Search.cpp
+++ b/src/Phase_One_Search.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -85,17 +92,19 @@ void NOMAD::Phase_One_Search::search ( NOMAD::Mads              & mads
     // save and modify parameters:
     std::string old_display_degree;
     _p.out().get_display_degree ( old_display_degree );
-    const std::list<std::string>         old_ds = _p.get_display_stats();
-    NOMAD::Double                     old_VNS_trigger = _p.get_VNS_trigger();
-    const std::string             old_stats_file_name = _p.get_stats_file_name();
-    const std::string                    old_sol_file = _p.get_solution_file();
-    const std::list<std::string>       old_stats_file = _p.get_stats_file();
-    const NOMAD::Point                   old_f_target = _p.get_f_target();
-    NOMAD::Double                             old_lct = _p.get_L_curve_target();
-    bool                                      old_sif = _p.get_stop_if_feasible();
+    const std::list<std::string>              old_ds = _p.get_display_stats();
+    const std::string           old_stats_file_name = _p.get_stats_file_name();
+    const std::string                  old_sol_file = _p.get_solution_file();
+    const std::list<std::string>      old_stats_file = _p.get_stats_file();
+    const NOMAD::Point                 old_f_target = _p.get_f_target();
+    NOMAD::Double                           old_lct = _p.get_L_curve_target();
+    bool                                  old_sif = _p.get_stop_if_feasible();
     const std::vector<NOMAD::bb_output_type> old_bbot = _p.get_bb_output_type();
     std::vector<NOMAD::bb_output_type>        p1_bbot = old_bbot;
     
+    NOMAD::multi_formulation_type old_multi_formulation = _p.get_multi_formulation() ;
+    int                    old_multi_nb_mads_runs = _p.get_multi_nb_mads_runs();
+    
     
     if ( display_degree == NOMAD::NORMAL_DISPLAY)  // Normal display -> minimal display for Phase one
         _p.set_DISPLAY_DEGREE( NOMAD::MINIMAL_DISPLAY);
@@ -117,16 +126,24 @@ void NOMAD::Phase_One_Search::search ( NOMAD::Mads              & mads
             p1_bbot[i] = NOMAD::UNDEFINED_BBO;
     }
     
-    if ( cnt == 0 ) {
+    if ( cnt == 0 )
+    {
         stop        = true;
         stop_reason = NOMAD::P1_FAIL;
         return;
     }
     
+
+    if ( cnt > 1 )
+    {
+        // _p.set_LH_SEARCH(100, 0);
+        _p.set_MULTI_FORMULATION( NOMAD::DIST_LINF );
+        _p.set_MULTI_NB_MADS_RUNS( 1 );
+    }
+    
     _p.set_F_TARGET         ( NOMAD::Point ( cnt , 0.0 ) );
     _p.set_L_CURVE_TARGET   ( NOMAD::Double()            );
     _p.set_STOP_IF_FEASIBLE ( false                      );
-    _p.set_VNS_SEARCH       ( false                      );
     _p.set_BB_OUTPUT_TYPE   ( p1_bbot                    );
     _p.set_SOLUTION_FILE    ( ""                         );
     _p.reset_stats_file();
@@ -160,7 +177,6 @@ void NOMAD::Phase_One_Search::search ( NOMAD::Mads              & mads
     // run MADS with modified parameters:
     // ----------------------------------
     
-    // C. Tribes  march 2014 ---- these flags are mads static and must be put back to their original value after running mads (see below)
     // get flags:
     bool flag_check_bimads , flag_reset_mesh , flag_reset_barriers , flag_p1_active;
     NOMAD::Mads::get_flags ( flag_check_bimads   ,
@@ -174,7 +190,7 @@ void NOMAD::Phase_One_Search::search ( NOMAD::Mads              & mads
     NOMAD::Mads::set_flag_reset_mesh     ( false );
     NOMAD::Mads::set_flag_p1_active      ( true  );
     NOMAD::Mads::set_flag_reset_barriers ( true  );
-	   
+
     // run:
     stop_reason = mads.run();
     
@@ -190,7 +206,9 @@ void NOMAD::Phase_One_Search::search ( NOMAD::Mads              & mads
         }
         
         // continue:
-        else {
+        else
+        {
+            
             stop        = false;
             stop_reason = NOMAD::NO_STOP;
         }
@@ -199,15 +217,11 @@ void NOMAD::Phase_One_Search::search ( NOMAD::Mads              & mads
         stop = true;
     
     // reset flags to there previous state :
-    // C. Tribes  march 2014 ---- these flags are mads static and must be put back to their original value after running mads
     NOMAD::Mads::set_flag_check_bimads ( flag_check_bimads  );
     NOMAD::Mads::set_flag_reset_mesh   ( flag_reset_mesh  );
     NOMAD::Mads::set_flag_p1_active    ( flag_p1_active );
     NOMAD::Mads::set_flag_reset_barriers    ( flag_reset_barriers );
     
-    //	NOMAD::Mads::set_flag_check_bimads ( true  );
-    //	NOMAD::Mads::set_flag_reset_mesh   ( true  );
-    //	NOMAD::Mads::set_flag_p1_active    ( false );
     
     // number of search points:
     nb_search_pts = stats.get_eval() - old_eval;
@@ -220,7 +234,6 @@ void NOMAD::Phase_One_Search::search ( NOMAD::Mads              & mads
     mads.set_pareto_front ( old_pareto_front );
     
     // restore parameters:
-    _p.set_VNS_SEARCH     ( old_VNS_trigger    );
     _p.set_F_TARGET       ( old_f_target       );
     _p.set_L_CURVE_TARGET ( old_lct            );
     _p.set_BB_OUTPUT_TYPE ( old_bbot           );
@@ -230,11 +243,13 @@ void NOMAD::Phase_One_Search::search ( NOMAD::Mads              & mads
     _p.set_STATS_FILE     ( old_stats_file_name , old_stats_file );
     _p.set_DISPLAY_STATS (old_ds);
     
+    _p.set_MULTI_NB_MADS_RUNS( old_multi_nb_mads_runs );
+    _p.set_MULTI_FORMULATION( old_multi_formulation );
+    
     _p.check ( false ,    // remove_history_file  = false
               true  ,    // remove_solution_file = true
               false    ); // remove_stats_file    = true
     
-    
     // counters:
     stats.add_p1_iterations ( stats.get_iterations() - old_it  );
     stats.add_p1_bbe        ( stats.get_bb_eval   () - old_bbe );
@@ -316,7 +331,7 @@ void NOMAD::Phase_One_Search::search ( NOMAD::Mads              & mads
         
         // stats_file:
         const std::string & stats_file_name = _p.get_stats_file_name();
-        if ( !stats_file_name.empty() && display_degree > NOMAD::NO_DISPLAY) 
+        if ( !stats_file_name.empty() && display_degree > NOMAD::NO_DISPLAY)
             ev_control.stats_file ( stats_file_name , bf , true , NULL );
         
         // display_stats
diff --git a/src/Phase_One_Search.hpp b/src/Phase_One_Search.hpp
index 46b57d6..f82c450 100644
--- a/src/Phase_One_Search.hpp
+++ b/src/Phase_One_Search.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Phase_One_Search.hpp
-  \brief  NOMAD::Search subclass for the phase one (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-09
-  \see    Phase_One_Search.cpp
-*/
+ \file   Phase_One_Search.hpp
+ \brief  NOMAD::Search subclass for the phase one (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-09
+ \see    Phase_One_Search.cpp
+ */
 #ifndef __PHASE_ONE_SEARCH__
 #define __PHASE_ONE_SEARCH__
 
@@ -47,47 +54,47 @@
 #include "Mads.hpp"
 
 namespace NOMAD {
-
-  /// NOMAD::Search subclass for the phase one.
-  /**
+    
+    /// NOMAD::Search subclass for the phase one.
+    /**
      - The phase one occurs when no feasible starting point has been given.
      - It consists in minimizing the constraint violations and it stops
-       as soon as a feasible point is found.
-  */
-  class Phase_One_Search : public NOMAD::Search , private NOMAD::Uncopyable {
-
-  public:
-
-    /// Constructor.
-    /**
-       \param p Parameters -- \b IN.
-    */
-    Phase_One_Search ( NOMAD::Parameters & p )
-      : NOMAD::Search ( p , NOMAD::P1_SEARCH ) {}
-  
-    /// Destructor.
-    virtual ~Phase_One_Search ( void ) {}
-
-    /// The phase one search.
-    /**
-       \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
-       \param nb_search_pts  Number of generated search points       -- \b OUT.
-       \param stop           Stop flag                               -- \b IN/OUT.
-       \param stop_reason    Stop reason                             -- \b OUT.
-       \param success        Type of success                         -- \b OUT.
-       \param count_search   Count or not the search                 -- \b OUT.
-       \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
-       \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
-    */
-    virtual void search ( NOMAD::Mads              & mads           ,
-			  int                      & nb_search_pts  ,
-			  bool                     & stop           ,
-			  NOMAD::stop_type         & stop_reason    ,
-			  NOMAD::success_type      & success        ,
-			  bool                     & count_search   ,
-			  const NOMAD::Eval_Point *& new_feas_inc   ,
-			  const NOMAD::Eval_Point *& new_infeas_inc   );
-  };
+     as soon as a feasible point is found.
+     */
+    class Phase_One_Search : public NOMAD::Search , private NOMAD::Uncopyable {
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p Parameters -- \b IN.
+         */
+        Phase_One_Search ( NOMAD::Parameters & p )
+        : NOMAD::Search ( p , NOMAD::P1_SEARCH ) {}
+        
+        /// Destructor.
+        virtual ~Phase_One_Search ( void ) {}
+        
+        /// The phase one search.
+        /**
+         \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
+         \param nb_search_pts  Number of generated search points       -- \b OUT.
+         \param stop           Stop flag                               -- \b IN/OUT.
+         \param stop_reason    Stop reason                             -- \b OUT.
+         \param success        Type of success                         -- \b OUT.
+         \param count_search   Count or not the search                 -- \b OUT.
+         \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
+         \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
+         */
+        virtual void search ( NOMAD::Mads              & mads           ,
+                             int                      & nb_search_pts  ,
+                             bool                     & stop           ,
+                             NOMAD::stop_type         & stop_reason    ,
+                             NOMAD::success_type      & success        ,
+                             bool                     & count_search   ,
+                             const NOMAD::Eval_Point *& new_feas_inc   ,
+                             const NOMAD::Eval_Point *& new_infeas_inc   );
+    };
 }
 
 #endif
diff --git a/src/Point.cpp b/src/Point.cpp
index fe27123..fd2ac13 100644
--- a/src/Point.cpp
+++ b/src/Point.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -58,18 +65,18 @@ int NOMAD::Point::_display_limit   = NOMAD::DEFAULT_POINT_DISPLAY_LIMIT;
 NOMAD::Point::Point ( int n , const NOMAD::Double & d ) : _n (n) , _coords (NULL)
 {
 #ifdef MEMORY_DEBUG
-	++NOMAD::Point::_cardinality;
-	if ( NOMAD::Point::_cardinality > NOMAD::Point::_max_cardinality )
-		++NOMAD::Point::_max_cardinality;
+    ++NOMAD::Point::_cardinality;
+    if ( NOMAD::Point::_cardinality > NOMAD::Point::_max_cardinality )
+        ++NOMAD::Point::_max_cardinality;
 #endif
-	if (_n > 0)
+    if (_n > 0)
     {
-		_coords = new NOMAD::Double [_n];  
-		if ( d.is_defined() )
-			std::fill ( _coords , _coords+_n , d );
-	}
-	else
-		_n = 0;
+        _coords = new NOMAD::Double [_n];
+        if ( d.is_defined() )
+            std::fill ( _coords , _coords+_n , d );
+    }
+    else
+        _n = 0;
 }
 
 /*-----------------------------------------------------------*/
@@ -78,17 +85,17 @@ NOMAD::Point::Point ( int n , const NOMAD::Double & d ) : _n (n) , _coords (NULL
 NOMAD::Point::Point ( const NOMAD::Point & p ) : _n (p._n) , _coords (NULL)
 {
 #ifdef MEMORY_DEBUG
-	++NOMAD::Point::_cardinality;
-	if ( NOMAD::Point::_cardinality >= NOMAD::Point::_max_cardinality )
-		++NOMAD::Point::_max_cardinality;
+    ++NOMAD::Point::_cardinality;
+    if ( NOMAD::Point::_cardinality >= NOMAD::Point::_max_cardinality )
+        ++NOMAD::Point::_max_cardinality;
 #endif
-	if ( _n > 0 )
+    if ( _n > 0 )
     {
-		NOMAD::Double       * p1 =   _coords = new NOMAD::Double [_n];
-		const NOMAD::Double * p2 = p._coords;
-		for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
-			*p1 = *p2;
-	}
+        NOMAD::Double       * p1 =   _coords = new NOMAD::Double [_n];
+        const NOMAD::Double * p2 = p._coords;
+        for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
+            *p1 = *p2;
+    }
 }
 
 /*-----------------------------------------------*/
@@ -97,9 +104,9 @@ NOMAD::Point::Point ( const NOMAD::Point & p ) : _n (p._n) , _coords (NULL)
 NOMAD::Point::~Point ( void )
 {
 #ifdef MEMORY_DEBUG
-	--NOMAD::Point::_cardinality;
+    --NOMAD::Point::_cardinality;
 #endif
-	delete [] _coords;
+    delete [] _coords;
 }
 
 /*-----------------------------------------------*/
@@ -108,23 +115,23 @@ NOMAD::Point::~Point ( void )
 /*-----------------------------------------------*/
 void NOMAD::Point::reset ( int n , const NOMAD::Double & d )
 {
-	if ( n <= 0 )
+    if ( n <= 0 )
     {
-		_n = 0; 
-		delete [] _coords;
-		_coords = NULL;
-	}
-	else
+        _n = 0;
+        delete [] _coords;
+        _coords = NULL;
+    }
+    else
     {
-		if ( _n != n )
+        if ( _n != n )
         {
-			delete [] _coords;
-			_n      = n;
-			_coords = new NOMAD::Double [_n];
-		}
-		if ( d.is_defined() )
-			std::fill ( _coords , _coords+_n , d );
-	}
+            delete [] _coords;
+            _n      = n;
+            _coords = new NOMAD::Double [_n];
+        }
+        if ( d.is_defined() )
+            std::fill ( _coords , _coords+_n , d );
+    }
 }
 
 /*----------------------------------------------------------------*/
@@ -132,31 +139,31 @@ void NOMAD::Point::reset ( int n , const NOMAD::Double & d )
 /*----------------------------------------------------------------*/
 void NOMAD::Point::resize ( int n )
 {
-	if ( n == _n )
-		return;
+    if ( n == _n )
+        return;
     
-	if ( n <= 0 )
+    if ( n <= 0 )
     {
-		_n = 0; 
-		delete [] _coords;
-		_coords = NULL;
-		return;
-	}
-	NOMAD::Double * new_coords = new NOMAD::Double [n];
-	if ( _coords )
+        _n = 0;
+        delete [] _coords;
+        _coords = NULL;
+        return;
+    }
+    NOMAD::Double * new_coords = new NOMAD::Double [n];
+    if ( _coords )
     {
-		int min = ( n < _n ) ? n : _n;
-		
-		NOMAD::Double       * p1 = new_coords;
-		const NOMAD::Double * p2 = _coords;
-		
-		for ( int i = 0 ; i < min ; ++i , ++p1 , ++p2 )
-			*p1 = *p2;
-		
-		delete [] _coords;
-	}
-	_coords = new_coords;
-	_n      = n;
+        int min = ( n < _n ) ? n : _n;
+        
+        NOMAD::Double       * p1 = new_coords;
+        const NOMAD::Double * p2 = _coords;
+        
+        for ( int i = 0 ; i < min ; ++i , ++p1 , ++p2 )
+            *p1 = *p2;
+        
+        delete [] _coords;
+    }
+    _coords = new_coords;
+    _n      = n;
 }
 
 /*-----------------------------------------------------------*/
@@ -166,25 +173,25 @@ void NOMAD::Point::resize ( int n )
 // const version:
 const NOMAD::Double & NOMAD::Point::operator [] ( int i ) const
 {
-	if ( !_coords )
-		throw NOMAD::Point::Not_Defined ( "Point.cpp" , __LINE__ ,
-										 "operator x[i] (const): 'x' not defined" );
-	if ( i < 0 || i >= _n )
-		throw NOMAD::Point::Bad_Access ( "Point.cpp" , __LINE__ ,
-										"operator x[i] (const): 'i' outside the array's bounds." );
-	return _coords[i];
+    if ( !_coords )
+        throw NOMAD::Point::Not_Defined ( "Point.cpp" , __LINE__ ,
+                                         "operator x[i] (const): 'x' not defined" );
+    if ( i < 0 || i >= _n )
+        throw NOMAD::Point::Bad_Access ( "Point.cpp" , __LINE__ ,
+                                        "operator x[i] (const): 'i' outside the array's bounds." );
+    return _coords[i];
 }
 
 // non-const version:
 NOMAD::Double & NOMAD::Point::operator [] ( int i )
 {
-	if ( !_coords )
-		throw NOMAD::Point::Not_Defined ( "Point.cpp" , __LINE__ ,
-										 "operator x[i]: 'x' not defined" );
-	if ( i < 0 || i >= _n )
-		throw NOMAD::Point::Bad_Access ( "Point.cpp" , __LINE__ ,
-										"operator x[i] (const): 'i' outside the array's bounds." );
-	return _coords[i];
+    if ( !_coords )
+        throw NOMAD::Point::Not_Defined ( "Point.cpp" , __LINE__ ,
+                                         "operator x[i]: 'x' not defined" );
+    if ( i < 0 || i >= _n )
+        throw NOMAD::Point::Bad_Access ( "Point.cpp" , __LINE__ ,
+                                        "operator x[i] (const): 'i' outside the array's bounds." );
+    return _coords[i];
 }
 
 /*-----------------------------------------------------------*/
@@ -192,25 +199,25 @@ NOMAD::Double & NOMAD::Point::operator [] ( int i )
 /*-----------------------------------------------------------*/
 const NOMAD::Point & NOMAD::Point::operator = ( const NOMAD::Point & p )
 {
-	if ( this == &p )
-		return *this;
-	
-	if ( _n != p._n )
+    if ( this == &p )
+        return *this;
+    
+    if ( _n != p._n )
     {
-		delete [] _coords;
-		_n = p._n;
-		if (_n > 0)
-			_coords = new NOMAD::Double [_n];
-		else
-			_coords = NULL;
-	}
-	
-	NOMAD::Double       * p1 =   _coords;
-	const NOMAD::Double * p2 = p._coords;
-	for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
-		*p1 = *p2;
-	
-	return *this;
+        delete [] _coords;
+        _n = p._n;
+        if (_n > 0)
+            _coords = new NOMAD::Double [_n];
+        else
+            _coords = NULL;
+    }
+    
+    NOMAD::Double       * p1 =   _coords;
+    const NOMAD::Double * p2 = p._coords;
+    for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
+        *p1 = *p2;
+    
+    return *this;
 }
 
 /*------------------------------------*/
@@ -218,36 +225,36 @@ const NOMAD::Point & NOMAD::Point::operator = ( const NOMAD::Point & p )
 /*      (*this = ref + k * delta)     */
 /*------------------------------------*/
 void NOMAD::Point::project_to_mesh ( const NOMAD::Point & ref   ,
-									const NOMAD::Point & delta ,
-									const NOMAD::Point & lb    ,
-									const NOMAD::Point & ub      )
+                                    const NOMAD::Point & delta ,
+                                    const NOMAD::Point & lb    ,
+                                    const NOMAD::Point & ub      )
 {
-	if ( delta._n != _n               ||
-		ref._n   != _n               ||
-		( lb._n > 0 && lb._n != _n ) ||
-		( ub._n > 0 && ub._n != _n )    )
-		throw NOMAD::Point::Bad_Operation ( "Point.cpp" , __LINE__ ,
-										   "Point::project_to_mesh(): invalid Point sizes" );
-	
-	NOMAD::Double * p  = _coords       ,
-	* pr = ref._coords   ,
-	* pd = delta._coords ,
-	* pl = lb._coords    ,
-	* pu = ub._coords;
-	int k;
-	
-	if ( lb._n == 0 && ub._n == 0 )
-		for ( k = 0 ; k < _n ; ++k , ++pr , ++p , ++pd )
-			p->project_to_mesh ( *pr , *pd );
-	else if ( lb._n == 0 )
-		for ( k = 0 ; k < _n ; ++k , ++pr , ++p , ++pd , ++pu )
-			p->project_to_mesh ( *pr , *pd , NOMAD::Double() , *pu );
-	else if ( ub._n == 0 )
-		for ( k = 0 ; k < _n ; ++k , ++pr , ++p , ++pd , ++pl )
-			p->project_to_mesh ( *pr , *pd , *pl );
-	else
-		for ( k = 0 ; k < _n ; ++k , ++pr , ++p , ++pd , ++pl , ++pu )
-			p->project_to_mesh ( *pr , *pd , *pl , *pu );
+    if ( delta._n != _n               ||
+        ref._n   != _n               ||
+        ( lb._n > 0 && lb._n != _n ) ||
+        ( ub._n > 0 && ub._n != _n )    )
+        throw NOMAD::Point::Bad_Operation ( "Point.cpp" , __LINE__ ,
+                                           "Point::project_to_mesh(): invalid Point sizes" );
+    
+    NOMAD::Double * p  = _coords       ,
+    * pr = ref._coords   ,
+    * pd = delta._coords ,
+    * pl = lb._coords    ,
+    * pu = ub._coords;
+    int k;
+    
+    if ( lb._n == 0 && ub._n == 0 )
+        for ( k = 0 ; k < _n ; ++k , ++pr , ++p , ++pd )
+            p->project_to_mesh ( *pr , *pd );
+    else if ( lb._n == 0 )
+        for ( k = 0 ; k < _n ; ++k , ++pr , ++p , ++pd , ++pu )
+            p->project_to_mesh ( *pr , *pd , NOMAD::Double() , *pu );
+    else if ( ub._n == 0 )
+        for ( k = 0 ; k < _n ; ++k , ++pr , ++p , ++pd , ++pl )
+            p->project_to_mesh ( *pr , *pd , *pl );
+    else
+        for ( k = 0 ; k < _n ; ++k , ++pr , ++p , ++pd , ++pl , ++pu )
+            p->project_to_mesh ( *pr , *pd , *pl , *pu );
 }
 
 
@@ -255,41 +262,41 @@ void NOMAD::Point::project_to_mesh ( const NOMAD::Point & ref   ,
 /*                             display                       */
 /*-----------------------------------------------------------*/
 void NOMAD::Point::display ( const NOMAD::Display & out ,
-							const std::string    & sep ,
-							int                    w   ,
-							int                    lim   ) const
+                            const std::string    & sep ,
+                            int                    w   ,
+                            int                    lim   ) const
 {
-	int nm1 = _n-1;
-	
-	// for a limited display of maximum lim elements:
-	if ( lim > 0 && lim < _n )
-	{
-		
-		int l1 = (lim + 1) / 2 , l2 = lim / 2 , i;
-		
-		// first coordinates:
-		for ( i = 0 ; i < l1 ; ++i )
-			out << std::setw ( w ) << _coords[i] << sep;
-		
-		// separator:
-		out << "..." << sep;
-		
-		// last coordinates:
-		for ( i = _n - l2 ; i < nm1 ; ++i )
-			out << std::setw ( w ) << _coords[i] << sep;
-	}
-	
-	// normal display (lim <= 0 or lim >= _n):
-	else 
-	{
-		const NOMAD::Double * p = _coords;
-		for ( int i = 0 ; i < nm1 ; ++i , ++p )
-			out << std::setw ( w ) << *p << sep;
-	}
-	
-	// last coordinate (different because there is no separator after that):
-	if ( _n > 0 )
-		out << std::setw ( w ) << _coords[nm1];
+    int nm1 = _n-1;
+    
+    // for a limited display of maximum lim elements:
+    if ( lim > 0 && lim < _n )
+    {
+        
+        int l1 = (lim + 1) / 2 , l2 = lim / 2 , i;
+        
+        // first coordinates:
+        for ( i = 0 ; i < l1 ; ++i )
+            out << std::setw ( w ) << _coords[i] << sep;
+        
+        // separator:
+        out << "..." << sep;
+        
+        // last coordinates:
+        for ( i = _n - l2 ; i < nm1 ; ++i )
+            out << std::setw ( w ) << _coords[i] << sep;
+    }
+    
+    // normal display (lim <= 0 or lim >= _n):
+    else
+    {
+        const NOMAD::Double * p = _coords;
+        for ( int i = 0 ; i < nm1 ; ++i , ++p )
+            out << std::setw ( w ) << *p << sep;
+    }
+    
+    // last coordinate (different because there is no separator after that):
+    if ( _n > 0 )
+        out << std::setw ( w ) << _coords[nm1];
 }
 
 /*-----------------------------------------------------------*/
@@ -297,12 +304,12 @@ void NOMAD::Point::display ( const NOMAD::Display & out ,
 /*-----------------------------------------------------------*/
 std::istream & NOMAD::operator >> ( std::istream & in , NOMAD::Point & p )
 {
-	int n = p.size();
-	for ( int k = 0 ; k < n ; ++k )
-		in >> p[k];
-	if ( in.fail() )
-		throw NOMAD::Point::Bad_Input ( "Point.cpp" , __LINE__ , "in >> x: bad input" );
-	return in;
+    int n = p.size();
+    for ( int k = 0 ; k < n ; ++k )
+        in >> p[k];
+    if ( in.fail() )
+        throw NOMAD::Point::Bad_Input ( "Point.cpp" , __LINE__ , "in >> x: bad input" );
+    return in;
 }
 
 /*-----------------------------------------------------------*/
@@ -311,19 +318,19 @@ std::istream & NOMAD::operator >> ( std::istream & in , NOMAD::Point & p )
 /*-----------------------------------------------------------*/
 void NOMAD::Point::set ( int n , const NOMAD::Double * a )
 {
-	if ( n <= 0 || !a )
-		return;
-	
-	if ( _n != n )
+    if ( n <= 0 || !a )
+        return;
+    
+    if ( _n != n )
     {
-		delete [] _coords;
-		_n      = n;
-		_coords = new NOMAD::Double [_n];
-	}
-	
-	NOMAD::Double * p = _coords;
-	for ( int k = 0 ; k < _n ; ++k , ++p , ++a )
-		*p = *a;
+        delete [] _coords;
+        _n      = n;
+        _coords = new NOMAD::Double [_n];
+    }
+    
+    NOMAD::Double * p = _coords;
+    for ( int k = 0 ; k < _n ; ++k , ++p , ++a )
+        *p = *a;
 }
 
 /*-----------------------------------------------------------*/
@@ -331,13 +338,13 @@ void NOMAD::Point::set ( int n , const NOMAD::Double * a )
 /*-----------------------------------------------------------*/
 bool NOMAD::Point::is_complete ( void ) const
 {
-	if ( _n <= 0 )
-		return false;
-	const NOMAD::Double * p = _coords;
-	for ( int i = 0 ; i < _n ; ++i , ++p )
-		if ( !p->is_defined() )
-			return false;
-	return true;
+    if ( _n <= 0 )
+        return false;
+    const NOMAD::Double * p = _coords;
+    for ( int i = 0 ; i < _n ; ++i , ++p )
+        if ( !p->is_defined() )
+            return false;
+    return true;
 }
 
 /*---------------------------------------------------------------*/
@@ -345,13 +352,13 @@ bool NOMAD::Point::is_complete ( void ) const
 /*---------------------------------------------------------------*/
 bool NOMAD::Point::is_defined ( void ) const
 {
-	if ( _n <= 0 )
-		return false;
-	const NOMAD::Double * p = _coords;
-	for ( int i = 0 ; i < _n ; ++i , ++p )
-		if ( p->is_defined() )
-			return true;
-	return false;
+    if ( _n <= 0 )
+        return false;
+    const NOMAD::Double * p = _coords;
+    for ( int i = 0 ; i < _n ; ++i , ++p )
+        if ( p->is_defined() )
+            return true;
+    return false;
 }
 
 /*---------------------------------------------------------------*/
@@ -359,25 +366,25 @@ bool NOMAD::Point::is_defined ( void ) const
 /*---------------------------------------------------------------*/
 int NOMAD::Point::nb_defined ( void ) const
 {
-	const NOMAD::Double * p = _coords;
-	int                   k = 0;
-	for ( int i = 0 ; i < _n ; ++i , ++p )
-		if ( p->is_defined() )
-			++k;
-	return k;
-} 
+    const NOMAD::Double * p = _coords;
+    int                   k = 0;
+    for ( int i = 0 ; i < _n ; ++i , ++p )
+        if ( p->is_defined() )
+            ++k;
+    return k;
+}
 
 /*-----------------------------------------------------------*/
 /*                           negation                        */
 /*-----------------------------------------------------------*/
 const NOMAD::Point NOMAD::Point::operator - ( void ) const
 {
-	NOMAD::Point          tmp (_n);
-	NOMAD::Double       * p1 = tmp._coords;
-	const NOMAD::Double *  p2 = _coords;
-	for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
-		*p1 = - *p2;
-	return tmp;
+    NOMAD::Point          tmp (_n);
+    NOMAD::Double       * p1 = tmp._coords;
+    const NOMAD::Double *  p2 = _coords;
+    for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
+        *p1 = - *p2;
+    return tmp;
 }
 
 /*----------------------------------------------------------*/
@@ -385,10 +392,10 @@ const NOMAD::Point NOMAD::Point::operator - ( void ) const
 /*----------------------------------------------------------*/
 const NOMAD::Point & NOMAD::Point::operator *= ( const NOMAD::Double & d )
 {
-	NOMAD::Double * p = _coords;
-	for ( int k = 0 ; k < _n ; ++k , ++p )
-		*p *= d;
-	return *this;
+    NOMAD::Double * p = _coords;
+    for ( int k = 0 ; k < _n ; ++k , ++p )
+        *p *= d;
+    return *this;
 }
 
 /*----------------------------------------------------------*/
@@ -396,18 +403,18 @@ const NOMAD::Point & NOMAD::Point::operator *= ( const NOMAD::Double & d )
 /*----------------------------------------------------------*/
 const NOMAD::Point NOMAD::Point::operator * ( const NOMAD::Point & p ) const
 {
-	if ( p._n != _n )
-		throw NOMAD::Point::Bad_Operation ( "Point.cpp" , __LINE__ ,
-										   "x * y: x.size != y.size" );
-	NOMAD::Point          tmp ( _n );
-	NOMAD::Double       * p1 = tmp._coords;
-	const NOMAD::Double * p2 =     _coords;
-	const NOMAD::Double * p3 =   p._coords;
-    
-	for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 , ++p3 )
-		*p1 = *p2 * *p3;
-	
-	return tmp;
+    if ( p._n != _n )
+        throw NOMAD::Point::Bad_Operation ( "Point.cpp" , __LINE__ ,
+                                           "x * y: x.size != y.size" );
+    NOMAD::Point          tmp ( _n );
+    NOMAD::Double       * p1 = tmp._coords;
+    const NOMAD::Double * p2 =     _coords;
+    const NOMAD::Double * p3 =   p._coords;
+    
+    for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 , ++p3 )
+        *p1 = *p2 * *p3;
+    
+    return tmp;
 }
 
 /*----------------------------------------------------------*/
@@ -415,18 +422,18 @@ const NOMAD::Point NOMAD::Point::operator * ( const NOMAD::Point & p ) const
 /*----------------------------------------------------------*/
 const NOMAD::Point NOMAD::Point::operator / ( const NOMAD::Point & p ) const
 {
-	if ( p._n != _n )
-		throw NOMAD::Point::Bad_Operation ( "Point.cpp" , __LINE__ ,
-										   "x / y: x.size != y.size" );
-	NOMAD::Point          tmp ( _n );
-	NOMAD::Double       * p1 = tmp._coords;
-	const NOMAD::Double * p2 =     _coords;
-	const NOMAD::Double * p3 =   p._coords;
-    
-	for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 , ++p3 )
-		*p1 = *p2 / *p3;
-	
-	return tmp;
+    if ( p._n != _n )
+        throw NOMAD::Point::Bad_Operation ( "Point.cpp" , __LINE__ ,
+                                           "x / y: x.size != y.size" );
+    NOMAD::Point          tmp ( _n );
+    NOMAD::Double       * p1 = tmp._coords;
+    const NOMAD::Double * p2 =     _coords;
+    const NOMAD::Double * p3 =   p._coords;
+    
+    for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 , ++p3 )
+        *p1 = *p2 / *p3;
+    
+    return tmp;
 }
 
 /*----------------------------------------------------------*/
@@ -434,18 +441,18 @@ const NOMAD::Point NOMAD::Point::operator / ( const NOMAD::Point & p ) const
 /*----------------------------------------------------------*/
 const NOMAD::Point NOMAD::Point::operator + ( const NOMAD::Point & p ) const
 {
-	if ( p._n != _n )
-		throw NOMAD::Point::Bad_Operation ( "Point.cpp" , __LINE__ ,
-										   "x + y: x.size != y.size" );
-	NOMAD::Point          tmp ( _n );
-	NOMAD::Double       * p1 = tmp._coords;
-	const NOMAD::Double * p2 =     _coords;
-	const NOMAD::Double * p3 =   p._coords;
-    
-	for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 , ++p3 )
-		*p1 = *p2 + *p3;
-	
-	return tmp;
+    if ( p._n != _n )
+        throw NOMAD::Point::Bad_Operation ( "Point.cpp" , __LINE__ ,
+                                           "x + y: x.size != y.size" );
+    NOMAD::Point          tmp ( _n );
+    NOMAD::Double       * p1 = tmp._coords;
+    const NOMAD::Double * p2 =     _coords;
+    const NOMAD::Double * p3 =   p._coords;
+    
+    for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 , ++p3 )
+        *p1 = *p2 + *p3;
+    
+    return tmp;
 }
 
 /*----------------------------------------------------------*/
@@ -453,18 +460,18 @@ const NOMAD::Point NOMAD::Point::operator + ( const NOMAD::Point & p ) const
 /*----------------------------------------------------------*/
 const NOMAD::Point NOMAD::Point::operator - ( const NOMAD::Point & p ) const
 {
-	if ( p._n != _n )
-		throw NOMAD::Point::Bad_Operation ( "Point.cpp" , __LINE__ ,
-										   "x - y: x.size != y.size" );
-	NOMAD::Point          tmp ( _n );
-	NOMAD::Double       * p1 = tmp._coords;
-	const NOMAD::Double * p2 =     _coords;
-	const NOMAD::Double * p3 =   p._coords;
-    
-	for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 , ++p3 )
-		*p1 = *p2 - *p3;
-	
-	return tmp;
+    if ( p._n != _n )
+        throw NOMAD::Point::Bad_Operation ( "Point.cpp" , __LINE__ ,
+                                           "x - y: x.size != y.size" );
+    NOMAD::Point          tmp ( _n );
+    NOMAD::Double       * p1 = tmp._coords;
+    const NOMAD::Double * p2 =     _coords;
+    const NOMAD::Double * p3 =   p._coords;
+    
+    for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 , ++p3 )
+        *p1 = *p2 - *p3;
+    
+    return tmp;
 }
 
 /*--------------------------------------------------------------------------*/
@@ -473,28 +480,28 @@ const NOMAD::Point NOMAD::Point::operator - ( const NOMAD::Point & p ) const
 /*--------------------------------------------------------------------------*/
 bool NOMAD::Point::operator < ( const NOMAD::Point & p ) const
 {
-	if ( this == &p )
-		return false;
-	
-	if ( _n < p._n )
-		return true;
-	if ( _n > p._n )
-		return false;
-	
-	const NOMAD::Double * p1 =   _coords;
-	const NOMAD::Double * p2 = p._coords;
-	
-	for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
+    if ( this == &p )
+        return false;
+    
+    if ( _n < p._n )
+        return true;
+    if ( _n > p._n )
+        return false;
+    
+    const NOMAD::Double * p1 =   _coords;
+    const NOMAD::Double * p2 = p._coords;
+    
+    for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
     {
-		
-		if ( *p1 < *p2 )
-			return true;
-		
-		if ( *p1 > *p2 )
-			return false;
-	}
-	
-	return false;
+        
+        if ( *p1 < *p2 )
+            return true;
+        
+        if ( *p1 > *p2 )
+            return false;
+    }
+    
+    return false;
 }
 
 /*---------------------------------------------------------------------*/
@@ -502,40 +509,40 @@ bool NOMAD::Point::operator < ( const NOMAD::Point & p ) const
 /*---------------------------------------------------------------------*/
 bool NOMAD::Point::comp_with_undef ( const NOMAD::Point & p ) const
 {
-	if ( this == &p )
-		return false;
-	
-	if ( _n < p._n )
-		return true;
-	if ( _n > p._n )
-		return false;
-	
-	const NOMAD::Double * p1 =   _coords;
-	const NOMAD::Double * p2 = p._coords;
-	
-	bool p1d , p2d;
-	
-	for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
+    if ( this == &p )
+        return false;
+    
+    if ( _n < p._n )
+        return true;
+    if ( _n > p._n )
+        return false;
+    
+    const NOMAD::Double * p1 =   _coords;
+    const NOMAD::Double * p2 = p._coords;
+    
+    bool p1d , p2d;
+    
+    for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
     {
-		p1d = p1->is_defined();
-		p2d = p2->is_defined();
-		
-		if ( !p1d && !p2d )
-			continue;
-		
-		if ( !p1d )
-			return true;
-		
-		if ( !p2d )
-			return false;
-		
-		if ( *p1 < *p2 )
-			return true;
-		
-		if ( *p1 > *p2 )
-			return false;
-	}
-	return false;
+        p1d = p1->is_defined();
+        p2d = p2->is_defined();
+        
+        if ( !p1d && !p2d )
+            continue;
+        
+        if ( !p1d )
+            return true;
+        
+        if ( !p2d )
+            return false;
+        
+        if ( *p1 < *p2 )
+            return true;
+        
+        if ( *p1 > *p2 )
+            return false;
+    }
+    return false;
 }
 
 /*-----------------------------------------------------------*/
@@ -543,18 +550,18 @@ bool NOMAD::Point::comp_with_undef ( const NOMAD::Point & p ) const
 /*-----------------------------------------------------------*/
 bool NOMAD::Point::operator == ( const NOMAD::Point & p ) const
 {
-	if ( this == &p )
-		return true;
-	if ( p._n != _n )
-		return false;
-	
-	const NOMAD::Double * p1 =   _coords;
-	const NOMAD::Double * p2 = p._coords;
-	for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
-		if ( *p1 != *p2 )
-			return false;
-	
-	return true;
+    if ( this == &p )
+        return true;
+    if ( p._n != _n )
+        return false;
+    
+    const NOMAD::Double * p1 =   _coords;
+    const NOMAD::Double * p2 = p._coords;
+    for ( int k = 0 ; k < _n ; ++k , ++p1 , ++p2 )
+        if ( *p1 != *p2 )
+            return false;
+    
+    return true;
 }
 
 /*-----------------------------------------------------------*/
@@ -562,23 +569,43 @@ bool NOMAD::Point::operator == ( const NOMAD::Point & p ) const
 /*-----------------------------------------------------------*/
 const NOMAD::Double NOMAD::Point::get_angle ( const NOMAD::Point & x ) const
 {
-	if ( _n != x._n )
-		return NOMAD::Double();
-	
-	NOMAD::Double inner_product = 0.0 , norm_1 = 0.0 , norm_2 = 0.0;
-	
-	const NOMAD::Double * p1 =   _coords;
-	const NOMAD::Double * p2 = x._coords;
-	
-	for ( int i = 0 ; i < _n ; ++i , ++p1 , ++p2 )
+    if ( _n != x._n )
+        return NOMAD::Double();
+    
+    NOMAD::Double inner_product = 0.0 , norm_1 = 0.0 , norm_2 = 0.0;
+    
+    const NOMAD::Double * p1 =   _coords;
+    const NOMAD::Double * p2 = x._coords;
+    
+    for ( int i = 0 ; i < _n ; ++i , ++p1 , ++p2 )
     {
-		norm_1        += *p1 * *p1;
-		norm_2        += *p2 * *p2;
-		inner_product += *p1 * *p2;
-	}
-	
-	if ( norm_1 == 0.0 || norm_2 == 0.0 )
-		return NOMAD::Double();
-	
-	return acos ( ( inner_product / ( norm_1.sqrt() * norm_2.sqrt() ) ).value() );
+        norm_1        += *p1 * *p1;
+        norm_2        += *p2 * *p2;
+        inner_product += *p1 * *p2;
+    }
+    
+    if ( norm_1 == 0.0 || norm_2 == 0.0 )
+        return NOMAD::Double();
+    
+    return acos ( ( inner_product / ( norm_1.sqrt() * norm_2.sqrt() ) ).value() );
+}
+
+
+/*-----------------------------------------------------------*/
+/*                      get coord                            */
+/*-----------------------------------------------------------*/
+const NOMAD::Double NOMAD::Point::get_coord (int i) const
+{
+    return _coords[i];
+}
+
+
+/*-----------------------------------------------------------*/
+/*  Set the coordinate j to value v                          */
+/*-----------------------------------------------------------*/
+void NOMAD::Point::set_coord ( int j , const NOMAD::Double v )
+{
+    if (( j < 0 ) || (j >= _n))
+        return;
+    _coords[j] = v;
 }
diff --git a/src/Point.hpp b/src/Point.hpp
index 344ade6..0a565ae 100644
--- a/src/Point.hpp
+++ b/src/Point.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Point.hpp
-  \brief  Custom class for points (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-05
-  \see    Point.cpp
-*/
+ \file   Point.hpp
+ \brief  Custom class for points (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-05
+ \see    Point.cpp
+ */
 #ifndef __POINT__
 #define __POINT__
 
@@ -48,403 +55,427 @@
 #include "Double.hpp"
 
 namespace NOMAD {
-
-  /// \c accumulate operator for \c squared_norm().
-  struct squared_norm_op {
-    /** This function returns \c d1+d2^2 and is designed as an
-	\c accumulate operator.
-	\param d1 The NOMAD::Double \c d1 -- \b IN.
-	\param d2 The NOMAD::Double \c d2 -- \b IN.
-	\return A third NOMAD::Double equal to \c d1+d2^2.
-    */
-    NOMAD::Double operator () ( const NOMAD::Double & d1 , const NOMAD::Double & d2 ) {
-      return d1 + d2.pow2();
-    }
-  };
-
-  /// \c accumulate operator for \c size_of().
-  struct size_of_op {
-    /** This function returns \c i+size_of(d) and is designed as an
-	\c accumulate operator.
-	\param i The integer \c i -- \b IN.
-	\param d The NOMAD::Double \c d -- \b IN.
-	\return An integer equal to \c i+size_of(d).
-    */
-    int operator () ( int i , const NOMAD::Double & d ) {
-      return i + d.size_of();
-    }
-  };
-
-  /// Custom class for points.
-  /**
-     Coordinates are NOMAD::Double objects.
-  */
-  class Point {
-
-  private:
-
-#ifdef MEMORY_DEBUG
-    static int _cardinality;     ///< Number of NOMAD::Point objects in memory.
-    static int _max_cardinality; ///< Max number of NOMAD::Point objects in memory.
-#endif
-
-    /**
-       Max number of coordinates to display.
-       Default to 20, debug value at -1 (no limit).
-    */
-    static int _display_limit;
-   
-    int             _n;      ///< Dimension of the point.
-    NOMAD::Double * _coords; ///< Coordinates of the point.
-
-  public:
-
-    /*-------------------------------------------------------------------*/
-
-    /// Exception class for a bad access with NOMAD::Point objects.
-    class Bad_Access : public NOMAD::Exception {
-    public:
-      /// Constructor.
-      Bad_Access ( const std::string & file ,
-		   int                 line ,
-		   const std::string & msg    )
-	: NOMAD::Exception ( file , line , msg ) {}
-    };
-
-    /// Exception class for NOMAD::Point objects that are not defined.
-    class Not_Defined : public NOMAD::Exception {
-    public:
-      /// Constructor.
-      Not_Defined ( const std::string & file ,
-		    int                 line ,
-		    const std::string & msg    )
-	: NOMAD::Exception ( file , line , msg ) {}
+    
+    /// \c accumulate operator for \c squared_norm().
+    struct squared_norm_op {
+        /** This function returns \c d1+d2^2 and is designed as an
+         \c accumulate operator.
+         \param d1 The NOMAD::Double \c d1 -- \b IN.
+         \param d2 The NOMAD::Double \c d2 -- \b IN.
+         \return A third NOMAD::Double equal to \c d1+d2^2.
+         */
+        NOMAD::Double operator () ( const NOMAD::Double & d1 , const NOMAD::Double & d2 )
+        {
+            return d1 + d2.pow2();
+        }
     };
-
-    /// Exception class for input errors with NOMAD::Point objects.
-    class Bad_Input : public NOMAD::Exception {
-    public:
-      /// Constructor.
-      Bad_Input ( const std::string & file ,
-		  int                 line ,
-		  const std::string & msg    )
-	: NOMAD::Exception ( file , line , msg ) {}
+    
+    /// \c accumulate operator for \c size_of().
+    struct size_of_op {
+        /** This function returns \c i+size_of(d) and is designed as an
+         \c accumulate operator.
+         \param i The integer \c i -- \b IN.
+         \param d The NOMAD::Double \c d -- \b IN.
+         \return An integer equal to \c i+size_of(d).
+         */
+        int operator () ( int i , const NOMAD::Double & d )
+        {
+            return i + d.size_of();
+        }
     };
     
-    /// Exception class for bad operations with NOMAD::Point objects.
-    class Bad_Operation : public NOMAD::Exception {
+    /// Custom class for points.
+    /**
+     Coordinates are NOMAD::Double objects.
+     */
+    class Point {
+        
+    private:
+        
+#ifdef MEMORY_DEBUG
+        static int _cardinality;     ///< Number of NOMAD::Point objects in memory.
+        static int _max_cardinality; ///< Max number of NOMAD::Point objects in memory.
+#endif
+        
+        /**
+         Max number of coordinates to display.
+         Default to 20, debug value at -1 (no limit).
+         */
+        static int _display_limit;
+        
+        int             _n;      ///< Dimension of the point.
+        NOMAD::Double * _coords; ///< Coordinates of the point.
+        
     public:
-      /// Constructor.
-      Bad_Operation ( const std::string & file ,
-		      int                 line ,
-		      const std::string & msg    )
-	: NOMAD::Exception ( file , line , msg ) {}
-    };
-
-    /*-------------------------------------------------------------------*/
-
+        
+        /*-------------------------------------------------------------------*/
+        
+        /// Exception class for a bad access with NOMAD::Point objects.
+        class Bad_Access : public NOMAD::Exception {
+        public:
+            /// Constructor.
+            Bad_Access ( const std::string & file ,
+                        int                 line ,
+                        const std::string & msg    )
+            : NOMAD::Exception ( file , line , msg ) {}
+        };
+        
+        /// Exception class for NOMAD::Point objects that are not defined.
+        class Not_Defined : public NOMAD::Exception {
+        public:
+            /// Constructor.
+            Not_Defined ( const std::string & file ,
+                         int                 line ,
+                         const std::string & msg    )
+            : NOMAD::Exception ( file , line , msg ) {}
+        };
+        
+        /// Exception class for input errors with NOMAD::Point objects.
+        class Bad_Input : public NOMAD::Exception {
+        public:
+            /// Constructor.
+            Bad_Input ( const std::string & file ,
+                       int                 line ,
+                       const std::string & msg    )
+            : NOMAD::Exception ( file , line , msg ) {}
+        };
+        
+        /// Exception class for bad operations with NOMAD::Point objects.
+        class Bad_Operation : public NOMAD::Exception {
+        public:
+            /// Constructor.
+            Bad_Operation ( const std::string & file ,
+                           int                 line ,
+                           const std::string & msg    )
+            : NOMAD::Exception ( file , line , msg ) {}
+        };
+        
+        /*-------------------------------------------------------------------*/
+        
 #ifdef MEMORY_DEBUG
-    /// Access to the number of NOMAD::Point objects in memory.
-    /**
-       \return The number of NOMAD::Point objects in memory.
-    */
-    static int get_cardinality ( void ) { return Point::_cardinality;     }
-
-    /// Access to the max number of NOMAD::Point objects in memory.
-    /**
-       \return The max number of NOMAD::Point objects in memory.
-    */
-    static int get_max_cardinality ( void ) { return Point::_max_cardinality; }
+        /// Access to the number of NOMAD::Point objects in memory.
+        /**
+         \return The number of NOMAD::Point objects in memory.
+         */
+        static int get_cardinality ( void ) { return Point::_cardinality;     }
+        
+        /// Access to the max number of NOMAD::Point objects in memory.
+        /**
+         \return The max number of NOMAD::Point objects in memory.
+         */
+        static int get_max_cardinality ( void ) { return Point::_max_cardinality; }
 #endif
+        
+        /// Constructor.
+        /**
+         \param n Dimension of the point -- \b IN --\b optional (default = 0).
+         \param d Initial value for all coordinates
+         -- \b IN -- \b optional (default = undefined real).
+         */
+        explicit Point ( int n = 0 , const NOMAD::Double & d = NOMAD::Double() );
+        
+        /// Copy constructor.
+        /**
+         \param p The copied object -- \b IN.
+         */
+        Point ( const Point & p );
+        
+        /// Affectation operator.
+        /**
+         \param p The right-hand side object -- \b IN.
+         \return \c *this as the result of the affectation.
+         */
+        const Point & operator = ( const Point & p );
+        
+        /// Destructor.
+        virtual ~Point ( void );
+        
+        /// Change the NOMAD::Point dimension.
+        /**
+         Sets also all coordinates to d.
+         \param n New dimension -- \b IN --\b optional (default = 0).
+         \param d Initial value for all coordinates
+         -- \b IN -- \b optional (default = undefined real).
+         */
+        void reset ( int n = 0 , const NOMAD::Double & d = NOMAD::Double() );
+        
+        /// Clear the point.
+        virtual void clear ( void ) { reset(); }
+        
+        /// Change the NOMAD::Point dimension.
+        /**
+         The values are kept.
+         \param n New dimension of the point -- \b IN.
+         */
+        void resize ( int n );
+        
+        /// Set a new display limit.
+        /**
+         \param dl An integer for the new display limit -- \b IN.
+         */
+        static void set_display_limit ( int dl ) { Point::_display_limit = dl; }
+        
+        /// Access to the display limit.
+        /**
+         \return The display limit.
+         */
+        static int get_display_limit ( void ) { return Point::_display_limit; }
+        
+        /// Const operator \c [].
+        /**
+         \param i The index (0 for the first element) -- \b IN.
+         \return The \c (i+1)th coordinate.
+         */
+        const NOMAD::Double & operator [] ( int i ) const;
+        
+        /// Non-const operator \c [].
+        /**
+         \param i The index (0 for the first element) -- \b IN.
+         \return The \c (i+1)th coordinate.
+         */
+        NOMAD::Double & operator [] ( int i );
+        
+        /// Size of the point in memory.
+        /**
+         \return An integer for the size of the point in bytes.
+         */
+        virtual int size_of ( void ) const
+        {
+            return std::accumulate ( _coords                      ,
+                                    _coords+_n                   ,
+                                    static_cast<int>(sizeof(_n)) ,
+                                    size_of_op()                   );
+        }
+        
+        /// Access to the dimension of the point.
+        /**
+         \return The dimension of the point.
+         */
+        int size ( void ) const { return _n; }
+        
+        /// Test if the point is empty (dimension equal to zero).
+        /**
+         \return A boolean equal to \c true if the point is empty.
+         */
+        bool empty ( void ) const { return _n==0; }
+        
+        /// Set all the coordinates to a specifi value.
+        /**
+         \param d The value for all coordinates -- \b IN.
+         */
+        void set ( const NOMAD::Double & d ) const
+        {
+            std::fill ( _coords , _coords+_n , d );
+        }
+        
+        /// Set the coordinates with an array of reals.
+        /**
+         \param n Dimension of the point -- \b IN.
+         \param a Array of size \c n of reals -- \b IN.
+         */
+        void set ( int n , const NOMAD::Double * a );
+        
+        /// Check if all the coordinates are defined.
+        /**
+         \return A boolean equal to \c true if all the coordinates are defined.
+         */
+        bool is_complete ( void ) const;
+        
+        /// Check if at least one coordinate is defined.
+        /**
+         This virtual method is redefined in class NOMAD::Direction.
+         \return A boolean equal to \c true if at least one coordinate is defined.
+         */
+        virtual bool is_defined ( void ) const;
+        
+        /// Count the number of defined values.
+        /**
+         \return The number of values that are defined.
+         */
+        int nb_defined ( void ) const;
+        
+        /// Squared norm of the point.
+        /**
+         \return A NOMAD::Double with the squared norm of the point.
+         */
+        const NOMAD::Double squared_norm ( void ) const
+        {
+            return std::accumulate ( _coords            ,
+                                    _coords+_n         ,
+                                    NOMAD::Double(0.0) ,
+                                    squared_norm_op()    );
+        }
+        
+        /// Norm of the point.
+        /**
+         \return A NOMAD::Double with the norm of the point.
+         */
+        const NOMAD::Double norm ( void ) const { return squared_norm().sqrt(); }
+        
+        /// Dot product with another point \c x.
+        /**
+         \param x The other point \c x -- \b IN.
+         \return The dot product \c *this \c . \c x.
+         */
+        const NOMAD::Double dot_product ( const Point & x ) const
+        {
+            return std::inner_product ( _coords , _coords+_n , x._coords , NOMAD::Double(0.0) );
+        }
+        
+        /// Angle with another point \c x.
+        /**
+         \param x The other point \c x -- \b IN.
+         \return The angle between \c *this and \c x.
+         */
+        const NOMAD::Double get_angle ( const Point & x ) const;
+        
+        /// Mutiplication with a scalar.
+        /**
+         - This implements \c *this \c = \c d \c * \c *this.
+         - The current object \c *this is modified.
+         \param d The scalar -- \b IN.
+         \return The point times \c d.
+         */
+        const Point & operator *= ( const NOMAD::Double & d );
+        
+        /// Multiplication with another point.
+        /**
+         - The multiplication is done coordinate by coordinate.
+         - The current object \c *this is not modified.
+         \param p The other point -- \b IN.
+         \return A third point equal to \c *this \c .* \c p.
+         */
+        const Point operator * ( const Point & p ) const;
+        
+        /// Division with another point.
+        /**
+         - The division is done coordinate by coordinate.
+         - The current object \c *this is not modified.
+         \param p The other point -- \b IN.
+         \return A third point equal to \c *this \c ./ \c p.
+         */
+        const Point operator / ( const Point & p ) const;
+        
+        /// Addition with another point.
+        /**
+         The current object \c *this is not modified.
+         \param p The other point -- \b IN.
+         \return A third point equal to \c *this \c + \c p.
+         */
+        const Point operator + ( const Point & p ) const;
+        
+        /// Substraction with another point.
+        /**
+         The current object \c *this is not modified.
+         \param p The other point -- \b IN.
+         \return A third point equal to \c *this \c - \c p.
+         */
+        const Point operator - ( const Point & p ) const;
+        
+        /// Negation.
+        /**
+         The current object \c *this is not modified.
+         \return A new point equal to \c -*this.
+         */
+        const Point operator - ( void ) const;
+        
+        /// Comparison operator \c <.
+        /**
+         \param p The right-hand side object -- \b IN.
+         \return A boolean equal to \c true if  \c *this \c < \c p.
+         */
+        virtual bool operator <  ( const Point & p ) const;
+        
+        
+        /// Comparison operator \c ==.
+        /**
+         \param p The right-hand side object -- \b IN.
+         \return A boolean equal to \c true if  \c *this \c == \c p.
+         */
+        bool operator == ( const Point & p ) const;
+        
+        /// Comparison operator \c !=.
+        /**
+         \param p The right-hand side object -- \b IN.
+         \return A boolean equal to \c true if  \c *this \c != \c p.
+         */
+        bool operator != ( const Point & p ) const { return !(*this == p); }
+        
+        /// The same as operator \c < but with consideration of undefined values.
+        /**
+         \param p The right-hand side object -- \b IN.
+         \return A boolean equal to \c true if \c *this \c < \c p.
+         */
+        bool comp_with_undef ( const Point & p ) const;
+        
+        /// Projection to the mesh.
+        /**
+         Projection to the mesh of size delta
+         ( \c *this \c = \c ref \c + \c k \c * \c delta ).
+         \param ref   Reference for projection -- \b IN.
+         \param delta Mesh size parameter -- \b IN.
+         \param lb    Lower bound -- \b IN -- \b optional
+         (default = undefined NOMAD::Point).
+         \param ub    Upper bound -- \b IN -- \b optional
+         (default = undefined NOMAD::Point).
+         */
+        void project_to_mesh ( const Point & ref          ,
+                              const Point & delta        ,
+                              const Point & lb = Point() ,
+                              const Point & ub = Point()   );
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         \param sep A string that is used as a separator between the coordinates
+         -- \b IN --\b optional (default = one space).
+         \param w   An integer indicating a width for the display of
+         each coordinate -- \b IN -- \b optional
+         (default = -1, no limit).
+         \param lim Max number of coordinates to display -- \b IN
+         -- \b optional (default = -1, no limit).
+         */
+        virtual void display ( const NOMAD::Display & out       ,
+                              const std::string    & sep = " " ,
+                              int                    w   = -1  ,
+                              int                    lim = -1    ) const;
+        
+        
+        /// Set the coordinate j with a specific value.
+        /**
+         \param j Coordinate to be set -- \b IN.
+         \param v Value to put in jth coordinate -- \b IN.
+         */
+        void set_coord ( int j , const NOMAD::Double v );
+        
+        /// get i^th coordinate of the point.
+        /**
+         \param i The index of the coordinate -- \b IN.
+         \return The coordinate \c i of the point.
+         */
+        const NOMAD::Double get_coord ( int i ) const;
+        
+        
+        
+    };
     
-    /// Constructor.
-    /**
-       \param n Dimension of the point -- \b IN --\b optional (default = 0).
-       \param d Initial value for all coordinates
-       -- \b IN -- \b optional (default = undefined real).
-    */
-    explicit Point ( int n = 0 , const NOMAD::Double & d = NOMAD::Double() );
-    
-    /// Copy constructor.
-    /**
-       \param p The copied object -- \b IN.
-    */
-    Point ( const Point & p );
-    
-    /// Affectation operator.
-    /**
-       \param p The right-hand side object -- \b IN.
-       \return \c *this as the result of the affectation.
-    */
-    const Point & operator = ( const Point & p );
-
-    /// Destructor.
-    virtual ~Point ( void );
-
-    /// Change the NOMAD::Point dimension.
-    /**
-       Sets also all coordinates to d.
-       \param n New dimension -- \b IN --\b optional (default = 0).
-       \param d Initial value for all coordinates
-       -- \b IN -- \b optional (default = undefined real).
-    */
-    void reset ( int n = 0 , const NOMAD::Double & d = NOMAD::Double() );
-    
-    /// Clear the point.
-    virtual void clear ( void ) { reset(); }
-    
-    /// Change the NOMAD::Point dimension.
-    /**
-       The values are kept.
-       \param n New dimension of the point -- \b IN.
-    */
-    void resize ( int n );
-    
-    /// Set a new display limit.
-    /**
-       \param dl An integer for the new display limit -- \b IN.
-    */
-    static void set_display_limit ( int dl ) { Point::_display_limit = dl; }
-
-    /// Access to the display limit.
-    /**
-       \return The display limit.
-    */
-    static int get_display_limit ( void ) { return Point::_display_limit; }
-    
-    /// Const operator \c [].
-    /**
-       \param i The index (0 for the first element) -- \b IN.
-       \return The \c (i+1)th coordinate.
-    */
-    const NOMAD::Double & operator [] ( int i ) const;
-
-    /// Non-const operator \c [].
-    /**
-       \param i The index (0 for the first element) -- \b IN.
-       \return The \c (i+1)th coordinate.
-    */
-    NOMAD::Double & operator [] ( int i );
-    
-    /// Size of the point in memory.
-    /**
-       \return An integer for the size of the point in bytes.
-    */
-    virtual int size_of ( void ) const
-    {
-      return std::accumulate ( _coords                      ,
-			       _coords+_n                   ,
-			       static_cast<int>(sizeof(_n)) ,
-			       size_of_op()                   );
-    }
-
-    /// Access to the dimension of the point.
-    /**
-       \return The dimension of the point.
-    */
-    int size ( void ) const { return _n; }
-
-    /// Test if the point is empty (dimension equal to zero).
-    /**
-       \return A boolean equal to \c true if the point is empty.
-    */
-    bool empty ( void ) const { return _n==0; }
-    
-    /// Set all the coordinates to a specifi value.
-    /**
-       \param d The value for all coordinates -- \b IN.
-    */
-    void set ( const NOMAD::Double & d ) const
-    { std::fill ( _coords , _coords+_n , d ); }
-
-    /// Set the coordinates with an array of reals.
-    /**
-       \param n Dimension of the point -- \b IN.
-       \param a Array of size \c n of reals -- \b IN.
-    */
-    void set ( int n , const NOMAD::Double * a );
-
-    /// Check if all the coordinates are defined.
-    /**
-       \return A boolean equal to \c true if all the coordinates are defined.
-    */
-    bool is_complete ( void ) const;
-
-    /// Check if at least one coordinate is defined.
-    /**
-       This virtual method is redefined in class NOMAD::Direction.
-       \return A boolean equal to \c true if at least one coordinate is defined.
-    */
-    virtual bool is_defined ( void ) const;
+    /*---------------------------------------------------------------------------*/
     
-    /// Count the number of defined values.
-    /**
-       \return The number of values that are defined.
-    */
-    int nb_defined ( void ) const;
-
-    /// Squared norm of the point.
+    /// Display a NOMAD::Point object.
     /**
-       \return A NOMAD::Double with the squared norm of the point.
-    */
-    const NOMAD::Double squared_norm ( void ) const
+     \param out The NOMAD::Display object -- \b IN.
+     \param p   The NOMAD::Point object to be displayed -- \b IN.
+     \return    The NOMAD::Display object.
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
+                                               const NOMAD::Point   & p     )
     {
-      return std::accumulate ( _coords            ,
-			       _coords+_n         ,
-			       NOMAD::Double(0.0) ,
-			       squared_norm_op()    );
+        p.display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
+        return out;
     }
-
-    /// Norm of the point.
-    /**
-       \return A NOMAD::Double with the norm of the point.
-    */
-    const NOMAD::Double norm ( void ) const { return squared_norm().sqrt(); }
-    
-    /// Dot product with another point \c x.
-    /**
-       \param x The other point \c x -- \b IN.
-       \return The dot product \c *this \c . \c x.
-    */
-    const NOMAD::Double dot_product ( const Point & x ) const
-    { return std::inner_product ( _coords , _coords+_n , x._coords , NOMAD::Double(0.0) ); }
-
-    /// Angle with another point \c x.
-    /**
-       \param x The other point \c x -- \b IN.
-       \return The angle between \c *this and \c x.
-    */
-    const NOMAD::Double get_angle ( const Point & x ) const;
-    
-    /// Mutiplication with a scalar.
-    /**
-       - This implements \c *this \c = \c d \c * \c *this.
-       - The current object \c *this is modified.
-       \param d The scalar -- \b IN.
-       \return The point times \c d.
-    */
-    const Point & operator *= ( const NOMAD::Double & d );
-    
-    /// Multiplication with another point.
-    /**
-       - The multiplication is done coordinate by coordinate.
-       - The current object \c *this is not modified.
-       \param p The other point -- \b IN.
-       \return A third point equal to \c *this \c .* \c p.
-    */
-    const Point operator * ( const Point & p ) const;
-
-    /// Division with another point.
-    /**
-       - The division is done coordinate by coordinate.
-       - The current object \c *this is not modified.
-       \param p The other point -- \b IN.
-       \return A third point equal to \c *this \c ./ \c p.
-    */
-    const Point operator / ( const Point & p ) const;
-
-    /// Addition with another point.
-    /**
-       The current object \c *this is not modified.
-       \param p The other point -- \b IN.
-       \return A third point equal to \c *this \c + \c p.
-    */
-    const Point operator + ( const Point & p ) const;
-    
-    /// Substraction with another point.
-    /**
-       The current object \c *this is not modified.
-       \param p The other point -- \b IN.
-       \return A third point equal to \c *this \c - \c p.
-    */
-    const Point operator - ( const Point & p ) const;
-
-    /// Negation.
-    /**
-       The current object \c *this is not modified.
-       \return A new point equal to \c -*this.
-    */
-    const Point operator - ( void ) const;
-    
-    /// Comparison operator \c <.
-    /**
-       \param p The right-hand side object -- \b IN.
-       \return A boolean equal to \c true if  \c *this \c < \c p.
-    */
-    virtual bool operator <  ( const Point & p ) const;
-
-
-    /// Comparison operator \c ==.
-    /**
-       \param p The right-hand side object -- \b IN.
-       \return A boolean equal to \c true if  \c *this \c == \c p.
-    */
-    bool operator == ( const Point & p ) const;
-
-    /// Comparison operator \c !=.
-    /**
-       \param p The right-hand side object -- \b IN.
-       \return A boolean equal to \c true if  \c *this \c != \c p.
-    */
-    bool operator != ( const Point & p ) const { return !(*this == p); }
     
-    /// The same as operator \c < but with consideration of undefined values.
-    /**
-       \param p The right-hand side object -- \b IN.
-       \return A boolean equal to \c true if \c *this \c < \c p.
-    */
-    bool comp_with_undef ( const Point & p ) const;
-    
-    /// Projection to the mesh.
-    /**
-       Projection to the mesh of size delta
-       ( \c *this \c = \c ref \c + \c k \c * \c delta ).
-       \param ref   Reference for projection -- \b IN.
-       \param delta Mesh size parameter -- \b IN.
-       \param lb    Lower bound -- \b IN -- \b optional
-                    (default = undefined NOMAD::Point).
-       \param ub    Upper bound -- \b IN -- \b optional
-                    (default = undefined NOMAD::Point).
-    */
-    void project_to_mesh ( const Point & ref          ,
-			   const Point & delta        ,
-			   const Point & lb = Point() ,
-			   const Point & ub = Point()   );
-
-    /// Display.
+    /// Input.
     /**
-       \param out The NOMAD::Display object -- \b IN.
-       \param sep A string that is used as a separator between the coordinates
-                  -- \b IN --\b optional (default = one space).
-       \param w   An integer indicating a width for the display of
-                  each coordinate -- \b IN -- \b optional
-		  (default = -1, no limit).
-       \param lim Max number of coordinates to display -- \b IN
-              -- \b optional (default = -1, no limit).
-    */
-    virtual void display ( const NOMAD::Display & out       ,
-			   const std::string    & sep = " " ,
-			   int                    w   = -1  ,
-			   int                    lim = -1    ) const;
-	  	  
-  };
-
-  /*---------------------------------------------------------------------------*/
-
-  /// Display a NOMAD::Point object.
-  /**
-     \param out The NOMAD::Display object -- \b IN.
-     \param p   The NOMAD::Point object to be displayed -- \b IN.
-     \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
-					      const NOMAD::Point   & p     ) {
-    p.display ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-    return out;
-  }
-
-  /// Input.
-  /**
      - Allows the input of NOMAD::Double objects with operator \c >>.
      - Can read undefined coordinates (parameter \c UNDEF_STR with default \c "-".)
      - Example:
@@ -457,8 +488,8 @@ namespace NOMAD {
      \param in A \c std::istream object (can be a file) -- \b IN/OUT.
      \param p  The NOMAD::Point object to be read -- \b OUT.
      \return The modified \c std::istream object.
-  */
-  std::istream & operator >> ( std::istream & in , Point & p );
+     */
+    std::istream & operator >> ( std::istream & in , Point & p );
 }
 
 #endif
diff --git a/src/Priority_Eval_Point.cpp b/src/Priority_Eval_Point.cpp
index f5059e4..014a0bf 100644
--- a/src/Priority_Eval_Point.cpp
+++ b/src/Priority_Eval_Point.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Priority_Eval_Point.cpp
-  \brief  Evaluation point with a priority (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-22
-  \see    Priority_Eval_Point.hpp
-*/
+ \file   Priority_Eval_Point.cpp
+ \brief  Evaluation point with a priority (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-22
+ \see    Priority_Eval_Point.hpp
+ */
 #include "Priority_Eval_Point.hpp"
 
 bool NOMAD::Priority_Eval_Point::_lexicographic_order=false;
@@ -51,130 +58,128 @@ bool NOMAD::Priority_Eval_Point::_lexicographic_order=false;
 /*    be evaluated before x2                      */
 /*  . x is a Priority_Eval_Point                  */
 /*------------------------------------------------*/
-bool NOMAD::Priority_Eval_Point::dominates
-( const NOMAD::Set_Element<NOMAD::Eval_Point> & x ) const
+bool NOMAD::Priority_Eval_Point::dominates ( const NOMAD::Set_Element<NOMAD::Eval_Point> & x ) const
 {
-  if ( this == &x )
-    return false;
-     const NOMAD::Eval_Point * x1 = get_element();
-  const NOMAD::Eval_Point * x2 = x.get_element();
-  
-  // criterion 0: lexicographic order
-	if (_lexicographic_order)
-		return NOMAD::Point(*x1) < NOMAD::Point(*x2);
-
-  
-  // criterion 1: user criterion:
-  // ------------
-  const NOMAD::Double uep1 = x1->get_user_eval_priority();
-  if ( uep1.is_defined() ) 
-  {
-    const NOMAD::Double uep2 = x2->get_user_eval_priority();
-    if ( uep2.is_defined() )
-	{
-      if ( uep1 > uep2 )
-	return true;
-      if ( uep2 > uep1 )
-	return false;
+    if ( this == &x )
+        return false;
+    const NOMAD::Eval_Point * x1 = get_element();
+    const NOMAD::Eval_Point * x2 = x.get_element();
+    
+    // criterion 0: lexicographic order
+    if (_lexicographic_order)
+        return NOMAD::Point(*x1) < NOMAD::Point(*x2);
+        
+    // criterion 1: user criterion:
+    // ------------
+    const NOMAD::Double uep1 = x1->get_user_eval_priority();
+    if ( uep1.is_defined() )
+    {
+        const NOMAD::Double uep2 = x2->get_user_eval_priority();
+        if ( uep2.is_defined() )
+        {
+            if ( uep1 > uep2 )
+                return true;
+            if ( uep2 > uep1 )
+                return false;
+        }
     }
-  }
-
-  // specific Priority_Eval_Point elements of comparison:
-  NOMAD::Double x_f_sgte;
-  NOMAD::Double x_h_sgte;
-  NOMAD::Double x_f_model;
-  NOMAD::Double x_h_model;
-  NOMAD::Double x_angle_success_dir;
-  NOMAD::Double x_angle_simplex_grad;
-
-  x.get_priority_criteria ( x_f_sgte             ,
-			    x_h_sgte             ,
-			    x_f_model            ,
-			    x_h_model            ,
-			    x_angle_success_dir  ,
-			    x_angle_simplex_grad   );
-
-  // criterion 2: give priority to already evaluated cache points:
-  // ------------
-  if ( x1->is_in_cache() && !x2->is_in_cache() )
-    return true;
-  if ( x2->is_in_cache() && !x1->is_in_cache() )
-    return false;
-
-  // criterion 3: give priority to already evaluated points
-  // ------------ that are eval_ok:
-  if ( x1->is_eval_ok() && !x2->is_eval_ok() )
-    return true;
-  if ( x2->is_eval_ok() && !x1->is_eval_ok() )
-    return false;
-
-  // criterion 4: true f and h values:
-  // -----------
-  int flag = compare_hf_values ( x1->get_h() ,
-				 x1->get_f() ,
-				 x2->get_h() ,
-				 x2->get_f()   );
-  if ( flag )
-    return ( flag > 0 );
-
-  // criterion 5: surrogate f and h values:
-  // ------------
-  flag = compare_hf_values ( _h_sgte , _f_sgte , x_h_sgte , x_f_sgte );
-  if ( flag )
-      return ( flag > 0 );  
-
-  // criterion 6: model f and h values:
-  // ------------
-  flag = compare_hf_values ( _h_model , _f_model , x_h_model , x_f_model );
-  if ( flag )
-    return ( flag > 0 );
-	
-	
-
-  // criterion 7: check the angle with the last successful direction:
-  // ------------
-  if ( _angle_success_dir.is_defined() && x_angle_success_dir.is_defined() ) 
-  {
-    if ( _angle_success_dir < x_angle_success_dir )
-      return true;
-    if ( x_angle_success_dir < _angle_success_dir )
-      return false;
-  }
-
-	
-  // criterion 8: take the point with the best h value:
-  // ------------
-  flag = compare_h_values ( x1->get_h() , x2->get_h() );
-  if ( flag )
-    return ( flag > 0 );
-
-  flag = compare_h_values ( _h_sgte , x_h_sgte );
-  if ( flag )
-    return ( flag > 0 );
-
-  flag = compare_h_values ( _h_model , x_h_model );
-  if ( flag )
-    return ( flag > 0 );
-
-  // criterion 9: random criterion for randomly generated directions:
-  // -------------
-  const NOMAD::Double rep1 = x1->get_rand_eval_priority();
-  if ( rep1.is_defined() ) 
-  {
-    const NOMAD::Double rep2 = x2->get_rand_eval_priority();
-    if ( rep2.is_defined() )
-	{
-      if ( rep1 < rep2 )
-	return true;
-      if ( rep2 < rep1 )
-	return false;
+    
+    // specific Priority_Eval_Point elements of comparison:
+    NOMAD::Double x_f_sgte;
+    NOMAD::Double x_h_sgte;
+    NOMAD::Double x_f_model;
+    NOMAD::Double x_h_model;
+    NOMAD::Double x_angle_success_dir;
+    NOMAD::Double x_angle_simplex_grad;
+    
+    x.get_priority_criteria ( x_f_sgte             ,
+                             x_h_sgte             ,
+                             x_f_model            ,
+                             x_h_model            ,
+                             x_angle_success_dir  ,
+                             x_angle_simplex_grad   );
+    
+    // criterion 2: give priority to already evaluated cache points:
+    // ------------
+    if ( x1->is_in_cache() && !x2->is_in_cache() )
+        return true;
+    if ( x2->is_in_cache() && !x1->is_in_cache() )
+        return false;
+    
+    // criterion 3: give priority to already evaluated points
+    // ------------ that are eval_ok:
+    if ( x1->is_eval_ok() && !x2->is_eval_ok() )
+        return true;
+    if ( x2->is_eval_ok() && !x1->is_eval_ok() )
+        return false;
+    
+    // criterion 4: true f and h values:
+    // -----------
+    int flag = compare_hf_values ( x1->get_h() ,
+                                  x1->get_f() ,
+                                  x2->get_h() ,
+                                  x2->get_f()   );
+    if ( flag )
+        return ( flag > 0 );
+    
+    // criterion 5: surrogate f and h values:
+    // ------------
+    flag = compare_hf_values ( _h_sgte , _f_sgte , x_h_sgte , x_f_sgte );
+    if ( flag )
+        return ( flag > 0 );  // return (flag < 0);  // CTribes dec 17, 2014 --- flag < 0 used for testing ordonnancement negationiste
+    
+    // criterion 6: model f and h values:
+    // ------------
+    flag = compare_hf_values ( _h_model , _f_model , x_h_model , x_f_model );
+    if ( flag )
+        return ( flag > 0 );
+    
+    
+    
+    // criterion 7: check the angle with the last successful direction:
+    // ------------
+    if ( _angle_success_dir.is_defined() && x_angle_success_dir.is_defined() )
+    {
+        if ( _angle_success_dir < x_angle_success_dir )
+            return true;
+        if ( x_angle_success_dir < _angle_success_dir )
+            return false;
     }
-  }
-
-	// criterion 10: compare the tags:
-  // -------------
-  return x1->get_tag() < x2->get_tag();
-	
+    
+    
+    // criterion 8: take the point with the best h value:
+    // ------------
+    flag = compare_h_values ( x1->get_h() , x2->get_h() );
+    if ( flag )
+        return ( flag > 0 );
+    
+    flag = compare_h_values ( _h_sgte , x_h_sgte );
+    if ( flag )
+        return ( flag > 0 );
+    
+    flag = compare_h_values ( _h_model , x_h_model );
+    if ( flag )
+        return ( flag > 0 );
+    
+    // criterion 9: random criterion for randomly generated directions:
+    // -------------
+    const NOMAD::Double rep1 = x1->get_rand_eval_priority();
+    if ( rep1.is_defined() )
+    {
+        const NOMAD::Double rep2 = x2->get_rand_eval_priority();
+        if ( rep2.is_defined() )
+        {
+            if ( rep1 < rep2 )
+                return true;
+            if ( rep2 < rep1 )
+                return false;
+        }
+    }
+    
+    // criterion 10: compare the tags:
+    // -------------
+    return x1->get_tag() < x2->get_tag();
+    
 }
 
 /*-----------------------------------------------*/
@@ -187,16 +192,16 @@ bool NOMAD::Priority_Eval_Point::dominates
 /*  . private method                             */
 /*-----------------------------------------------*/
 int NOMAD::Priority_Eval_Point::compare_h_values ( const NOMAD::Double & hx1 ,
-						   const NOMAD::Double & hx2   ) const
+                                                  const NOMAD::Double & hx2   ) const
 {
-  if ( hx1.is_defined() && hx2.is_defined() )
-  {
-    if ( hx1 < hx2 )
-      return 1;
-    if ( hx2 < hx1 )
-      return -1;
-  }
-  return 0;
+    if ( hx1.is_defined() && hx2.is_defined() )
+    {
+        if ( hx1 < hx2 )
+            return 1;
+        if ( hx2 < hx1 )
+            return -1;
+    }
+    return 0;
 }
 
 /*-----------------------------------------------*/
@@ -210,60 +215,60 @@ int NOMAD::Priority_Eval_Point::compare_h_values ( const NOMAD::Double & hx1 ,
 /*  . private method                             */
 /*-----------------------------------------------*/
 int NOMAD::Priority_Eval_Point::compare_hf_values ( const NOMAD::Double & hx1 ,
-						    const NOMAD::Double & fx1 ,
-						    const NOMAD::Double & hx2 ,
-						    const NOMAD::Double & fx2   ) const
+                                                   const NOMAD::Double & fx1 ,
+                                                   const NOMAD::Double & hx2 ,
+                                                   const NOMAD::Double & fx2   ) const
 {
-	if ( fx1.is_defined() && fx2.is_defined() ) 
-	{
-		
-		if ( hx1.is_defined() && hx2.is_defined() )
-		{
-			// x1 is feasible:
-			if ( hx1 <= _h_min ) 
-			{
-				// both points are feasible:
-				if ( hx2 <= _h_min  ) 
-				{
-					if ( fx1 < fx2 )
-						return 1;
-					if ( fx2 < fx1 )
-						return -1;
-				}
-				
-				// x1 feasible and x2 infeasible:
-				else
-					return 1;
-			}
-			
-			// x1 is infeasible:
-			else 
-			{
-				// x2 is feasible:
-				if ( hx2 <= _h_min  )
-					return -1;
-				
-				// both points are infeasible:
-				if ( ( hx1  < hx2 && fx1  < fx2 ) ||
-					( hx1 == hx2 && fx1  < fx2 ) ||
-					( hx1  < hx2 && fx1 == fx2 )    )
-					return 1;
-				
-				if ( ( hx2  < hx1 && fx2  < fx1 ) ||
-					( hx2 == hx1 && fx2  < fx1 ) ||
-					( hx2  < hx1 && fx2 == fx1 )    )
-					return -1; 
-			}
-		}
-		
-		// we only have f values:
-		else 
-		{
-			if ( fx1 < fx2 )
-				return 1;
-			if ( fx2 < fx1 )
-				return -1;
-		}
-	}
-	return 0;
+    if ( fx1.is_defined() && fx2.is_defined() )
+    {
+        
+        if ( hx1.is_defined() && hx2.is_defined() )
+        {
+            // x1 is feasible:
+            if ( hx1 <= _h_min )
+            {
+                // both points are feasible:
+                if ( hx2 <= _h_min  )
+                {
+                    if ( fx1 < fx2 )
+                        return 1;
+                    if ( fx2 < fx1 )
+                        return -1;
+                }
+                
+                // x1 feasible and x2 infeasible:
+                else
+                    return 1;
+            }
+            
+            // x1 is infeasible:
+            else 
+            {
+                // x2 is feasible:
+                if ( hx2 <= _h_min  )
+                    return -1;
+                
+                // both points are infeasible:
+                if ( ( hx1  < hx2 && fx1  < fx2 ) ||
+                    ( hx1 == hx2 && fx1  < fx2 ) ||
+                    ( hx1  < hx2 && fx1 == fx2 )    )
+                    return 1;
+                
+                if ( ( hx2  < hx1 && fx2  < fx1 ) ||
+                    ( hx2 == hx1 && fx2  < fx1 ) ||
+                    ( hx2  < hx1 && fx2 == fx1 )    )
+                    return -1; 
+            }
+        }
+        
+        // we only have f values:
+        else 
+        {
+            if ( fx1 < fx2 )
+                return 1;
+            if ( fx2 < fx1 )
+                return -1;
+        }
+    }
+    return 0;
 }
diff --git a/src/Priority_Eval_Point.hpp b/src/Priority_Eval_Point.hpp
index e74885d..0e98618 100644
--- a/src/Priority_Eval_Point.hpp
+++ b/src/Priority_Eval_Point.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Priority_Eval_Point.hpp
-  \brief  Evaluation point with a priority (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-22
-  \see    Priority_Eval_Point.cpp
-*/
+ \file   Priority_Eval_Point.hpp
+ \brief  Evaluation point with a priority (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-22
+ \see    Priority_Eval_Point.cpp
+ */
 #ifndef __PRIORITY_EVAL_POINT__
 #define __PRIORITY_EVAL_POINT__
 
@@ -47,181 +54,181 @@
 #include "Eval_Point.hpp"
 
 namespace NOMAD {
-	
-	/// Evaluation point with a priority.
-	class Priority_Eval_Point : public NOMAD::Set_Element<NOMAD::Eval_Point> {
-		
-	private:
-		
-		NOMAD::Double _h_min;              ///< \c h_min value for comparison operator.
-		NOMAD::Double _f_sgte;             ///< Objective surrogate value.
-		NOMAD::Double _h_sgte;             ///< Feasibility surrogate value.
-		NOMAD::Double _f_model;            ///< Objective model value.
-		NOMAD::Double _h_model;            ///< Feasibility model value.
-		NOMAD::Double _angle_success_dir;  ///< Angle with last successful direction.
-		NOMAD::Double _angle_simplex_grad; ///< Angle with simplex gradient.
-		static bool	  _lexicographic_order; ///< Use lexicographic order for comparison 
-		
-		/// Affectation operator.
-		/**
-		 \param x The right-hand side object -- \b IN.
-		 */
-		Priority_Eval_Point & operator = ( const Priority_Eval_Point & x );
-		
-		/// Compare the \c h values of two points.
-		/**
-		 The two points to compare are \c x1 and \c x2.
-		 \param hx1 \c h(x1) -- \b IN.
-		 \param hx2 \c h(x2) -- \b IN.
-		 \return \c h(x1) \c < \c h(x2)
-		 with the following format:
-		 -  1: \c x1 best than \c x2.
-		 - -1: \c x2 best than \c x1.
-		 -  0: undetermined.
-		 */
-		int compare_h_values ( const NOMAD::Double & hx1 ,
-							  const NOMAD::Double & hx2   ) const;
-		
-		/// Compare the \c h and \c f values of two points.
-		/**
-		 The two points to compare are \c x1 and \c x2.
-		 \param hx1 \c h(x1) -- \b IN.
-		 \param fx1 \c f(x1) -- \b IN.
-		 \param hx2 \c h(x2) -- \b IN.
-		 \param fx2 \c f(x2) -- \b IN.
-		 \return \c (h(x1),f(x1)) \c < \c (h(x2),f(x2))
-		 with the following format:
-		 -  1: \c x1 best than \c x2.
-		 - -1: \c x2 best than \c x1.
-		 -  0: undetermined.
-		 */
-		int compare_hf_values ( const NOMAD::Double & hx1 ,
-							   const NOMAD::Double & fx1 ,
-							   const NOMAD::Double & hx2 ,
-							   const NOMAD::Double & fx2   ) const;
-	public:
-		
-		/// Constructor.
-		/**
-		 \param x A pointer to the evaluation point -- \b IN.
-		 \param h_min \c h_min value                -- \b IN.
-		 */
-		explicit Priority_Eval_Point ( const NOMAD::Eval_Point * x     ,
-									  const NOMAD::Double     & h_min   )
-		: NOMAD::Set_Element<NOMAD::Eval_Point> ( x     ) ,
-		_h_min                                ( h_min )  {}
-		
-		/// Copy constructor.
-		/**
-		 \param pep The copied object -- \b IN.
-		 */
-		explicit Priority_Eval_Point ( const Priority_Eval_Point & pep )
-		: NOMAD::Set_Element<NOMAD::Eval_Point> ( pep.get_element()       ) ,
-		_h_min                                ( pep._h_min              ) ,
-		_f_sgte                               ( pep._f_sgte             ) ,
-		_h_sgte                               ( pep._h_sgte             ) ,
-		_f_model                              ( pep._f_model            ) ,
-		_h_model                              ( pep._h_model            ) ,
-		_angle_success_dir                    ( pep._angle_success_dir  ) ,
-		_angle_simplex_grad                   ( pep._angle_simplex_grad )   {}
-		
-		/// Destructor.
-		virtual ~Priority_Eval_Point ( void ) {}
-		
-		/// Access to specific elements of comparison.
-		/**
-		 - This method is defined virtual in NOMAD::Set_Element so that
+    
+    /// Evaluation point with a priority.
+    class Priority_Eval_Point : public NOMAD::Set_Element<NOMAD::Eval_Point> {
+        
+    private:
+        
+        NOMAD::Double _h_min;              ///< \c h_min value for comparison operator.
+        NOMAD::Double _f_sgte;             ///< Objective surrogate value.
+        NOMAD::Double _h_sgte;             ///< Feasibility surrogate value.
+        NOMAD::Double _f_model;            ///< Objective model value.
+        NOMAD::Double _h_model;            ///< Feasibility model value.
+        NOMAD::Double _angle_success_dir;  ///< Angle with last successful direction.
+        NOMAD::Double _angle_simplex_grad; ///< Angle with simplex gradient.
+        static bool   _lexicographic_order; ///< Use lexicographic order for comparison
+        
+        /// Affectation operator.
+        /**
+         \param x The right-hand side object -- \b IN.
+         */
+        Priority_Eval_Point & operator = ( const Priority_Eval_Point & x );
+        
+        /// Compare the \c h values of two points.
+        /**
+         The two points to compare are \c x1 and \c x2.
+         \param hx1 \c h(x1) -- \b IN.
+         \param hx2 \c h(x2) -- \b IN.
+         \return \c h(x1) \c < \c h(x2)
+         with the following format:
+         -  1: \c x1 best than \c x2.
+         - -1: \c x2 best than \c x1.
+         -  0: undetermined.
+         */
+        int compare_h_values ( const NOMAD::Double & hx1 ,
+                              const NOMAD::Double & hx2   ) const;
+        
+        /// Compare the \c h and \c f values of two points.
+        /**
+         The two points to compare are \c x1 and \c x2.
+         \param hx1 \c h(x1) -- \b IN.
+         \param fx1 \c f(x1) -- \b IN.
+         \param hx2 \c h(x2) -- \b IN.
+         \param fx2 \c f(x2) -- \b IN.
+         \return \c (h(x1),f(x1)) \c < \c (h(x2),f(x2))
+         with the following format:
+         -  1: \c x1 best than \c x2.
+         - -1: \c x2 best than \c x1.
+         -  0: undetermined.
+         */
+        int compare_hf_values ( const NOMAD::Double & hx1 ,
+                               const NOMAD::Double & fx1 ,
+                               const NOMAD::Double & hx2 ,
+                               const NOMAD::Double & fx2   ) const;
+    public:
+        
+        /// Constructor.
+        /**
+         \param x A pointer to the evaluation point -- \b IN.
+         \param h_min \c h_min value                -- \b IN.
+         */
+        explicit Priority_Eval_Point ( const NOMAD::Eval_Point * x     ,
+                                      const NOMAD::Double     & h_min   )
+        : NOMAD::Set_Element<NOMAD::Eval_Point> ( x     ) ,
+        _h_min                                ( h_min )  {}
+        
+        /// Copy constructor.
+        /**
+         \param pep The copied object -- \b IN.
+         */
+        explicit Priority_Eval_Point ( const Priority_Eval_Point & pep )
+        : NOMAD::Set_Element<NOMAD::Eval_Point> ( pep.get_element()       ) ,
+        _h_min                                ( pep._h_min              ) ,
+        _f_sgte                               ( pep._f_sgte             ) ,
+        _h_sgte                               ( pep._h_sgte             ) ,
+        _f_model                              ( pep._f_model            ) ,
+        _h_model                              ( pep._h_model            ) ,
+        _angle_success_dir                    ( pep._angle_success_dir  ) ,
+        _angle_simplex_grad                   ( pep._angle_simplex_grad )   {}
+        
+        /// Destructor.
+        virtual ~Priority_Eval_Point ( void ) {}
+        
+        /// Access to specific elements of comparison.
+        /**
+         - This method is defined virtual in NOMAD::Set_Element so that
          \c operator \c < \c (Set_Element x) can invoke
          it on \c x (which is in fact a \c Priority_Eval_Point).
-		 - This avoids an expensive downcast in \c operator \c < .
-		 \param f_sgte              Objective surrogate value            -- \b OUT.
-		 \param h_sgte              Feasibility surrogate value          -- \b OUT.
-		 \param f_model             Objective model value                -- \b OUT.
-		 \param h_model             Feasibility model value              -- \b OUT.
-		 \param angle_success_dir   Angle with last successful direction -- \b OUT.
-		 \param angle_simplex_grad  Angle with simplex gradient          -- \b OUT.
-		 */
-		virtual void get_priority_criteria ( NOMAD::Double & f_sgte             ,
-											NOMAD::Double & h_sgte             ,
-											NOMAD::Double & f_model            ,
-											NOMAD::Double & h_model            ,
-											NOMAD::Double & angle_success_dir  ,
-											NOMAD::Double & angle_simplex_grad   ) const
-		{
-			f_sgte             = _f_sgte;
-			h_sgte             = _h_sgte;
-			f_model            = _f_model;
-			h_model            = _h_model;
-			angle_success_dir  = _angle_success_dir;
-			angle_simplex_grad = _angle_simplex_grad;
-		}
-		
-		/// Comparison operator.
-		/**
-		 This virtual function directly call \c dominates().
-		 \param x The right-hand side object -- \b IN.
-		 \return A boolean equal to \c true if \c *this \c < \c x.
-		 */
-		virtual bool operator < ( const NOMAD::Set_Element<NOMAD::Eval_Point> & x ) const
-		{ return dominates ( x ); }
-		
-		/// Comparison operator.
-		/**
-		 \param x The right-hand side object -- \b IN.
-		 \return A boolean equal to \c true if \c *this \c < \c x.
-		 */
-		bool dominates ( const NOMAD::Set_Element<NOMAD::Eval_Point> & x ) const;
-		
-		/// Access to the evaluation point.
-		/**
-		 \return A pointer to the evaluation point.
-		 */
-		const NOMAD::Eval_Point * get_point ( void ) const { return get_element(); }
-		
-		/// Set the angle with last successful direction.
-		/**
-		 \param a The angle with last successful direction -- \b IN.
-		 */
-		void set_angle_success_dir ( const NOMAD::Double & a ) { _angle_success_dir = a; }
-		
-		/// Set the angle with simplex gradient .
-		/**
-		 \param a The angle with simplex gradient -- \b IN.
-		 */
-		void set_angle_simplex_grad ( const NOMAD::Double & a ) { _angle_simplex_grad = a; }
-		
-		
-		/// Set the objective surrogate value.
-		/**
-		 \param f The objective surrogate value -- \b IN.
-		 */
-		void set_f_sgte ( const NOMAD::Double & f ) { _f_sgte = f; }
-		
-		/// Set the feasibility surrogate value.
-		/**
-		 \param h The feasibility surrogate value -- \b IN.
-		 */
-		void set_h_sgte ( const NOMAD::Double & h ) { _h_sgte = h; }
-		
-		/// Set the objective model value.
-		/**
-		 \param f The objective model value -- \b IN.
-		 */
-		void set_f_model ( const NOMAD::Double & f ) { _f_model = f; }
-		
-		/// Set the feasibility model value.
-		/**
-		 \param h The feasibility model value -- \b IN.
-		 */
-		void set_h_model ( const NOMAD::Double & h ) { _h_model = h; }
-		
-		/// Set the lexicographic order for sorting.
-		/**
-		 */
-		static void set_lexicographic_order ( bool order ) { _lexicographic_order = order; }
-		
-		
-	};
+         - This avoids an expensive downcast in \c operator \c < .
+         \param f_sgte              Objective surrogate value            -- \b OUT.
+         \param h_sgte              Feasibility surrogate value          -- \b OUT.
+         \param f_model             Objective model value                -- \b OUT.
+         \param h_model             Feasibility model value              -- \b OUT.
+         \param angle_success_dir   Angle with last successful direction -- \b OUT.
+         \param angle_simplex_grad  Angle with simplex gradient          -- \b OUT.
+         */
+        virtual void get_priority_criteria ( NOMAD::Double & f_sgte             ,
+                                            NOMAD::Double & h_sgte             ,
+                                            NOMAD::Double & f_model            ,
+                                            NOMAD::Double & h_model            ,
+                                            NOMAD::Double & angle_success_dir  ,
+                                            NOMAD::Double & angle_simplex_grad   ) const
+        {
+            f_sgte             = _f_sgte;
+            h_sgte             = _h_sgte;
+            f_model            = _f_model;
+            h_model            = _h_model;
+            angle_success_dir  = _angle_success_dir;
+            angle_simplex_grad = _angle_simplex_grad;
+        }
+        
+        /// Comparison operator.
+        /**
+         This virtual function directly call \c dominates().
+         \param x The right-hand side object -- \b IN.
+         \return A boolean equal to \c true if \c *this \c < \c x.
+         */
+        virtual bool operator < ( const NOMAD::Set_Element<NOMAD::Eval_Point> & x ) const
+        { return dominates ( x ); }
+        
+        /// Comparison operator.
+        /**
+         \param x The right-hand side object -- \b IN.
+         \return A boolean equal to \c true if \c *this \c < \c x.
+         */
+        bool dominates ( const NOMAD::Set_Element<NOMAD::Eval_Point> & x ) const;
+        
+        /// Access to the evaluation point.
+        /**
+         \return A pointer to the evaluation point.
+         */
+        const NOMAD::Eval_Point * get_point ( void ) const { return get_element(); }
+        
+        /// Set the angle with last successful direction.
+        /**
+         \param a The angle with last successful direction -- \b IN.
+         */
+        void set_angle_success_dir ( const NOMAD::Double & a ) { _angle_success_dir = a; }
+        
+        /// Set the angle with simplex gradient .
+        /**
+         \param a The angle with simplex gradient -- \b IN.
+         */
+        void set_angle_simplex_grad ( const NOMAD::Double & a ) { _angle_simplex_grad = a; }
+        
+        
+        /// Set the objective surrogate value.
+        /**
+         \param f The objective surrogate value -- \b IN.
+         */
+        void set_f_sgte ( const NOMAD::Double & f ) { _f_sgte = f; }
+        
+        /// Set the feasibility surrogate value.
+        /**
+         \param h The feasibility surrogate value -- \b IN.
+         */
+        void set_h_sgte ( const NOMAD::Double & h ) { _h_sgte = h; }
+        
+        /// Set the objective model value.
+        /**
+         \param f The objective model value -- \b IN.
+         */
+        void set_f_model ( const NOMAD::Double & f ) { _f_model = f; }
+        
+        /// Set the feasibility model value.
+        /**
+         \param h The feasibility model value -- \b IN.
+         */
+        void set_h_model ( const NOMAD::Double & h ) { _h_model = h; }
+        
+        /// Set the lexicographic order for sorting.
+        /**
+         */
+        static void set_lexicographic_order ( bool order ) { _lexicographic_order = order; }
+        
+        
+    };
 }
 
 #endif
diff --git a/src/Quad_Model.cpp b/src/Quad_Model.cpp
index 0bb28ef..1650b8e 100644
--- a/src/Quad_Model.cpp
+++ b/src/Quad_Model.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -45,12 +52,11 @@
 /*-----------------------------------------------------------*/
 /*                         constructor                       */
 /*-----------------------------------------------------------*/
-NOMAD::Quad_Model::Quad_Model
-( const NOMAD::Display                     & out       ,
- const std::vector<NOMAD::bb_output_type> & bbot      ,
- const NOMAD::Cache                       & cache     ,
- const NOMAD::Signature                   & signature   )
-: _out                  ( out                                 ) ,
+NOMAD::Quad_Model::Quad_Model ( const NOMAD::Display                     & out       ,
+                               const std::vector<NOMAD::bb_output_type> & bbot      ,
+                               const NOMAD::Cache                       & cache     ,
+                               const NOMAD::Signature                   & signature   )
+: _out                ( out                                 ) ,
 _bbot                 ( bbot                                ) ,
 _interpolation_type   ( NOMAD::UNDEFINED_INTERPOLATION_TYPE ) ,
 _n                    ( signature.get_n()                   ) ,
@@ -165,7 +171,8 @@ void NOMAD::Quad_Model::init_alpha ( void )
 /*  check evaluation point outputs before the integration  */
 /*  into an interpolation set (private)                    */
 /*---------------------------------------------------------*/
-bool NOMAD::Quad_Model::check_outputs ( const NOMAD::Point & bbo , int m ) const {
+bool NOMAD::Quad_Model::check_outputs ( const NOMAD::Point & bbo , int m ) const
+{
     
     if ( bbo.size() != m )
         return false;
@@ -259,7 +266,8 @@ void NOMAD::Quad_Model::reduce_Y ( const NOMAD::Point & center     ,
     _Y.clear();
     
     std::multiset<NOMAD::Model_Sorted_Point>::const_iterator it , end = Ys.end();
-    for ( it = Ys.begin() ; it != end ; ++it ) {
+    for ( it = Ys.begin() ; it != end ; ++it )
+    {
         if ( get_nY() < max_Y_size )
             _Y.push_back ( static_cast<NOMAD::Eval_Point *> ( it->get_point() ) );
         else
@@ -310,7 +318,8 @@ bool NOMAD::Quad_Model::is_within_trust_radius ( const NOMAD::Point & x ) const
 /*--------------------------------------------------------------*/
 void NOMAD::Quad_Model::define_scaling ( const NOMAD::Double & r )
 {
-    if ( _error_flag || _Y.empty() ) {
+    if ( _error_flag || _Y.empty() )
+    {
         _error_flag = true;
         return;
     }
@@ -371,9 +380,11 @@ void NOMAD::Quad_Model::define_scaling ( const NOMAD::Double & r )
 #endif
     
     // compute the scaling (and detect fixed variables):
-    for ( k = 0 ; k < nY ; ++k ) {
+    for ( k = 0 ; k < nY ; ++k )
+    {
         
-        for ( i = 0 ; i < _n ; ++i ) {
+        for ( i = 0 ; i < _n ; ++i )
+        {
             tmp = ( (*_Y[k])[i] - _ref[i] ).abs();
             if ( !_scaling[i].is_defined() || _scaling[i] < tmp )
                 _scaling[i] = tmp;
@@ -429,9 +440,12 @@ void NOMAD::Quad_Model::define_scaling ( const NOMAD::Double & r )
 /*       LeDigabel, Tribes, 2014                                     */
 /*  . looks also for fixed variables                                 */
 /*-------------------------------------------------------------------*/
-void NOMAD::Quad_Model::define_scaling_by_directions ( const std::list<NOMAD::Direction> & dirs, const NOMAD::Point & delta_m, const NOMAD::Double & epsilon  )
+void NOMAD::Quad_Model::define_scaling_by_directions ( const std::list<NOMAD::Direction> & dirs,
+                                                      const NOMAD::Point & delta_m,
+                                                      const NOMAD::Double & epsilon  )
 {
-    if ( _error_flag || _Y.empty() ) {
+    if ( _error_flag || _Y.empty() )
+    {
         _error_flag = true;
         return;
     }
@@ -671,7 +685,7 @@ bool NOMAD::Quad_Model::unscale ( NOMAD::Point & x ) const
 }
 
 /*-----------------------------------------------------------*/
-/*                       unscale the slope at a point                     */
+/*                       unscale the slope at a point        */
 /*-----------------------------------------------------------*/
 bool NOMAD::Quad_Model::unscale_grad ( NOMAD::Point & x ) const
 {
@@ -694,7 +708,8 @@ bool NOMAD::Quad_Model::unscale_grad ( NOMAD::Point & x ) const
 /*  compute the element (i,j) of the interpolation matrix M(phi,Y)  */
 /*  (private)                                                       */
 /*------------------------------------------------------------------*/
-double NOMAD::Quad_Model::compute_M ( int i , int j ) const {
+double NOMAD::Quad_Model::compute_M ( int i , int j ) const
+{
     
     if ( _error_flag )
         return 0.0;
@@ -716,7 +731,8 @@ double NOMAD::Quad_Model::compute_M ( int i , int j ) const {
     r    = jm2n;
     i1   = -1;
     
-    while ( r > 0 ) {
+    while ( r > 0 )
+    {
         r -= dec;
         ++i1;
         --dec;
@@ -742,22 +758,27 @@ void NOMAD::Quad_Model::construct ( bool   use_WP     ,
     
     
     // MFN interpolation:
-    if ( p1 < _n_alpha ) {
+    if ( p1 < _n_alpha )
+    {
         _interpolation_type = NOMAD::MFN;
         _error_flag = !construct_MFN_model ( eps , max_mpn , max_Y_size );
     }
-    else {
+    else
+    {
+        
         
         _error_flag = true;
         
         // well-poised regression:
-        if ( use_WP && p1 > _n_alpha ) {
+        if ( use_WP && p1 > _n_alpha )
+        {
             _interpolation_type = NOMAD::WP_REGRESSION;
             _error_flag = !construct_WP_model ( max_Y_size );
         }
         
         // regression:
-        if ( _error_flag ) {
+        if ( _error_flag )
+        {
             _interpolation_type = NOMAD::REGRESSION;
             _error_flag = !construct_regression_model ( eps , max_mpn , max_Y_size );
         }
@@ -771,21 +792,23 @@ void NOMAD::Quad_Model::construct ( bool   use_WP     ,
 /*    . used in construct_WP_model()                             */
 /*    . private                                                  */
 /*---------------------------------------------------------------*/
-int NOMAD::Quad_Model::find_max_lix
-( const NOMAD::Point                     & li      ,
- const std::vector<NOMAD::Eval_Point *> & Y       ,
- int                                      i1      ,
- int                                      i2      ,
- NOMAD::Double                          & max_lix   ) const
+int NOMAD::Quad_Model::find_max_lix ( const NOMAD::Point                     & li      ,
+                                     const std::vector<NOMAD::Eval_Point *> & Y       ,
+                                     int                                      i1      ,
+                                     int                                      i2      ,
+                                     NOMAD::Double                          & max_lix   ) const
 {
     max_lix = -1.0;
     int  ji = -1;
     NOMAD::Double tmp;
-    for ( int j = i1 ; j <= i2 ; ++j ) {
+    for ( int j = i1 ; j <= i2 ; ++j )
+    {
         tmp = eval ( *Y[j] , li );
-        if ( tmp.is_defined() ) {
+        if ( tmp.is_defined() )
+        {
             tmp = tmp.abs();
-            if ( tmp > max_lix ) {
+            if ( tmp > max_lix )
+            {
                 max_lix = tmp;
                 ji      = j;
             }
@@ -814,7 +837,8 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
     int i , j , k , p1 = get_nY();
     
     // the number of points (p+1) must be in [1+(n+1)(n+2)/2;MS_MAX_Y_SIZE]:
-    if ( p1 <= _n_alpha || p1 > max_Y_size ) {
+    if ( p1 <= _n_alpha || p1 > max_Y_size )
+    {
 #ifdef DEBUG
         _out << std::endl
         << "NOMAD::Quad_Model::construct_WP_model(): "
@@ -826,7 +850,8 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
     
     // Lagrange polynomials:
     std::vector<NOMAD::Point *> l;
-    for ( i = 0 ; i < _n_alpha ; ++i ) {
+    for ( i = 0 ; i < _n_alpha ; ++i )
+    {
         l.push_back ( new NOMAD::Point ( _n_alpha ) );
         for ( j = 0 ; j < _n_alpha ; ++j )
             (*l[i])[j] = (i==j) ? 1.0 : 0.0;
@@ -845,16 +870,19 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
     
     // use algo 6.2 p.95 of the DFO book in order to construct Lagrange polynomials:
     // -----------------------------------------------------------------------------
-    for ( i = 0 ; i < _n_alpha ; ++i ) {
+    for ( i = 0 ; i < _n_alpha ; ++i )
+    {
         
         // 1. point selection (select a point in Y2: Y2[iy2]):
         // -------------------
-        if ( i > 0 ) {
+        if ( i > 0 )
+        {
             
             ny2m1 = static_cast<int>(Y2.size())-1;
             iy2   = find_max_lix ( *l[i] , Y2 , 0 , ny2m1 , max_lix );
             
-            if ( iy2 < 0 ) {
+            if ( iy2 < 0 )
+            {
 #ifdef DEBUG
                 _out << std::endl
                 << "NOMAD::Quad_Model::construct_WP_model(): "
@@ -876,7 +904,8 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
         // -----------------
         liyi = eval ( *Y1[i] , *l[i] );
         
-        if ( liyi.abs().value() < 1e-15 ) {
+        if ( liyi.abs().value() < 1e-15 )
+        {
 #ifdef DEBUG
             _out << std::endl
             << "NOMAD::Quad_Model::construct_WP_model(): set Y is not poised"
@@ -887,7 +916,8 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
             return false;
         }
         
-        for ( k = 0 ; k < _n_alpha ; ++k ) {
+        for ( k = 0 ; k < _n_alpha ; ++k )
+        {
             (*l[i])[k] /= liyi;
             if ( (*l[i])[k].abs().value() < 1e-15 )
                 (*l[i])[k] = 0.0;
@@ -896,9 +926,11 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
         // 3. orthogonalization:
         // ---------------------
         for ( j = 0 ; j < _n_alpha ; ++j )
-            if ( j != i ) {
+            if ( j != i )
+            {
                 ljyi = eval ( *Y1[i] , *l[j] );
-                for ( k = 0 ; k < _n_alpha ; ++k ) {
+                for ( k = 0 ; k < _n_alpha ; ++k )
+                {
                     (*l[j])[k] = (*l[j])[k] - ljyi * (*l[i])[k];
                     if ( (*l[j])[k].abs().value() < 1e-15 )
                         (*l[j])[k] = 0.0;
@@ -914,8 +946,10 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
     // --------------
     int m = static_cast<int> ( _bbot.size() );
     for ( i = 0 ; i < m ; ++i )
-        if ( _alpha[i] ) {
-            for ( j = 0 ; j < _n_alpha ; ++j ) {
+        if ( _alpha[i] )
+        {
+            for ( j = 0 ; j < _n_alpha ; ++j )
+            {
                 (*_alpha[i])[j] = 0.0;
                 for ( k = 0 ; k < _n_alpha ; ++k )
                     (*_alpha[i])[j] += Y1[k]->get_bb_outputs()[i] * (*l[k])[j];
@@ -935,9 +969,11 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
     NOMAD::Double ljyk , lkyk , lix , new_rel_err ,
     cur_rel_err = compute_max_rel_err();
     
-    if ( cur_rel_err.is_defined() && cur_rel_err.value() > 1e-15 ) {
+    if ( cur_rel_err.is_defined() && cur_rel_err.value() > 1e-15 )
+    {
         
-        for ( int niter = 0 ; niter < 10 ; ++niter ) {
+        for ( int niter = 0 ; niter < 10 ; ++niter )
+        {
             
             ny2m1 = static_cast<int>(Y2.size())-1;
             
@@ -948,10 +984,12 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
             iy2     = -1;
             ik      = -1;
             
-            for ( i = 0 ; i < _n_alpha ; ++i ) {
+            for ( i = 0 ; i < _n_alpha ; ++i )
+            {
                 
                 j = find_max_lix ( *l[i] , Y2 , 0 , ny2m1 , lix );
-                if ( j >= 0 && lix > max_lix ) {
+                if ( j >= 0 && lix > max_lix )
+                {
                     max_lix = lix;
                     iy2     = j;
                     ik      = i;
@@ -978,8 +1016,10 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
             for ( i = 0 ; i < _n_alpha ; ++i )
                 (*l[ik])[i] /= lkyk;
             
-            for ( j = 0 ; j < _n_alpha ; ++j ) {
-                if ( j != ik ) {
+            for ( j = 0 ; j < _n_alpha ; ++j )
+            {
+                if ( j != ik )
+                {
                     ljyk = eval ( *Y1[ik] , *l[j] );
                     for ( i = 0 ; i < _n_alpha ; ++i )
                         (*l[j])[i] = (*l[j])[i] - ljyk * (*l[ik])[i];
@@ -988,9 +1028,11 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
             
             // save old alpha and compute new one:
             for ( i = 0 ; i < m ; ++i )
-                if ( _alpha[i] ) {
+                if ( _alpha[i] )
+                {
                     *(old_alpha[i]) = *(_alpha[i]);
-                    for ( j = 0 ; j < _n_alpha ; ++j ) {
+                    for ( j = 0 ; j < _n_alpha ; ++j )
+                    {
                         (*_alpha[i])[j] = 0.0;
                         for ( k = 0 ; k < _n_alpha ; ++k )
                             (*_alpha[i])[j] += Y1[k]->get_bb_outputs()[i] * (*l[k])[j];
@@ -1001,7 +1043,8 @@ bool NOMAD::Quad_Model::construct_WP_model ( int max_Y_size )
             new_rel_err = compute_max_rel_err();
             
             // if no better error, restore old alpha and exit loop:
-            if ( !new_rel_err.is_defined() || new_rel_err >= cur_rel_err ) {
+            if ( !new_rel_err.is_defined() || new_rel_err >= cur_rel_err )
+            {
                 tmp_alpha = _alpha;
                 _alpha    = old_alpha;
                 old_alpha = tmp_alpha;
@@ -1046,7 +1089,8 @@ bool NOMAD::Quad_Model::construct_regression_model ( double eps        ,
     int p1 = get_nY();
     
     // the number of points (p+1) must be in [(n+1)(n+2)/2;MS_MAX_Y_SIZE]:
-    if ( p1 < _n_alpha || p1 > max_Y_size ) {
+    if ( p1 < _n_alpha || p1 > max_Y_size )
+    {
 #ifdef DEBUG
         _out << std::endl
         << "NOMAD::Quad_Model::construct_regression_model(): "
@@ -1059,7 +1103,8 @@ bool NOMAD::Quad_Model::construct_regression_model ( double eps        ,
     
     // for this procedure, the number of points is limited to 500
     // (because of the SVD decomposition):
-    if ( p1 > 500 ) {
+    if ( p1 > 500 )
+    {
         reduce_Y ( NOMAD::Point ( _n , 0.0 ) , 500 );
         p1 = 500;
     }
@@ -1069,15 +1114,18 @@ bool NOMAD::Quad_Model::construct_regression_model ( double eps        ,
     int       i , j , k;
     double ** F = new double *[_n_alpha];
     double ** M = new double *[p1];
-    for ( i = 0 ; i < p1 ; ++i ) {
+    for ( i = 0 ; i < p1 ; ++i )
+    {
         M[i] = new double[_n_alpha];
         for ( j = 0 ; j < _n_alpha ; ++j )
             M[i][j] = compute_M ( i , j );
     }
     
-    for ( i = 0 ; i < _n_alpha ; ++i ) {
+    for ( i = 0 ; i < _n_alpha ; ++i )
+    {
         F[i] = new double[_n_alpha];
-        for ( j = 0 ; j <= i ; ++j ) {
+        for ( j = 0 ; j <= i ; ++j )
+        {
             F[i][j] = 0.0;
             for ( k = 0 ; k < p1 ; ++k )
                 F[i][j] += M[k][i] * M[k][j];
@@ -1088,7 +1136,8 @@ bool NOMAD::Quad_Model::construct_regression_model ( double eps        ,
     
 #ifdef DEBUG
     _out << std::endl << "F=";
-    for ( i = 0 ; i < _n_alpha ; ++i ) {
+    for ( i = 0 ; i < _n_alpha ; ++i )
+    {
         _out << "\t";
         for ( j = 0 ; j < _n_alpha ; ++j )
             _out << std::setw(12) << F[i][j] << " ";
@@ -1108,14 +1157,16 @@ bool NOMAD::Quad_Model::construct_regression_model ( double eps        ,
         V[i] = new double[_n_alpha];
     
     std::string error_msg;
-    if ( NOMAD::SVD_decomposition ( error_msg , F , W , V , _n_alpha , _n_alpha , max_mpn ) ) {
+    if ( NOMAD::SVD_decomposition ( error_msg , F , W , V , _n_alpha , _n_alpha , max_mpn ) )
+    {
         
         // compute condition number:
         compute_cond ( W , _n_alpha , eps );
         
 #ifdef DEBUG
         _out << std::endl << "F=";
-        for ( i = 0 ; i < _n_alpha ; ++i ) {
+        for ( i = 0 ; i < _n_alpha ; ++i )
+        {
             _out << "\t";
             for ( j = 0 ; j < _n_alpha ; ++j )
                 _out << std::setw(12) << F[i][j] << " ";
@@ -1128,7 +1179,8 @@ bool NOMAD::Quad_Model::construct_regression_model ( double eps        ,
         _out << std::endl << std::endl << "cond=" << _cond << std::endl;
         
         _out << std::endl << "V=";
-        for ( i = 0 ; i < _n_alpha ; ++i ) {
+        for ( i = 0 ; i < _n_alpha ; ++i )
+        {
             _out << "\t";
             for ( j = 0 ; j < _n_alpha ; ++j )
                 _out << std::setw(12) << V[i][j] << " ";
@@ -1137,7 +1189,9 @@ bool NOMAD::Quad_Model::construct_regression_model ( double eps        ,
 #endif
         
     }
-    else {
+    else
+    {
+        
 #ifdef DEBUG
         _out << std::endl << "NOMAD::Quad_Model::construct_regression_model(): "
         << "SVD decomposition (" << error_msg << ")"
@@ -1149,7 +1203,8 @@ bool NOMAD::Quad_Model::construct_regression_model ( double eps        ,
     
     // resolution of system F.alpha = M'.f(Y):
     // ---------------------------------------
-    if ( !error ) {
+    if ( !error )
+    {
         int m = static_cast<int> ( _bbot.size() );
         for ( i = 0 ; i < m ; ++i )
             if ( _alpha[i] )
@@ -1157,7 +1212,8 @@ bool NOMAD::Quad_Model::construct_regression_model ( double eps        ,
     }
     
     // free memory:
-    for ( i = 0 ; i < _n_alpha ; ++i ) {
+    for ( i = 0 ; i < _n_alpha ; ++i )
+    {
         delete [] F[i];
         delete [] V[i];
     }
@@ -1182,7 +1238,8 @@ void NOMAD::Quad_Model::compute_cond ( const double * W , int n , double eps )
 {
     double min = NOMAD::INF;
     double max = -min;
-    for ( int i = 0 ; i < n ; ++i ) {
+    for ( int i = 0 ; i < n ; ++i )
+    {
         if ( W[i] < min )
             min = W[i];
         if ( W[i] > max )
@@ -1203,7 +1260,7 @@ void NOMAD::Quad_Model::solve_regression_system ( double      ** M         ,
                                                  double      ** V         ,
                                                  int            bbo_index ,
                                                  NOMAD::Point & alpha     ,
-                                                 double         eps	      ) const
+                                                 double         eps       ) const
 {
     // resize the alpha vector:
     if ( alpha.size() != _n_alpha )
@@ -1213,7 +1270,8 @@ void NOMAD::Quad_Model::solve_regression_system ( double      ** M         ,
     int      i , k , p1 = get_nY();
     
     // solve the system:
-    for ( i = 0 ; i < _n_alpha ; ++i ) {
+    for ( i = 0 ; i < _n_alpha ; ++i )
+    {
         alpha_tmp[i] = 0.0;
         for ( k = 0 ; k < p1 ; ++k )
             alpha_tmp[i] += M[k][i] * ( _Y[k]->get_bb_outputs()[bbo_index].value() );
@@ -1224,7 +1282,8 @@ void NOMAD::Quad_Model::solve_regression_system ( double      ** M         ,
     // some W values will be zero (or near zero);
     // each value that is smaller than eps is ignored
     
-    for ( i = 0 ; i < _n_alpha ; ++i ) {
+    for ( i = 0 ; i < _n_alpha ; ++i )
+    {
         alpha_tmp2[i] = 0.0;
         for ( k = 0 ; k < _n_alpha ; ++k )
             if ( W[i] > eps )
@@ -1233,7 +1292,8 @@ void NOMAD::Quad_Model::solve_regression_system ( double      ** M         ,
     
     delete [] alpha_tmp;
     
-    for ( i = 0 ; i < _n_alpha ; ++i ) {
+    for ( i = 0 ; i < _n_alpha ; ++i )
+    {
         alpha[i] = 0.0;
         for ( k = 0 ; k < _n_alpha ; ++k )
             alpha[i] += V[i][k] * alpha_tmp2[k];
@@ -1261,7 +1321,8 @@ bool NOMAD::Quad_Model::construct_MFN_model ( double eps        ,
     int p1 = get_nY();
     
     // the number of points (p+1) must be in [n+1;(n+1)(n+2)/2-1]:
-    if ( p1 <= _nfree || p1 >= _n_alpha ) {
+    if ( p1 <= _nfree || p1 >= _n_alpha )
+    {
 #ifdef DEBUG
         _out << std::endl
         << "NOMAD::Quad_Model::construct_MFN_model(): "
@@ -1273,7 +1334,8 @@ bool NOMAD::Quad_Model::construct_MFN_model ( double eps        ,
     
     // for this procedure, the number of points is limited to 250
     // (because of the SVD decomposition):
-    if ( p1 > 250 ) {
+    if ( p1 > 250 )
+    {
         reduce_Y ( NOMAD::Point ( _n , 0.0 ) , 250 );
         p1 = 250;
     }
@@ -1360,7 +1422,8 @@ bool NOMAD::Quad_Model::construct_MFN_model ( double eps        ,
     
     std::string error_msg;
     
-    if ( NOMAD::SVD_decomposition ( error_msg , F , W , V , nF , nF , max_mpn ) ) {
+    if ( NOMAD::SVD_decomposition ( error_msg , F , W , V , nF , nF , max_mpn ) )
+    {
         
         // compute condition number:
         compute_cond ( W , nF , eps );
@@ -1433,12 +1496,12 @@ bool NOMAD::Quad_Model::construct_MFN_model ( double eps        ,
 /*  resolution of system F.[mu alpha_L]'=[f(Y) 0]'  */
 /*  for MFN interpolation (private)                 */
 /*--------------------------------------------------*/
-void NOMAD::Quad_Model::solve_MFN_system ( double      ** F         ,
+void NOMAD::Quad_Model::solve_MFN_system ( double      ** F        ,
                                           double       * W         ,
                                           double      ** V         ,
                                           int            bbo_index ,
                                           NOMAD::Point & alpha     ,
-                                          double         eps	      ) const
+                                          double         eps        ) const
 {
     // resize the alpha vector:
     if ( alpha.size() != _n_alpha )
@@ -1536,7 +1599,8 @@ void NOMAD::Quad_Model::solve_MFN_system ( double      ** F         ,
 /*-----------------------------------------------------------*/
 bool NOMAD::Quad_Model::check_Y ( void ) const
 {
-    if ( _Y.empty() ) {
+    if ( _Y.empty() )
+    {
 #ifdef DEBUG
         _out << std::endl << "NOMAD::Quad_Model::check_Y(): set Y is empty"
         << std::endl << std::endl;
@@ -1547,9 +1611,11 @@ bool NOMAD::Quad_Model::check_Y ( void ) const
     int nY = get_nY();
     int m  = static_cast<int> ( _bbot.size() );
     
-    for ( int k = 0 ; k < nY ; ++k ) {
+    for ( int k = 0 ; k < nY ; ++k )
+    {
         
-        if ( _Y[k] == NULL ) {
+        if ( _Y[k] == NULL )
+        {
 #ifdef DEBUG
             _out << std::endl
             << "NOMAD::Quad_Model::check_Y(): NULL pointer in the set Y"
@@ -1558,7 +1624,8 @@ bool NOMAD::Quad_Model::check_Y ( void ) const
             return false;
         }
         
-        if ( _Y[k]->get_eval_status() != NOMAD::EVAL_OK ) {
+        if ( _Y[k]->get_eval_status() != NOMAD::EVAL_OK )
+        {
 #ifdef DEBUG
             _out << std::endl
             << "NOMAD::Quad_Model::check_Y(): a point in Y failed to evaluate"
@@ -1569,7 +1636,8 @@ bool NOMAD::Quad_Model::check_Y ( void ) const
         
         const NOMAD::Point & bbo = _Y[k]->get_bb_outputs();
         
-        if ( !bbo.is_complete() ) {
+        if ( !bbo.is_complete() )
+        {
 #ifdef DEBUG
             _out << std::endl
             << "NOMAD::Quad_Model::check_Y(): some bb outputs in Y are not defined"
@@ -1578,7 +1646,8 @@ bool NOMAD::Quad_Model::check_Y ( void ) const
             return false;
         }
         
-        if ( bbo.size() != m ) {
+        if ( bbo.size() != m )
+        {
 #ifdef DEBUG
             _out << std::endl
             << "NOMAD::Quad_Model::check_Y(): "
@@ -1588,7 +1657,8 @@ bool NOMAD::Quad_Model::check_Y ( void ) const
             return false;
         }
         
-        if ( _Y[k]->size() != _n ) {
+        if ( _Y[k]->size() != _n )
+        {
 #ifdef DEBUG
             _out << std::endl
             << "NOMAD::Quad_Model::check_Y(): "
@@ -1680,17 +1750,22 @@ void NOMAD::Quad_Model::eval_hf ( const NOMAD::Point  & x      ,
     int           m  = static_cast<int>(_bbot.size());
     NOMAD::Double bboi;
     
-    for ( int i = 0 ; i < m ; ++i ) {
+    for ( int i = 0 ; i < m ; ++i )
+    {
         
-        if ( _alpha[i] ) {
+        if ( _alpha[i] )
+        {
             
             bboi = eval ( x , *_alpha[i] );
             
-            if ( bboi.is_defined() ) {
+            if ( bboi.is_defined() )
+            {
                 
-                if ( _bbot[i] == NOMAD::EB || _bbot[i] == NOMAD::PEB_E ) {
+                if ( _bbot[i] == NOMAD::EB || _bbot[i] == NOMAD::PEB_E )
+                {
                     
-                    if ( bboi > h_min ) {
+                    if ( bboi > h_min )
+                    {
                         h.clear();
                         return;
                     }
@@ -1698,9 +1773,12 @@ void NOMAD::Quad_Model::eval_hf ( const NOMAD::Point  & x      ,
                 
                 else if ( ( _bbot[i] == NOMAD::FILTER ||
                            _bbot[i] == NOMAD::PB     ||
-                           _bbot[i] == NOMAD::PEB_P     ) ) {
-                    if ( bboi > h_min ) {
-                        switch ( h_norm ) {
+                           _bbot[i] == NOMAD::PEB_P     ) )
+                {
+                    if ( bboi > h_min )
+                    {
+                        switch ( h_norm )
+                        {
                             case NOMAD::L1:
                                 h += bboi;
                                 break;
@@ -1737,15 +1815,22 @@ NOMAD::Double NOMAD::Quad_Model::compute_max_rel_err ( void ) const
     NOMAD::Double truth_value , model_value , rel_err , max_rel_err;
     int           k , nY = get_nY() , m = static_cast<int> ( _bbot.size() );
     
-    for ( int bbo_index = 0 ; bbo_index < m ; ++bbo_index ) {
-        if ( _alpha[bbo_index] ) {
-            for ( k = 0 ; k < nY ; ++k ) {
-                if ( _Y[k] && _Y[k]->get_eval_status() == NOMAD::EVAL_OK ) {
+    for ( int bbo_index = 0 ; bbo_index < m ; ++bbo_index )
+    {
+        if ( _alpha[bbo_index] )
+        {
+            for ( k = 0 ; k < nY ; ++k )
+            {
+                if ( _Y[k] && _Y[k]->get_eval_status() == NOMAD::EVAL_OK )
+                {
                     truth_value = _Y[k]->get_bb_outputs()[bbo_index];
-                    if ( truth_value.is_defined() ) {
+                    if ( truth_value.is_defined() )
+                    {
                         model_value = eval ( *_Y[k] , *_alpha[bbo_index] );
-                        if ( model_value.is_defined() ) {
-                            if ( truth_value.abs() != 0.0 ) {
+                        if ( model_value.is_defined() )
+                        {
+                            if ( truth_value.abs() != 0.0 )
+                            {
                                 rel_err = (truth_value-model_value).abs() / truth_value.abs();
                                 if ( !max_rel_err.is_defined() || rel_err > max_rel_err )
                                     max_rel_err = rel_err;
@@ -1790,7 +1875,7 @@ void NOMAD::Quad_Model::compute_model_error ( int             bbo_index   ,
         {
             truth_value = _Y[k]->get_bb_outputs()[bbo_index];
             
-            if ( truth_value.is_defined() ) 
+            if ( truth_value.is_defined() )
             {
                 model_value = eval ( *_Y[k] , *_alpha[bbo_index] );
                 if ( model_value.is_defined() )
@@ -1798,11 +1883,11 @@ void NOMAD::Quad_Model::compute_model_error ( int             bbo_index   ,
                     rel_err.clear();
                     if ( truth_value.abs() != 0.0 )
                         rel_err = (truth_value-model_value).abs() / truth_value.abs();
-                    else 
+                    else
                     {
                         if (truth_value.abs()==model_value.abs())
                             rel_err=0.0;
-                        else 
+                        else
                             rel_err=NOMAD::INF;
                     }
                     if ( !max_rel_err.is_defined() || rel_err > max_rel_err )
@@ -1859,7 +1944,8 @@ void NOMAD::Quad_Model::compute_model_error ( int             bbo_index   ,
 /*-----------------------------------------------------------*/
 void NOMAD::Quad_Model::display_model_coeffs ( const NOMAD::Display & out ) const
 {
-    if ( _error_flag ) {
+    if ( _error_flag )
+    {
         out << "model coefficients: could not be constructed" << std::endl;
         return;
     }
@@ -1867,11 +1953,13 @@ void NOMAD::Quad_Model::display_model_coeffs ( const NOMAD::Display & out ) cons
     int m = static_cast<int> ( _bbot.size() );
     
     out << NOMAD::open_block ( "model coefficients" );
-    for ( int i = 0 ; i < m ; ++i ) {
+    for ( int i = 0 ; i < m ; ++i )
+    {
         out << "output #";
         out.display_int_w ( i , m );
         out << ": ";
-        if ( _alpha[i] ) {
+        if ( _alpha[i] )
+        {
             out<< "[ ";
             _alpha[i]->display ( out , " " , 6 );
             out << " ]";
@@ -1891,11 +1979,13 @@ void NOMAD::Quad_Model::display_Y ( const NOMAD::Display & out   ,
 {
     out << NOMAD::open_block ( title );
     int nY = get_nY();
-    for ( int k = 0 ; k < nY ; ++k ) {
+    for ( int k = 0 ; k < nY ; ++k )
+    {
         out << "#";
         out.display_int_w ( k , nY );
         out << ": ";
-        if ( _Y[k] ) {
+        if ( _Y[k] )
+        {
             out << "( ";
             _Y[k]->NOMAD::Point::display    ( out , " " , 12 );
             out << " ) bbo=[ ";
@@ -1914,7 +2004,8 @@ void NOMAD::Quad_Model::display_Y ( const NOMAD::Display & out   ,
 /*-------------------------------------------------------*/
 void NOMAD::Quad_Model::display_Y_error ( const NOMAD::Display & out ) const
 {
-    if ( _error_flag ) {
+    if ( _error_flag )
+    {
         out << "model error on the interpolation set: cannot be computed"
         << std::endl;
         return;
@@ -1925,8 +2016,10 @@ void NOMAD::Quad_Model::display_Y_error ( const NOMAD::Display & out ) const
     int m = static_cast<int> ( _bbot.size() );
     
     for ( i = 0 ; i < m ; ++i )
-        if ( _alpha[i] ) {
-            if ( index >= 0 ) {
+        if ( _alpha[i] )
+        {
+            if ( index >= 0 )
+            {
                 index = -1;
                 break;
             }
@@ -1937,7 +2030,8 @@ void NOMAD::Quad_Model::display_Y_error ( const NOMAD::Display & out ) const
     NOMAD::Double error , min_rel_err , max_rel_err , avg_rel_err;
     
     // only one output:
-    if ( index >= 0 ) {
+    if ( index >= 0 )
+    {
         compute_model_error ( index , error , min_rel_err , max_rel_err , avg_rel_err );
         out << "model errors on the interpolation set: error="
         << error << " min_rel_err=" << min_rel_err
@@ -1946,7 +2040,9 @@ void NOMAD::Quad_Model::display_Y_error ( const NOMAD::Display & out ) const
     }
     
     // several outputs:
-    else {
+    else
+    {
+        
         
         out.open_block ( "model error on the interpolation set" );
         
@@ -1959,7 +2055,8 @@ void NOMAD::Quad_Model::display_Y_error ( const NOMAD::Display & out ) const
         int cnt = 0;
         
         for ( i = 0 ; i < m ; ++i )
-            if ( _alpha[i] ) {
+            if ( _alpha[i] )
+            {
                 
                 ++cnt;
                 
@@ -1994,15 +2091,15 @@ void NOMAD::Quad_Model::display_Y_error ( const NOMAD::Display & out ) const
 /*-----------------------------------------------*/
 /*     display Lagrange polynomials (private)    */
 /*-----------------------------------------------*/
-void NOMAD::Quad_Model::display_lagrange_polynomials
-( const std::vector<NOMAD::Point      *> & l ,
- const std::vector<NOMAD::Eval_Point *> & Y   ) const
+void NOMAD::Quad_Model::display_lagrange_polynomials ( const std::vector<NOMAD::Point      *> & l ,
+                                                      const std::vector<NOMAD::Eval_Point *> & Y   ) const
 {
     int i , j , nY = static_cast<int> ( Y.size() );
     
     // display Lagrange polynomials:
     _out << std::endl << NOMAD::open_block ( "Lagrange polynomials" );
-    for ( i = 0 ; i < _n_alpha ; ++i ) {
+    for ( i = 0 ; i < _n_alpha ; ++i )
+    {
         _out << "l[";
         _out.display_int_w ( i , _n_alpha );
         _out << "] = [ ";
@@ -2013,11 +2110,13 @@ void NOMAD::Quad_Model::display_lagrange_polynomials
     
     // display current set Y:
     _out << std::endl << NOMAD::open_block ( "current set Y" );
-    for ( i = 0 ; i < nY ; ++i ) {
+    for ( i = 0 ; i < nY ; ++i )
+    {
         _out << "Y[";
         _out.display_int_w ( i , nY );
         _out << "] = ";
-        if ( Y[i] ) {
+        if ( Y[i] )
+        {
             _out << "( ";
             Y[i]->NOMAD::Point::display ( _out , " " , 6 , -1 );
             _out << " )";
@@ -2032,13 +2131,16 @@ void NOMAD::Quad_Model::display_lagrange_polynomials
     // display l(Y): should be the identity matrix:
     NOMAD::Double tmp , err = 0.0;
     _out << std::endl << NOMAD::open_block ( "l(Y)" );
-    for ( i = 0 ; i < _n_alpha ; ++i ) {
+    for ( i = 0 ; i < _n_alpha ; ++i )
+    {
         _out << "l[";
         _out.display_int_w ( i , _n_alpha );
         _out << "]: ";
-        for ( j = 0 ; j < _n_alpha ; ++j ) {
+        for ( j = 0 ; j < _n_alpha ; ++j )
+        {
             tmp.clear();
-            if ( j < nY && Y[j] ) {
+            if ( j < nY && Y[j] )
+            {
                 tmp  = eval ( *Y[j] , *l[i] );
                 err += (i==j) ? (tmp-1.0).abs() : tmp.abs();
             }
diff --git a/src/Quad_Model.hpp b/src/Quad_Model.hpp
index b9320c7..da0edf9 100644
--- a/src/Quad_Model.hpp
+++ b/src/Quad_Model.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Quad_Model.hpp
-  \brief  Quadratic regression or MFN interpolation model (headers)
-  \author Sebastien Le Digabel
-  \date   2010-08-31
-  \see    Quad_Model.cpp
-*/
+ \file   Quad_Model.hpp
+ \brief  Quadratic regression or MFN interpolation model (headers)
+ \author Sebastien Le Digabel
+ \date   2010-08-31
+ \see    Quad_Model.cpp
+ */
 #ifndef __QUAD_MODEL__
 #define __QUAD_MODEL__
 
@@ -48,405 +55,405 @@
 #include "Evaluator.hpp"
 
 namespace NOMAD {
-
-  /// Class for quadratic regression or MFN interpolation model.
-  class Quad_Model : private NOMAD::Uncopyable {
-
-    /*-------------------------------------------------------------------------*/
-  private:
-
-    const NOMAD::Display                     & _out;  ///< Display.
-
-    std::vector<NOMAD::Eval_Point *>           _Y;    ///< Interpolation points.
-
-    const std::vector<NOMAD::bb_output_type> & _bbot; ///< Blackbox output types.
-
-    NOMAD::interpolation_type _interpolation_type;    ///< Interpolation type.
-
-    int                       _n;                     ///< Dimension.
-    int                       _nfree;                 ///< Number of free variables.
-    int                       _n_alpha;               ///< Number of model coefficients.
-    bool                    * _fixed_vars;            ///< Fixed variables.
-    int                     * _index;                 ///< Var. indexes with fixed var.
-    NOMAD::Point           ** _alpha;                 ///< Model coefficients.
-    NOMAD::Point              _center;                ///< Model center.
-    NOMAD::Point              _ref;                   ///< Reference for scaling.
-    NOMAD::Point              _scaling;               ///< Scaling.
-    const NOMAD::Cache      & _cache;                 ///< Cache.
-    const NOMAD::Signature  & _signature;             ///< Signature.
-    bool                      _error_flag;            ///< Error flag.
-	std::list<NOMAD::Direction>  _dirP;               ///< Directions used for scaling (may be empty)
-	NOMAD::Point _delta_m;                           ///< Mesh size used for scaling 
-	NOMAD::Double _epsilon;                           ///< Offset for direction scaling 
-	  
-	  
-    NOMAD::Double             _cond;                  ///< Condition number.
-
-    /// Initialize alpha (model parameters).
-    void init_alpha ( void );
-
-    /// Check if an unscaled point is in \c B(center,radius) for a given radius.
-    /**
-       \param x      The unscaled point -- \b IN.
-       \param radius The radius         -- \b IN.
-       \return \c true is \c x is in \c B(center,radius).
-    */
-    bool is_within_radius ( const NOMAD::Point & x      ,
-			    const NOMAD::Point & radius   ) const;
-
-    /// Check the interpolation set \c Y.
-    /**
-       \return \c true if the interpolation set is valid.
-    */
-    bool check_Y ( void ) const;
-
-    /// Check outputs before the integration into \c Y.
-    /**
-       \param bbo The outputs       -- \b IN.
-       \param m   Number of outputs -- \b IN.
-       return \c true if the \c m outputs are valid.
-    */
-    bool check_outputs ( const NOMAD::Point & bbo , int m ) const;
-
-    /// Reduce the number of interpolation points.
-    /**
-       The points are sorted accorded to their distance to the model center.
-       \param center      Center of the model                -- \b IN.
-       \param max_Y_size  Max number of interpolation points -- \b IN.
-    */
-    void reduce_Y  ( const NOMAD::Point & center , int max_Y_size );
-
-    /// Compute condition number.
-    /**
-       \param W   Matrix W given as a vector -- \b IN.
-       \param n   Size of \c W               -- \b IN
-       \param eps Epsilon                    -- \b IN.
-    */
-    void compute_cond ( const double * W , int n , double eps );
-
-    /// Compute the cumulated error of a model for one output.
-    /**
-       The errors are computed on the interpolation set \c Y.
-       \param bbo_index   Blackbox output index  -- \b IN.
-       \param error       Cumulated error        -- \b OUT. 
-       \param min_rel_err Min relative error     -- \b OUT.
-       \param max_rel_err Max relative error     -- \b OUT.
-       \param avg_rel_err Average relative error -- \b OUT.
-    */
-    void compute_model_error ( int             bbo_index   ,
-			       NOMAD::Double & error       ,
-			       NOMAD::Double & min_rel_err ,
-			       NOMAD::Double & max_rel_err ,
-			       NOMAD::Double & avg_rel_err   ) const;
-
-    /// Compute the maximal relative error of a model.
-    /**
-       The error is computed for the interpolation set \c Y.
-       \return The maximal relative error.
-    */
-    NOMAD::Double compute_max_rel_err ( void ) const;
-
-    /// Compute the element \c (i,j) of the interpolation matrix \c M(phi,Y).
-    /**
-       \param i Row index    -- \b IN.
-       \param j Column index -- \b IN.
-    */
-    double compute_M ( int i , int j ) const;
-
-    /// Construct Minimum Frobenius Norm (MFN) model.
-    /**
-       - This occurs when \c p+1 \c < \c (n+1)(n+2)/2.
-       \param eps        Epsilon                               -- \b IN.
-       \param max_mpn    Maximum \c m+n value for SVD matrices -- \b IN.
-       \param max_Y_size Maximum number of elements in \c Y    -- \b IN.
-       \return \c true if the construction succeeded
-    */
-    bool construct_MFN_model ( double eps , int max_mpn , int max_Y_size );
-
-    /// Construct regression model.
-    /**
-       - This occurs when \c p+1 \c >= \c (n+1)(n+2)/2.
-       \param eps        Epsilon                               -- \b IN.
-       \param max_mpn    Maximum \c m+n value for SVD matrices -- \b IN.
-       \param max_Y_size Maximum number of elements in \c Y    -- \b IN.
-       \return \c true if the construction succeeded
-    */
-    bool construct_regression_model ( double eps        ,
-				      int    max_mpn    ,
-				      int    max_Y_size   );
-
-    /// Construct well-poised (WP) model.
-    /**
-       \param max_Y_size Maximum number of elements in \c Y -- \b IN.
-       \return \c true if the construction succeeded
-    */
-    bool construct_WP_model ( int max_Y_size );
-
-    /// Find interpolation point with max Lagrange polynomial value.
-    /**
-       \param  li      Lagrange polynomial             -- \b IN.
-       \param  Y       Interpolation points candidates -- \b IN.
-       \param  i1      Initial index in \c Y           -- \b IN.
-       \param  i2      Final index in \c Y             -- \b IN.
-       \param  max_lix Absolute value of the max value -- \b OUT.
-       \return Index of interpolation point.
-    */
-    int find_max_lix ( const NOMAD::Point                     & li      ,
-		       const std::vector<NOMAD::Eval_Point *> & Y       ,
-		       int                                      i1      ,
-		       int                                      i2      ,
-		       NOMAD::Double                          & max_lix   ) const;
-
-    /// Resolution of system \c F.[mu alpha_L]'=[f(Y) 0]' for MFN interpolation.
-    /**
-       \param U         Matrix \c F=U from the SVD decomposition \c U.W.V' -- \b IN.
-       \param W         Matrix \c W from the SVD decomposition \c U.W.V'   -- \b IN.
-       \param V         Matrix \c V from the SVD decomposition \c U.W.V'   -- \b IN.
-       \param bbo_index Blackbox output index                              -- \b IN.
-       \param alpha     Model parameters                                   -- \b IN.
-       \param eps       Epsilon                                            -- \b IN.
-    */
-    void solve_MFN_system ( double      ** U         ,
-			    double       * W         , 
-			    double      ** V         ,
-			    int            bbo_index ,
-			    NOMAD::Point & alpha     ,
-			    double         eps	      ) const;
-
-    /// Resolution of system \c F.alpha=M'.f(Y) for the regression.
-    /**
-       \param M         Matrix \c M                                        -- \b IN.
-       \param U         Matrix \c F=U from the SVD decomposition \c U.W.V' -- \b IN.
-       \param W         Matrix \c W from the SVD decomposition \c U.W.V'   -- \b IN.
-       \param V         Matrix \c V from the SVD decomposition \c U.W.V'   -- \b IN.
-       \param bbo_index Blackbox output index                              -- \b IN.
-       \param alpha     Model parameters                                   -- \b IN.
-       \param eps       Epsilon                                            -- \b IN.
-    */
-    void solve_regression_system ( double      ** M         ,
-				   double      ** U         ,
-				   double       * W         , 
-				   double      ** V         ,
-				   int            bbo_index ,
-				   NOMAD::Point & alpha     ,
-				   double         eps	      ) const;
-
-    /// Display Lagrange polynomials.
-    /**
-       \param l Lagrange polynomials -- \b IN.
-       \param Y Interpolation set    -- \b IN.
-    */
-    void display_lagrange_polynomials 
-    ( const std::vector<NOMAD::Point      *> & l ,
-      const std::vector<NOMAD::Eval_Point *> & Y   ) const;
-
+    
+    /// Class for quadratic regression or MFN interpolation model.
+    class Quad_Model : private NOMAD::Uncopyable {
+        
+        /*-------------------------------------------------------------------------*/
+    private:
+        
+        const NOMAD::Display                     & _out;  ///< Display.
+        
+        std::vector<NOMAD::Eval_Point *>           _Y;    ///< Interpolation points.
+        
+        const std::vector<NOMAD::bb_output_type> & _bbot; ///< Blackbox output types.
+        
+        NOMAD::interpolation_type _interpolation_type;    ///< Interpolation type.
+        
+        int                       _n;                     ///< Dimension.
+        int                       _nfree;                 ///< Number of free variables.
+        int                       _n_alpha;               ///< Number of model coefficients.
+        bool                    * _fixed_vars;            ///< Fixed variables.
+        int                     * _index;                 ///< Var. indexes with fixed var.
+        NOMAD::Point           ** _alpha;                 ///< Model coefficients.
+        NOMAD::Point              _center;                ///< Model center.
+        NOMAD::Point              _ref;                   ///< Reference for scaling.
+        NOMAD::Point              _scaling;               ///< Scaling.
+        const NOMAD::Cache      & _cache;                 ///< Cache.
+        const NOMAD::Signature  & _signature;             ///< Signature.
+        bool                      _error_flag;            ///< Error flag.
+        std::list<NOMAD::Direction>  _dirP;               ///< Directions used for scaling (may be empty)
+        NOMAD::Point _delta_m;                           ///< Mesh size used for scaling
+        NOMAD::Double _epsilon;                           ///< Offset for direction scaling
+        
+        
+        NOMAD::Double             _cond;                  ///< Condition number.
+        
+        /// Initialize alpha (model parameters).
+        void init_alpha ( void );
+        
+        /// Check if an unscaled point is in \c B(center,radius) for a given radius.
+        /**
+         \param x      The unscaled point -- \b IN.
+         \param radius The radius         -- \b IN.
+         \return \c true is \c x is in \c B(center,radius).
+         */
+        bool is_within_radius ( const NOMAD::Point & x      ,
+                               const NOMAD::Point & radius   ) const;
+        
+        /// Check the interpolation set \c Y.
+        /**
+         \return \c true if the interpolation set is valid.
+         */
+        bool check_Y ( void ) const;
+        
+        /// Check outputs before the integration into \c Y.
+        /**
+         \param bbo The outputs       -- \b IN.
+         \param m   Number of outputs -- \b IN.
+         return \c true if the \c m outputs are valid.
+         */
+        bool check_outputs ( const NOMAD::Point & bbo , int m ) const;
+        
+        /// Reduce the number of interpolation points.
+        /**
+         The points are sorted accorded to their distance to the model center.
+         \param center      Center of the model                -- \b IN.
+         \param max_Y_size  Max number of interpolation points -- \b IN.
+         */
+        void reduce_Y  ( const NOMAD::Point & center , int max_Y_size );
+        
+        /// Compute condition number.
+        /**
+         \param W   Matrix W given as a vector -- \b IN.
+         \param n   Size of \c W               -- \b IN
+         \param eps Epsilon                    -- \b IN.
+         */
+        void compute_cond ( const double * W , int n , double eps );
+        
+        /// Compute the cumulated error of a model for one output.
+        /**
+         The errors are computed on the interpolation set \c Y.
+         \param bbo_index   Blackbox output index  -- \b IN.
+         \param error       Cumulated error        -- \b OUT.
+         \param min_rel_err Min relative error     -- \b OUT.
+         \param max_rel_err Max relative error     -- \b OUT.
+         \param avg_rel_err Average relative error -- \b OUT.
+         */
+        void compute_model_error ( int             bbo_index   ,
+                                  NOMAD::Double & error       ,
+                                  NOMAD::Double & min_rel_err ,
+                                  NOMAD::Double & max_rel_err ,
+                                  NOMAD::Double & avg_rel_err   ) const;
+        
+        /// Compute the maximal relative error of a model.
+        /**
+         The error is computed for the interpolation set \c Y.
+         \return The maximal relative error.
+         */
+        NOMAD::Double compute_max_rel_err ( void ) const;
+        
+        /// Compute the element \c (i,j) of the interpolation matrix \c M(phi,Y).
+        /**
+         \param i Row index    -- \b IN.
+         \param j Column index -- \b IN.
+         */
+        double compute_M ( int i , int j ) const;
+        
+        /// Construct Minimum Frobenius Norm (MFN) model.
+        /**
+         - This occurs when \c p+1 \c < \c (n+1)(n+2)/2.
+         \param eps        Epsilon                               -- \b IN.
+         \param max_mpn    Maximum \c m+n value for SVD matrices -- \b IN.
+         \param max_Y_size Maximum number of elements in \c Y    -- \b IN.
+         \return \c true if the construction succeeded
+         */
+        bool construct_MFN_model ( double eps , int max_mpn , int max_Y_size );
+        
+        /// Construct regression model.
+        /**
+         - This occurs when \c p+1 \c >= \c (n+1)(n+2)/2.
+         \param eps        Epsilon                               -- \b IN.
+         \param max_mpn    Maximum \c m+n value for SVD matrices -- \b IN.
+         \param max_Y_size Maximum number of elements in \c Y    -- \b IN.
+         \return \c true if the construction succeeded
+         */
+        bool construct_regression_model ( double eps        ,
+                                         int    max_mpn    ,
+                                         int    max_Y_size   );
+        
+        /// Construct well-poised (WP) model.
+        /**
+         \param max_Y_size Maximum number of elements in \c Y -- \b IN.
+         \return \c true if the construction succeeded
+         */
+        bool construct_WP_model ( int max_Y_size );
+        
+        /// Find interpolation point with max Lagrange polynomial value.
+        /**
+         \param  li      Lagrange polynomial             -- \b IN.
+         \param  Y       Interpolation points candidates -- \b IN.
+         \param  i1      Initial index in \c Y           -- \b IN.
+         \param  i2      Final index in \c Y             -- \b IN.
+         \param  max_lix Absolute value of the max value -- \b OUT.
+         \return Index of interpolation point.
+         */
+        int find_max_lix ( const NOMAD::Point                     & li      ,
+                          const std::vector<NOMAD::Eval_Point *> & Y       ,
+                          int                                      i1      ,
+                          int                                      i2      ,
+                          NOMAD::Double                          & max_lix   ) const;
+        
+        /// Resolution of system \c F.[mu alpha_L]'=[f(Y) 0]' for MFN interpolation.
+        /**
+         \param U         Matrix \c F=U from the SVD decomposition \c U.W.V' -- \b IN.
+         \param W         Matrix \c W from the SVD decomposition \c U.W.V'   -- \b IN.
+         \param V         Matrix \c V from the SVD decomposition \c U.W.V'   -- \b IN.
+         \param bbo_index Blackbox output index                              -- \b IN.
+         \param alpha     Model parameters                                   -- \b IN.
+         \param eps       Epsilon                                            -- \b IN.
+         */
+        void solve_MFN_system ( double      ** U         ,
+                               double       * W         ,
+                               double      ** V         ,
+                               int            bbo_index ,
+                               NOMAD::Point & alpha     ,
+                               double         eps          ) const;
+        
+        /// Resolution of system \c F.alpha=M'.f(Y) for the regression.
+        /**
+         \param M         Matrix \c M                                        -- \b IN.
+         \param U         Matrix \c F=U from the SVD decomposition \c U.W.V' -- \b IN.
+         \param W         Matrix \c W from the SVD decomposition \c U.W.V'   -- \b IN.
+         \param V         Matrix \c V from the SVD decomposition \c U.W.V'   -- \b IN.
+         \param bbo_index Blackbox output index                              -- \b IN.
+         \param alpha     Model parameters                                   -- \b IN.
+         \param eps       Epsilon                                            -- \b IN.
+         */
+        void solve_regression_system ( double      ** M         ,
+                                      double      ** U         ,
+                                      double       * W         ,
+                                      double      ** V         ,
+                                      int            bbo_index ,
+                                      NOMAD::Point & alpha     ,
+                                      double         eps          ) const;
+        
+        /// Display Lagrange polynomials.
+        /**
+         \param l Lagrange polynomials -- \b IN.
+         \param Y Interpolation set    -- \b IN.
+         */
+        void display_lagrange_polynomials
+        ( const std::vector<NOMAD::Point      *> & l ,
+         const std::vector<NOMAD::Eval_Point *> & Y   ) const;
+        
 #ifdef MODEL_STATS
-    mutable NOMAD::Double _Yw; ///< Width of the interpolation set \c Y.
-
-  public:
-
-    /// Access to the width of the interpolation set \c X (or \c Y).
-    /**
-       \return The width of the interpolation set.
-    */
-    const NOMAD::Double & get_Yw ( void ) const { return _Yw; }
+        mutable NOMAD::Double _Yw; ///< Width of the interpolation set \c Y.
+        
+    public:
+        
+        /// Access to the width of the interpolation set \c X (or \c Y).
+        /**
+         \return The width of the interpolation set.
+         */
+        const NOMAD::Double & get_Yw ( void ) const { return _Yw; }
 #endif
-
-    /*-------------------------------------------------------------------------*/
-  public:
-
-    /// Constructor.
-    /**
-       \param out           The NOMAD::Display object   -- \b IN.
-       \param bbot          Output types                -- \b IN.
-       \param cache         Cache                       -- \b IN.
-       \param signature     Signature                   -- \b IN.
-    */
-    Quad_Model ( const NOMAD::Display                     & out       ,
-		 const std::vector<NOMAD::bb_output_type> & bbot      ,
-		 const NOMAD::Cache                       & cache     ,
-		 const NOMAD::Signature                   & signature   );
-
-    /// Destructor.
-    virtual ~Quad_Model ( void );
-
-    /// Evaluate a model at a given point.
-    /**
-       \param x     The point        -- \b IN.
-       \param alpha Model parameters -- \b IN.
-       \return Model value.
-    */
-    NOMAD::Double eval ( const NOMAD::Point & x     ,
-			 const NOMAD::Point & alpha   ) const;
-
-	  /// Compute model \c h and \c f values at a point.
-    /**
-       \param x      The point                 -- \b IN.
-       \param h_min  Value of \c h_min         -- \b IN..
-       \param h_norm Norm used to compute \c h -- \b IN..
-       \param h      Value of \c h             -- \b OUT.
-       \param f      Value of \c f             -- \b OUT.
-    */
-    void eval_hf ( const NOMAD::Point  & x      ,
-		   const NOMAD::Double & h_min  ,
-		   NOMAD::hnorm_type     h_norm ,
-		   NOMAD::Double       & h      ,
-		   NOMAD::Double       & f        ) const;
-
-	  
-    /// Access to the interpolation type.
-    /**
-       \return The interpolation type.
-    */
-    const NOMAD::interpolation_type & get_interpolation_type ( void ) const
-    {
-      return _interpolation_type;
-    }
-
-    /// Access to the center of the model.
-    /**
-       \return The center.
-    */
-    const NOMAD::Point & get_center ( void ) const { return _center; }
-
-    /// Access to the dimension.
-    /**
-       \return The dimension \c n.
-    */
-    int get_n ( void ) const { return _n; }
-
-    /// Access to the number of free variables.
-    /**
-       \return The number of free variables \c n.
-    */
-    int get_nfree ( void ) const { return _nfree; }
-
-    /// Access to the model parameters.
-    /**
-       \return The model parameters \c alpha.
-    */
-    NOMAD::Point ** get_alpha ( void ) const { return _alpha; }
-
-    /// Check if the model is ready for evaluations.
-    /**
-       \return A boolean equal to \c true if the model is ready.
-    */
-    bool check ( void ) const;
-
-    /// Access to the fixed variables.
-    /**
-       \param i Variable index -- \b IN.
-       \return \c true if variable \c i is fixed.
-    */
-    bool variable_is_fixed ( int i ) const { return _fixed_vars[i]; }
-
-    /// Access to the number of interpolation points.
-    /**
-       \return The number of interpolation points \c nY=p+1.
-    */
-    int get_nY ( void ) const { return static_cast<int> ( _Y.size() ); }
-
-    /// Access to the condition number.
-    /**
-       \return The condition number.
-    */
-    const NOMAD::Double & get_cond ( void ) const { return _cond; }
-
-    /// Access to the error flag.
-    /**
-       \return The error flag.
-    */
-    bool get_error_flag ( void ) const { return _error_flag; }
-
-    /// Construct the interpolation set \c Y.
-    /**
-       \param center               Model center                       -- \b IN.
-       \param interpolation_radius Interpolation radius               -- \b IN.
-       \param max_Y_size           Maximum number of elements in \c Y -- \b IN.
-    */
-    void construct_Y ( const NOMAD::Point & center               ,
-		       const NOMAD::Point & interpolation_radius ,
-		       int                  max_Y_size             );
-
-    /// Construct \c m models (one by output).
-    /**
-       \param use_WP     Use or not well-poisedness            -- \b IN.
-       \param eps        Epsilon                               -- \b IN.
-       \param max_mpn    Maximum \c m+n value for SVD matrices -- \b IN.
-       \param max_Y_size Maximum number of elements in \c Y    -- \b IN.
-    */
-    void construct ( bool   use_WP     ,
-		     double eps        ,
-		     int    max_mpn    ,
-		     int    max_Y_size   );
-
-    /// Define scaling to put all coordinates centered in \c [-r;r].
-    /**
-       - Looks also for fixed variables.
-       \param r The \c r parameter corresponds to \c MODEL_RADIUS_FACTOR -- \b IN.
-    */
-    void define_scaling ( const NOMAD::Double & r );
-
-	  /// Define scaling based on directions. See paper: Reducing the number of function evaluations in Mesh Adaptive Direct Search algorithms, Audet, Ianni, LeDigabel, Tribes, 2014     
-	  /**
-       - Looks also for fixed variables.
-       \param dirP    The \c dirP parameter corresponds to set of directions formin a hyper-cube centered on poll center -- \b IN.
-	   \param delta_m The \c delta_m parameter is the dimension of the mesh -- \b IN.
-	   \param epsilon The \c epsilon parameter is the hyper-cube offset from the poll center -- \b IN.
-	   */	  
-	void define_scaling_by_directions ( const std::list<NOMAD::Direction> & dirP, const NOMAD::Point & delta_m, const NOMAD::Double &epsilon  );
-
-	  
-    /// Scale a point.
-    /**
-       \param x The point to scale -- \b IN/OUT.
-       \return \c true if the scaling worked.
-    */
-    bool scale ( NOMAD::Point & x ) const;
-
-    /// Unscale a point.
-    /**
-       \param x The point to unscale -- \b IN/OUT.
-       \return \c true if the unscaling worked.
-    */
-    bool unscale ( NOMAD::Point & x ) const;
-	  
-	  /// Unscale the gradient at a point.
-	  /**
-       \param x The grad to unscale -- \b IN/OUT.
-       \return \c true if the unscaling worked.
-	   */
-	  bool unscale_grad ( NOMAD::Point & x ) const;	  
-	  
-
-    /// Check if a caled point is inside the trust radius.
-    /**
-       \param x The scaled point -- \b IN.
-       \return  \c true is \c x is in the trust radius.
-    */
-    bool is_within_trust_radius ( const NOMAD::Point & x ) const;
-
-    /// Display the model coefficients.
-    /**
-       \param out   The NOMAD::Display object -- \b IN.
-    */
-    void display_model_coeffs ( const NOMAD::Display & out ) const;
-
-    /// Display the interpolation set \c Y.
-    /**
-       \param out   The NOMAD::Display object  -- \b IN.
-       \param title Title of the display block -- \b IN
-                    --\b optional (default="interpolation set Y").
-    */
-    void display_Y ( const NOMAD::Display & out ,
-		     const std::string    & title = "interpolation set Y" ) const;
-
-    /// Display cumulated error on the interpolation points.
-    /**
-       \param out   The NOMAD::Display object -- \b IN.
-    */
-    void display_Y_error ( const NOMAD::Display & out ) const;
-  };
+        
+        /*-------------------------------------------------------------------------*/
+    public:
+        
+        /// Constructor.
+        /**
+         \param out           The NOMAD::Display object   -- \b IN.
+         \param bbot          Output types                -- \b IN.
+         \param cache         Cache                       -- \b IN.
+         \param signature     Signature                   -- \b IN.
+         */
+        Quad_Model ( const NOMAD::Display                     & out       ,
+                    const std::vector<NOMAD::bb_output_type> & bbot      ,
+                    const NOMAD::Cache                       & cache     ,
+                    const NOMAD::Signature                   & signature   );
+        
+        /// Destructor.
+        virtual ~Quad_Model ( void );
+        
+        /// Evaluate a model at a given point.
+        /**
+         \param x     The point        -- \b IN.
+         \param alpha Model parameters -- \b IN.
+         \return Model value.
+         */
+        NOMAD::Double eval ( const NOMAD::Point & x     ,
+                            const NOMAD::Point & alpha   ) const;
+        
+        /// Compute model \c h and \c f values at a point.
+        /**
+         \param x      The point                 -- \b IN.
+         \param h_min  Value of \c h_min         -- \b IN..
+         \param h_norm Norm used to compute \c h -- \b IN..
+         \param h      Value of \c h             -- \b OUT.
+         \param f      Value of \c f             -- \b OUT.
+         */
+        void eval_hf ( const NOMAD::Point  & x      ,
+                      const NOMAD::Double & h_min  ,
+                      NOMAD::hnorm_type     h_norm ,
+                      NOMAD::Double       & h      ,
+                      NOMAD::Double       & f        ) const;
+        
+        
+        /// Access to the interpolation type.
+        /**
+         \return The interpolation type.
+         */
+        const NOMAD::interpolation_type & get_interpolation_type ( void ) const
+        {
+            return _interpolation_type;
+        }
+        
+        /// Access to the center of the model.
+        /**
+         \return The center.
+         */
+        const NOMAD::Point & get_center ( void ) const { return _center; }
+        
+        /// Access to the dimension.
+        /**
+         \return The dimension \c n.
+         */
+        int get_n ( void ) const { return _n; }
+        
+        /// Access to the number of free variables.
+        /**
+         \return The number of free variables \c n.
+         */
+        int get_nfree ( void ) const { return _nfree; }
+        
+        /// Access to the model parameters.
+        /**
+         \return The model parameters \c alpha.
+         */
+        NOMAD::Point ** get_alpha ( void ) const { return _alpha; }
+        
+        /// Check if the model is ready for evaluations.
+        /**
+         \return A boolean equal to \c true if the model is ready.
+         */
+        bool check ( void ) const;
+        
+        /// Access to the fixed variables.
+        /**
+         \param i Variable index -- \b IN.
+         \return \c true if variable \c i is fixed.
+         */
+        bool variable_is_fixed ( int i ) const { return _fixed_vars[i]; }
+        
+        /// Access to the number of interpolation points.
+        /**
+         \return The number of interpolation points \c nY=p+1.
+         */
+        int get_nY ( void ) const { return static_cast<int> ( _Y.size() ); }
+        
+        /// Access to the condition number.
+        /**
+         \return The condition number.
+         */
+        const NOMAD::Double & get_cond ( void ) const { return _cond; }
+        
+        /// Access to the error flag.
+        /**
+         \return The error flag.
+         */
+        bool get_error_flag ( void ) const { return _error_flag; }
+        
+        /// Construct the interpolation set \c Y.
+        /**
+         \param center               Model center                       -- \b IN.
+         \param interpolation_radius Interpolation radius               -- \b IN.
+         \param max_Y_size           Maximum number of elements in \c Y -- \b IN.
+         */
+        void construct_Y ( const NOMAD::Point & center               ,
+                          const NOMAD::Point & interpolation_radius ,
+                          int                  max_Y_size             );
+        
+        /// Construct \c m models (one by output).
+        /**
+         \param use_WP     Use or not well-poisedness            -- \b IN.
+         \param eps        Epsilon                               -- \b IN.
+         \param max_mpn    Maximum \c m+n value for SVD matrices -- \b IN.
+         \param max_Y_size Maximum number of elements in \c Y    -- \b IN.
+         */
+        void construct ( bool   use_WP     ,
+                        double eps        ,
+                        int    max_mpn    ,
+                        int    max_Y_size   );
+        
+        /// Define scaling to put all coordinates centered in \c [-r;r].
+        /**
+         - Looks also for fixed variables.
+         \param r The \c r parameter corresponds to \c MODEL_RADIUS_FACTOR -- \b IN.
+         */
+        void define_scaling ( const NOMAD::Double & r );
+        
+        /// Define scaling based on directions. See paper: Reducing the number of function evaluations in Mesh Adaptive Direct Search algorithms, Audet, Ianni, LeDigabel, Tribes, 2014
+        /**
+         - Looks also for fixed variables.
+         \param dirP    The \c dirP parameter corresponds to set of directions formin a hyper-cube centered on poll center -- \b IN.
+         \param delta_m The \c delta_m parameter is the dimension of the mesh -- \b IN.
+         \param epsilon The \c epsilon parameter is the hyper-cube offset from the poll center -- \b IN.
+         */
+        void define_scaling_by_directions ( const std::list<NOMAD::Direction> & dirP, const NOMAD::Point & delta_m, const NOMAD::Double &epsilon  );
+        
+        
+        /// Scale a point.
+        /**
+         \param x The point to scale -- \b IN/OUT.
+         \return \c true if the scaling worked.
+         */
+        bool scale ( NOMAD::Point & x ) const;
+        
+        /// Unscale a point.
+        /**
+         \param x The point to unscale -- \b IN/OUT.
+         \return \c true if the unscaling worked.
+         */
+        bool unscale ( NOMAD::Point & x ) const;
+        
+        /// Unscale the gradient at a point.
+        /**
+         \param x The grad to unscale -- \b IN/OUT.
+         \return \c true if the unscaling worked.
+         */
+        bool unscale_grad ( NOMAD::Point & x ) const;
+        
+        
+        /// Check if a caled point is inside the trust radius.
+        /**
+         \param x The scaled point -- \b IN.
+         \return  \c true is \c x is in the trust radius.
+         */
+        bool is_within_trust_radius ( const NOMAD::Point & x ) const;
+        
+        /// Display the model coefficients.
+        /**
+         \param out   The NOMAD::Display object -- \b IN.
+         */
+        void display_model_coeffs ( const NOMAD::Display & out ) const;
+        
+        /// Display the interpolation set \c Y.
+        /**
+         \param out   The NOMAD::Display object  -- \b IN.
+         \param title Title of the display block -- \b IN
+         --\b optional (default="interpolation set Y").
+         */
+        void display_Y ( const NOMAD::Display & out ,
+                        const std::string    & title = "interpolation set Y" ) const;
+        
+        /// Display cumulated error on the interpolation points.
+        /**
+         \param out   The NOMAD::Display object -- \b IN.
+         */
+        void display_Y_error ( const NOMAD::Display & out ) const;
+    };
 }
 
 #endif
diff --git a/src/Quad_Model_Evaluator.cpp b/src/Quad_Model_Evaluator.cpp
index 7a6d9f8..1738031 100644
--- a/src/Quad_Model_Evaluator.cpp
+++ b/src/Quad_Model_Evaluator.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015 Mark Abramson        - the Boeing Company, Seattle         */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,81 +41,79 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Quad_Model_Evaluator.cpp
-  \brief  NOMAD::Evaluator subclass for quadratic model optimization (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-08-31
-  \see    Quad_Mopel_Evaluator.hpp
-*/
+ \file   Quad_Model_Evaluator.cpp
+ \brief  NOMAD::Evaluator subclass for quadratic model optimization (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-08-31
+ \see    Quad_Mopel_Evaluator.hpp
+ */
 #include "Quad_Model_Evaluator.hpp"
 
 /*-----------------------------*/
 /*         constructor         */
 /*-----------------------------*/
-NOMAD::Quad_Model_Evaluator::Quad_Model_Evaluator
-( const NOMAD::Parameters & p     ,
-  const NOMAD::Quad_Model & model   )
-  :  
-	_n					( model.get_n()         ) ,
-    _nm1				( _n-1                  ) , 
-    _m					( p.get_bb_nb_outputs() ) ,
-    _x					( NULL                  ) ,
-    _alpha				( NULL                  ) ,
-    _model_ready		( model.check()         )
+NOMAD::Quad_Model_Evaluator::Quad_Model_Evaluator ( const NOMAD::Parameters & p     ,
+                                                   const NOMAD::Quad_Model & model   ) :
+_n              ( model.get_n()         ) ,
+_nm1            ( _n-1                  ) ,
+_m              ( p.get_bb_nb_outputs() ) ,
+_x              ( NULL                  ) ,
+_alpha          ( NULL                  ) ,
+_model_ready    ( model.check()         )
 {
-	if ( _model_ready )
-	{
-		
-		int i , j , k , k2 , nalpha = (_n+1)*(_n+2)/2 , nfree = model.get_nfree();
-		NOMAD::Point ** model_alpha = model.get_alpha();
-		
-		_x     = new double   [_n];
-		_alpha = new double * [_m];
-		
-		for ( int io = 0 ; io < _m ; ++io )
-		{
-			_alpha[io] = NULL;
-			if ( model_alpha[io] )
-			{				
-				_alpha[io] = new double[nalpha];
-				_alpha[io][0] = (*model_alpha[io])[0].value();
-				
-				for ( i = 1 ; i < nalpha ; ++i ) 
-					_alpha[io][i] = 0.0;
-				
-				k = 0;
-				
-				for ( i = 0 ; i < _n ; ++i )
-				{
-					if ( !model.variable_is_fixed(i) ) 
-					{
-						++k;
-						_alpha[io][i+1   ] = (*model_alpha[io])[k      ].value();
-						_alpha[io][i+1+_n] = (*model_alpha[io])[k+nfree].value();
-					}
-				}
-				
-				k += nfree;
-				k2 = 2*_n;
-				
-				for ( i = 0 ; i < _nm1 ; ++i )
-				{
-					if ( !model.variable_is_fixed(i) ) 
-					{
-						for ( j = i+1 ; j < _n ; ++j )
-						{
-							++k2;
-							if ( !model.variable_is_fixed(j) )
-								_alpha[io][k2] = (*model_alpha[io])[++k].value();
-						}
-					}
-					else
-						for ( j = i+1 ; j < _n ; ++j )
-							++k2;
-				}
-			}
-		}
-	}
+    if ( _model_ready )
+    {
+        
+        int i , j , k , k2 , nalpha = (_n+1)*(_n+2)/2 , nfree = model.get_nfree();
+        NOMAD::Point ** model_alpha = model.get_alpha();
+        
+        _x     = new double   [_n];
+        _alpha = new double * [_m];
+        
+        for ( int io = 0 ; io < _m ; ++io )
+        {
+            _alpha[io] = NULL;
+            if ( model_alpha[io] )
+            {
+                _alpha[io] = new double[nalpha];
+                _alpha[io][0] = (*model_alpha[io])[0].value();
+                
+                for ( i = 1 ; i < nalpha ; ++i )
+                    _alpha[io][i] = 0.0;
+                
+                k = 0;
+                
+                for ( i = 0 ; i < _n ; ++i )
+                {
+                    if ( !model.variable_is_fixed(i) )
+                    {
+                        ++k;
+                        _alpha[io][i+1   ] = (*model_alpha[io])[k      ].value();
+                        _alpha[io][i+1+_n] = (*model_alpha[io])[k+nfree].value();
+                    }
+                }
+                
+                k += nfree;
+                k2 = 2*_n;
+                
+                for ( i = 0 ; i < _nm1 ; ++i )
+                {
+                    if ( !model.variable_is_fixed(i) )
+                    {
+                        for ( j = i+1 ; j < _n ; ++j )
+                        {
+                            ++k2;
+                            if ( !model.variable_is_fixed(j) )
+                                _alpha[io][k2] = (*model_alpha[io])[++k].value();
+                        }
+                    }
+                    else
+                        for ( j = i+1 ; j < _n ; ++j )
+                            ++k2;
+                }
+            }
+        }
+    }
 }
 
 /*-----------------------------*/
@@ -116,14 +121,14 @@ NOMAD::Quad_Model_Evaluator::Quad_Model_Evaluator
 /*-----------------------------*/
 NOMAD::Quad_Model_Evaluator::~Quad_Model_Evaluator ( void )
 {
-  if ( _model_ready ) 
-  {
-    for ( int i = 0 ; i < _m ; ++i )
-      if ( _alpha[i] )
-	delete [] _alpha[i];
-    delete [] _alpha;
-    delete [] _x;
-  }
+    if ( _model_ready )
+    {
+        for ( int i = 0 ; i < _m ; ++i )
+            if ( _alpha[i] )
+                delete [] _alpha[i];
+        delete [] _alpha;
+        delete [] _x;
+    }
 }
 
 /*------------------------------------------------------------------------*/
@@ -133,51 +138,59 @@ NOMAD::Quad_Model_Evaluator::~Quad_Model_Evaluator ( void )
 /* x is in [-1000;1000] and must be scaled to [-1;1] for the evalutation  */
 /*                                                                        */
 /*------------------------------------------------------------------------*/
-bool NOMAD::Quad_Model_Evaluator::eval_x
-( NOMAD::Eval_Point   & x          ,
-  const NOMAD::Double & h_max      ,
-  bool                & count_eval   ) const
+bool NOMAD::Quad_Model_Evaluator::eval_x ( NOMAD::Eval_Point   & x          ,
+                                          const NOMAD::Double & h_max      ,
+                                          bool                & count_eval   ) const
 {
-	
-	count_eval=false;
-	if ( !_model_ready )
-		return false;
-	
-	int    i , j , k;
-	double z , * alpha , * p;
-	
-	for ( i = 0 ; i < _n ; ++i )
-		_x[i] = x[i].value() / 1000.0;
-	
-	for ( int oi = 0 ; oi < _m ; ++oi )
-	{
-		
-		alpha = _alpha[oi];
-		
-		if ( alpha )
-		{
-			
-			z = alpha[0];
-			p = _x;
-			
-			for ( k = 1 ; k <= _n ; ++k , ++p )
-				z += *p * ( alpha[k] + 0.5 * alpha[k+_n] * *p );
-			
-			k += _n-1;
-			
-			for ( i = 0 ; i < _nm1 ; ++i )
-				for ( j = i+1 ; j < _n ; ++j )
-					z += alpha[++k] * _x[i] * _x[j];
-			
-			x.set_bb_output ( oi , z );
-		}
-		
-		else
-			x.set_bb_output ( oi , 0.0 );
-	}
-	
-	count_eval = true;
-	return true;
+    
+    count_eval=false;
+    if ( !_model_ready )
+        return false;
+    
+    int    i , j , k;
+    double z , * alpha , * p;
+    
+    for ( i = 0 ; i < _n ; ++i )
+        _x[i] = x[i].value() / 1000.0;
+    
+    for ( int oi = 0 ; oi < _m ; ++oi )
+    {
+        
+        alpha = _alpha[oi];
+        
+        if ( alpha )
+        {
+            
+            z = alpha[0];
+            p = _x;
+            
+            for ( k = 1 ; k <= _n ; ++k , ++p )
+                z += *p * ( alpha[k] + 0.5 * alpha[k+_n] * *p );
+            
+            k += _n-1;
+            
+            for ( i = 0 ; i < _nm1 ; ++i )
+                for ( j = i+1 ; j < _n ; ++j )
+                    z += alpha[++k] * _x[i] * _x[j];
+            
+            
+            // SLD special rounding to 8 decimals in order to improve numerical stability:
+            // {
+            //   long double prec = 1e-8;
+            //   z = ( z < 0.0 ?
+            //              -floor(-z/prec + .5) :
+            //            floor( z/prec + .5)   ) * prec;
+            // }
+            
+            x.set_bb_output ( oi , z );
+        }
+        
+        else
+            x.set_bb_output ( oi , 0.0 );
+    }
+    
+    count_eval = true;
+    return true;
 }
 
 
@@ -188,38 +201,37 @@ bool NOMAD::Quad_Model_Evaluator::eval_x
 /* x is in [-1000;1000] and must be scaled to [-1;1] for the evalutation  */
 /*                                                                        */
 /*------------------------------------------------------------------------*/
-bool NOMAD::Quad_Model_Evaluator::evalGrad_x
-(const NOMAD::Point   & x   ,
- NOMAD::Point   & g         ,
- const int & output_index   ,
- bool                & count_eval   ) const
+bool NOMAD::Quad_Model_Evaluator::evalGrad_x ( const NOMAD::Point   & x   ,
+                                              NOMAD::Point          & g   ,
+                                              const int & output_index   ,
+                                              bool                  & count_eval   ) const
 {
-	
-	if ( !_model_ready )
-		return false;
-	
-	double * alpha ;
-	
-	for (int  i = 0 ; i < _n ; ++i )
-		_x[i] = x[i].value() / 1000.0;
-	
-	alpha = _alpha[output_index];
-	
-	if ( !alpha )
-		return false;
-		
-	int i , j , k ;
-		
-	for ( k = 1 ; k <= _n ; ++k )
-		g[k-1] = alpha[k] + alpha[k+_n] * _x[k-1];
-	
-	
-	k += _n-1;
-	
-	for ( i = 0 ; i < _nm1 ; ++i )
-		for ( j = i+1 ; j < _n ; ++j )
-			g[i] += alpha[++k] * _x[j];
-	
-	count_eval = true;
-	return true;
+    
+    if ( !_model_ready )
+        return false;
+    
+    double * alpha ;
+    
+    for (int  i = 0 ; i < _n ; ++i )
+        _x[i] = x[i].value() / 1000.0;
+    
+    alpha = _alpha[output_index];
+    
+    if ( !alpha )
+        return false;
+    
+    int i , j , k ;
+    
+    for ( k = 1 ; k <= _n ; ++k )
+        g[k-1] = alpha[k] + alpha[k+_n] * _x[k-1];
+    
+    
+    k += _n-1;
+    
+    for ( i = 0 ; i < _nm1 ; ++i )
+        for ( j = i+1 ; j < _n ; ++j )
+            g[i] += alpha[++k] * _x[j];
+    
+    count_eval = true;
+    return true;
 }
diff --git a/src/Quad_Model_Evaluator.hpp b/src/Quad_Model_Evaluator.hpp
index f3780a5..c99ffe0 100644
--- a/src/Quad_Model_Evaluator.hpp
+++ b/src/Quad_Model_Evaluator.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
diff --git a/src/Quad_Model_Search.cpp b/src/Quad_Model_Search.cpp
index ef61c01..b4560f0 100644
--- a/src/Quad_Model_Search.cpp
+++ b/src/Quad_Model_Search.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -182,6 +189,7 @@ void NOMAD::Quad_Model_Search::search ( NOMAD::Mads              & mads
     // stats:
     NOMAD::Stats & stats = mads.get_stats();
     
+    
     // number of interpolation points:
     int nY[2];
     nY[0] = nY[1] = -1;
@@ -217,7 +225,8 @@ void NOMAD::Quad_Model_Search::search ( NOMAD::Mads              & mads
             NOMAD::Signature * signature = xk[i_inc]->get_signature();
             if ( !signature )
             {
-                if ( display_degree == NOMAD::FULL_DISPLAY ) {
+                if ( display_degree == NOMAD::FULL_DISPLAY )
+                {
                     std::ostringstream oss;
                     oss << "end of " << NOMAD::MODEL_SEARCH << " (no signature)";
                     out << std::endl << NOMAD::close_block ( oss.str() ) << std::endl;
@@ -227,7 +236,7 @@ void NOMAD::Quad_Model_Search::search ( NOMAD::Mads              & mads
                 return;
             }
             
-            // current mesh index:
+            // current mesh indices:
             NOMAD::Point mesh_indices = signature->get_mesh()->get_mesh_indices();
             
             
@@ -245,6 +254,7 @@ void NOMAD::Quad_Model_Search::search ( NOMAD::Mads              & mads
                 return;
             }
             
+            
             // compute the interpolation radius: points in Y must be at
             // a max distance of ms_radius_factor times Delta^k:
             NOMAD::Point Delta , delta;
@@ -422,8 +432,10 @@ void NOMAD::Quad_Model_Search::search ( NOMAD::Mads              & mads
     } // end of main loop
     
     // check the number of times that not enough points could be considered:
-    if ( nY[0] <= 1 && nY[1] <= 1 ) {
-        if ( display_degree == NOMAD::FULL_DISPLAY ) {
+    if ( nY[0] <= 1 && nY[1] <= 1 )
+    {
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
             std::ostringstream oss;
             oss << "end of " << NOMAD::MODEL_SEARCH
             << " (not enough points)";
@@ -437,7 +449,8 @@ void NOMAD::Quad_Model_Search::search ( NOMAD::Mads              & mads
     // check if no model has been computed:
     if ( !model_ok )
     {
-        if ( display_degree == NOMAD::FULL_DISPLAY ) {
+        if ( display_degree == NOMAD::FULL_DISPLAY )
+        {
             std::ostringstream oss;
             oss << "end of " << NOMAD::MODEL_SEARCH
             << " (model computation or optimization error)";
@@ -507,7 +520,8 @@ void NOMAD::Quad_Model_Search::search ( NOMAD::Mads              & mads
     _all_searches_stats.update ( _one_search_stats );
     
     // final display:
-    if ( display_degree == NOMAD::FULL_DISPLAY ) {
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
         std::ostringstream oss;
         oss << "end of " << NOMAD::MODEL_SEARCH << " (" << success << ")";
         out << std::endl << NOMAD::close_block ( oss.str() ) << std::endl;
@@ -517,20 +531,20 @@ void NOMAD::Quad_Model_Search::search ( NOMAD::Mads              & mads
 /*---------------------------------------------------------------*/
 /*        project to mesh and create a trial point (private)     */
 /*---------------------------------------------------------------*/
-void NOMAD::Quad_Model_Search::create_trial_point
-( NOMAD::Evaluator_Control & ev_control     ,
- NOMAD::Point               x              ,
- const NOMAD::Quad_Model  & model          ,
- NOMAD::Signature         & signature      ,
- const NOMAD::Point       & mesh_indices   ,
- const NOMAD::Point       & delta        ,
- NOMAD::dd_type             display_degree ,
- const NOMAD::Display     & out              )
+void NOMAD::Quad_Model_Search::create_trial_point ( NOMAD::Evaluator_Control & ev_control     ,
+                                                   NOMAD::Point               x              ,
+                                                   const NOMAD::Quad_Model  & model          ,
+                                                   NOMAD::Signature         & signature      ,
+                                                   const NOMAD::Point       & mesh_indices   ,
+                                                   const NOMAD::Point       & delta        ,
+                                                   NOMAD::dd_type             display_degree ,
+                                                   const NOMAD::Display     & out              )
 {
     
     bool proj_to_mesh = _p.get_model_search_proj_to_mesh();
     
-    if ( display_degree == NOMAD::FULL_DISPLAY ) {
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
         out << "candidate";
         if ( proj_to_mesh )
             out << " (before projection)";
@@ -553,7 +567,7 @@ void NOMAD::Quad_Model_Search::create_trial_point
     }
     
     
-    // Round for integer and binary variables:
+    // Round for integer and variables:
     bool has_integer=false;
     bool has_binary=false;
     for (int i=0;i<n;i++)
@@ -570,8 +584,11 @@ void NOMAD::Quad_Model_Search::create_trial_point
         else if ( _p.get_bb_input_type()[i] == NOMAD::BINARY )
         {
             has_binary=true;
-            if ( x[i]!= 0.0 )
+            if ( x[i] < 0.5 )
+                x[i] = 0.0;
+            else
                 x[i] = 1.0;
+                    
         }
     }
     if ( has_integer && display_degree == NOMAD::FULL_DISPLAY )
@@ -609,6 +626,7 @@ void NOMAD::Quad_Model_Search::create_trial_point
     tk->Point::operator = ( x );
     
     // compute model f and h in order to accept or reject the trial point:
+    
     NOMAD::Double h0 , f0; // model values of f and h at the center
     NOMAD::Double h1 , f1; // model values of f and h at the trial point
     
@@ -658,7 +676,8 @@ void NOMAD::Quad_Model_Search::create_trial_point
     }
     
     // add the new point to the list of search trial points:
-    if ( accept_point ) {
+    if ( accept_point )
+    {
         ev_control.add_eval_point ( tk                      ,
                                    display_degree          ,
                                    _p.get_snap_to_bounds() ,
@@ -667,7 +686,8 @@ void NOMAD::Quad_Model_Search::create_trial_point
                                    f1                      ,
                                    h1                        );
 #ifdef MODEL_STATS
-        if ( tk ) {
+        if ( tk )
+        {
             tk->set_mod_use ( 1                ); // 1 for model search
             tk->set_cond    ( model.get_cond() );
             tk->set_Yw      ( model.get_Yw  () );
@@ -678,7 +698,9 @@ void NOMAD::Quad_Model_Search::create_trial_point
 #endif
         
     }
-    else {
+    else
+    {
+        
         if ( display_degree == NOMAD::FULL_DISPLAY )
             out << "candidate rejected" << std::endl;
         _one_search_stats.add_MS_rejected();
@@ -694,16 +716,15 @@ void NOMAD::Quad_Model_Search::create_trial_point
 /*    in [-1000;1000]                                            */
 /*                                                               */
 /*---------------------------------------------------------------*/
-bool NOMAD::Quad_Model_Search::optimize_model
-( const NOMAD::Quad_Model  & model          ,
- const NOMAD::Eval_Point ** xk             ,
- int                        i_inc          ,
- NOMAD::dd_type             display_degree ,
- const NOMAD::Display     & out            ,
- NOMAD::Point             & xf             ,
- NOMAD::Point             & xi             ,
- bool                     & stop           ,
- NOMAD::stop_type         & stop_reason      )
+bool NOMAD::Quad_Model_Search::optimize_model ( const NOMAD::Quad_Model  & model          ,
+                                               const NOMAD::Eval_Point ** xk             ,
+                                               int                        i_inc          ,
+                                               NOMAD::dd_type             display_degree ,
+                                               const NOMAD::Display     & out            ,
+                                               NOMAD::Point             & xf             ,
+                                               NOMAD::Point             & xi             ,
+                                               bool                     & stop           ,
+                                               NOMAD::stop_type         & stop_reason      )
 {
     xf.clear();
     xi.clear();
@@ -714,7 +735,8 @@ bool NOMAD::Quad_Model_Search::optimize_model
     int         i;
     
     // initial displays:
-    if ( display_degree == NOMAD::FULL_DISPLAY ) {
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
         std::ostringstream oss;
         oss << "model optimization";
         if ( xk[0] && xk[1] )
@@ -731,6 +753,9 @@ bool NOMAD::Quad_Model_Search::optimize_model
     // blackbox outputs:
     model_param.set_BB_OUTPUT_TYPE ( _p.get_bb_output_type() );
     
+    // blackbox inputs:
+    // Default: all variables are treated as continuous
+    
     // barrier parameters:
     model_param.set_H_MIN  ( _p.get_h_min () );
     model_param.set_H_NORM ( _p.get_h_norm() );
@@ -799,7 +824,6 @@ bool NOMAD::Quad_Model_Search::optimize_model
     else
         model_param.set_MAX_BB_EVAL ( 50000 );
     
-    
     model_param.set_SNAP_TO_BOUNDS ( true );
     
     // disable user calls:
@@ -812,7 +836,7 @@ bool NOMAD::Quad_Model_Search::optimize_model
                             flag_reset_barriers ,
                             flag_p1_active        );
     
-    NOMAD::Mads::set_flag_check_bimads  (false  );		
+    NOMAD::Mads::set_flag_check_bimads   ( false );
     NOMAD::Mads::set_flag_reset_mesh     ( true  );
     NOMAD::Mads::set_flag_reset_barriers ( true  );
     NOMAD::Mads::set_flag_p1_active      ( false );
@@ -877,15 +901,15 @@ bool NOMAD::Quad_Model_Search::optimize_model
             
             // model evaluator creation:
             NOMAD::Evaluator *ev;
-            if (model_param.get_nb_obj()==2)
+            
+            if ( model_param.get_nb_obj()==2 )
                 ev =new NOMAD::Multi_Obj_Quad_Model_Evaluator( model_param , model );
             else
-                ev=new NOMAD::Single_Obj_Quad_Model_Evaluator(model_param, model);
+                ev=new NOMAD::Single_Obj_Quad_Model_Evaluator( model_param, model );
             
             // algorithm creation and execution:
             NOMAD::Mads    mads ( model_param , ev );
             
-            // Handle the case where nb_bb_obj>=2 but no-bimads (case of PhaseOneSearch) ---> need Phase_One_Evaluator for compute_f
             NOMAD::Phase_One_Evaluator * p1ev=NULL;
             if ( model_param.get_nb_obj() >= 2 && ! flag_check_bimads )
             {
@@ -896,11 +920,12 @@ bool NOMAD::Quad_Model_Search::optimize_model
             NOMAD::stop_type st = mads.run();
             
             delete ev;
-            if (p1ev)
+            if ( p1ev )
                 delete p1ev;
             
             // check the stopping criterion:
-            if ( st == NOMAD::CTRL_C || st == NOMAD::MAX_CACHE_MEMORY_REACHED ) {
+            if ( st == NOMAD::CTRL_C || st == NOMAD::MAX_CACHE_MEMORY_REACHED ) 
+            {
                 std::ostringstream oss;
                 oss << "model optimization: " << st;
                 error_str   = oss.str();
@@ -926,11 +951,13 @@ bool NOMAD::Quad_Model_Search::optimize_model
             const NOMAD::Eval_Point * best_feas   = mads.get_best_feasible  ();
             const NOMAD::Eval_Point * best_infeas = mads.get_best_infeasible();
             
-            if ( best_feas ) {
+            if ( best_feas ) 
+            {
                 xf  = *best_feas;
                 xf *= 0.001;
                 
-                if ( display_degree == NOMAD::FULL_DISPLAY ) {
+                if ( display_degree == NOMAD::FULL_DISPLAY ) 
+                {
                     out << "best feasible point after unscaling  : ( ";
                     xf.NOMAD::Point::display ( out );
                     out << " )" << std::endl;
@@ -941,11 +968,13 @@ bool NOMAD::Quad_Model_Search::optimize_model
             else if ( display_degree == NOMAD::FULL_DISPLAY )
                 out << "no feasible solution" << std::endl;
             
-            if ( best_infeas ) {
+            if ( best_infeas ) 
+            {
                 xi  = *best_infeas;
                 xi *= 0.001;
                 
-                if ( display_degree == NOMAD::FULL_DISPLAY ) {
+                if ( display_degree == NOMAD::FULL_DISPLAY ) 
+                {
                     out << "best infeasible point before unscaling: ( ";
                     xi.NOMAD::Point::display ( out );
                     out << " )" << std::endl;
@@ -956,12 +985,14 @@ bool NOMAD::Quad_Model_Search::optimize_model
             else if ( display_degree == NOMAD::FULL_DISPLAY )
                 out << "no infeasible solution" << std::endl;
             
-            if ( !xf.is_defined() && !xi.is_defined() ) {
+            if ( !xf.is_defined() && !xi.is_defined() ) 
+            {
                 error     = true;
                 error_str = "optimization error: no solution";
             }
         }
-        catch ( std::exception & e ) {
+        catch ( std::exception & e ) 
+        {
             error     = true;
             error_str = std::string ( "optimization error: " ) + e.what();
         }
@@ -979,7 +1010,8 @@ bool NOMAD::Quad_Model_Search::optimize_model
     
     
     // close display block:
-    if ( display_degree == NOMAD::FULL_DISPLAY ) {
+    if ( display_degree == NOMAD::FULL_DISPLAY ) 
+    {
         if ( error )
             out.close_block ( error_str );
         else
diff --git a/src/Quad_Model_Search.hpp b/src/Quad_Model_Search.hpp
index 1f2d19e..a00dda5 100644
--- a/src/Quad_Model_Search.hpp
+++ b/src/Quad_Model_Search.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Quad_Model_Search.hpp
-  \brief  Quadratic Model search (headers)
-  \author Sebastien Le Digabel
-  \date   2010-08-30
-  \see    Quad_Model_Search.cpp
-*/
+ \file   Quad_Model_Search.hpp
+ \brief  Quadratic Model search (headers)
+ \author Sebastien Le Digabel
+ \date   2010-08-30
+ \see    Quad_Model_Search.cpp
+ */
 #ifndef __QUAD_MODEL_SEARCH__
 #define __QUAD_MODEL_SEARCH__
 
@@ -48,104 +55,105 @@
 #include "Multi_Obj_Quad_Model_Evaluator.hpp"
 
 namespace NOMAD {
-
-  /// Model search.
-  class Quad_Model_Search : public NOMAD::Search , private NOMAD::Uncopyable {
-
-  private:
-
-    NOMAD::Model_Stats _one_search_stats;   ///< Stats for one search.
-    NOMAD::Model_Stats _all_searches_stats; ///< Stats for all searches.
-
-    /// Model optimization.
-    /**
-       \param model          The model                          -- \b IN.
-       \param xk             The two model centers              -- \b IN.
-       \param i_inc          Model center index (\c 0 or \c 1 ) -- \b IN.
-       \param display_degree Display degree                     -- \b IN.
-       \param out            The NOMAD::Display object          -- \b IN.
-       \param xf             Feasible solution \c xf            -- \b OUT.
-       \param xi             Infeasible solution \c xi          -- \b OUT.
-       \param stop           Stop flag                          -- \b OUT.
-       \param stop_reason    Stop reason                        -- \b OUT.
-    */
-    bool optimize_model ( const NOMAD::Quad_Model  & model          ,
-			  const NOMAD::Eval_Point ** xk             ,
-			  int                        i_inc          ,
-			  NOMAD::dd_type             display_degree ,
-			  const NOMAD::Display     & out            ,
-			  NOMAD::Point             & xf             ,
-			  NOMAD::Point             & xi             ,
-			  bool                     & stop           ,
-			  NOMAD::stop_type         & stop_reason      );
-
-    /// Project to mesh and create a trial point.
-    /**
-       \param ev_control     The NOMAD::Evaluator_Control object -- \b IN.
-       \param x              The point coordinates               -- \b IN.
-       \param model          The model                           -- \b IN.
-       \param signature      Signature                           -- \b IN.
-       \param mesh_indices   Mesh indic                          -- \b IN.
-       \param delta			 Mesh size parameter                 -- \b IN.
-       \param display_degree Display degree                      -- \b IN.
-       \param out            The NOMAD::Display object           -- \b IN.
-    */
-    void create_trial_point
-    ( NOMAD::Evaluator_Control & ev_control     ,
-      NOMAD::Point               x              ,
-      const NOMAD::Quad_Model  & model          ,
-      NOMAD::Signature         & signature      ,
-	  const NOMAD::Point        & mesh_indices  ,
-      const NOMAD::Point       & delta          ,
-      NOMAD::dd_type             display_degree ,
-      const NOMAD::Display     & out              );
-      
-    /*----------------------------------------------------------------------*/
-
-  public:
-
-    /// Constructor.
-    /**
-       \param p Parameters -- \b IN.
-    */
-    Quad_Model_Search ( NOMAD::Parameters & p )
-      : NOMAD::Search ( p , NOMAD::MODEL_SEARCH ) {}
     
-    /// Destructor.
-    virtual ~Quad_Model_Search ( void ) {}
-
-    /// Reset.
-    virtual void reset ( void ) {}
-
-    /// The quadratic model search.
-    /**
-       Based on quadratic regression/MFN interpolation models.
-       \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
-       \param nb_search_pts  Number of generated search points       -- \b OUT.
-       \param stop           Stop flag                               -- \b IN/OUT.
-       \param stop_reason    Stop reason                             -- \b OUT.
-       \param success        Type of success                         -- \b OUT.
-       \param count_search   Count or not the search                 -- \b OUT.
-       \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
-       \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
-    */
-    virtual void search ( NOMAD::Mads              & mads           ,
-			  int                      & nb_search_pts  ,
-			  bool                     & stop           ,
-			  NOMAD::stop_type         & stop_reason    ,
-			  NOMAD::success_type      & success        ,
-			  bool                     & count_search   ,
-			  const NOMAD::Eval_Point *& new_feas_inc   ,
-			  const NOMAD::Eval_Point *& new_infeas_inc   );
-    //// Display stats.
-    /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    virtual void display ( const NOMAD::Display & out ) const
-    {
-      out << _all_searches_stats;
-    }
-  };
+    /// Model search.
+    class Quad_Model_Search : public NOMAD::Search , private NOMAD::Uncopyable {
+        
+    private:
+        
+        NOMAD::Model_Stats _one_search_stats;   ///< Stats for one search.
+        NOMAD::Model_Stats _all_searches_stats; ///< Stats for all searches.
+        
+        /// Model optimization.
+        /**
+         \param model          The model                          -- \b IN.
+         \param xk             The two model centers              -- \b IN.
+         \param i_inc          Model center index (\c 0 or \c 1 ) -- \b IN.
+         \param display_degree Display degree                     -- \b IN.
+         \param out            The NOMAD::Display object          -- \b IN.
+         \param xf             Feasible solution \c xf            -- \b OUT.
+         \param xi             Infeasible solution \c xi          -- \b OUT.
+         \param stop           Stop flag                          -- \b OUT.
+         \param stop_reason    Stop reason                        -- \b OUT.
+         */
+        bool optimize_model ( const NOMAD::Quad_Model  & model          ,
+                             const NOMAD::Eval_Point ** xk             ,
+                             int                        i_inc          ,
+                             NOMAD::dd_type             display_degree ,
+                             const NOMAD::Display     & out            ,
+                             NOMAD::Point             & xf             ,
+                             NOMAD::Point             & xi             ,
+                             bool                     & stop           ,
+                             NOMAD::stop_type         & stop_reason      );
+        
+        /// Project to mesh and create a trial point.
+        /**
+         \param ev_control     The NOMAD::Evaluator_Control object -- \b IN.
+         \param x              The point coordinates               -- \b IN.
+         \param model          The model                           -- \b IN.
+         \param signature      Signature                           -- \b IN.
+         \param mesh_indices   Mesh indic                          -- \b IN.
+         \param delta          Mesh size parameter                 -- \b IN.
+         \param display_degree Display degree                      -- \b IN.
+         \param out            The NOMAD::Display object           -- \b IN.
+         */
+        void create_trial_point ( NOMAD::Evaluator_Control & ev_control     ,
+                                 NOMAD::Point               x              ,
+                                 const NOMAD::Quad_Model  & model          ,
+                                 NOMAD::Signature         & signature      ,
+                                 const NOMAD::Point        & mesh_indices   ,
+                                 const NOMAD::Point       & delta        ,
+                                 NOMAD::dd_type             display_degree ,
+                                 const NOMAD::Display     & out              );
+        
+        /*----------------------------------------------------------------------*/
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p Parameters -- \b IN.
+         */
+        Quad_Model_Search ( NOMAD::Parameters & p )
+        : NOMAD::Search ( p , NOMAD::MODEL_SEARCH ) {}
+        
+        /// Destructor.
+        virtual ~Quad_Model_Search ( void ) {}
+        
+        /// Reset.
+        virtual void reset ( void ) {}
+        
+        /// The quadratic model search.
+        /**
+         Based on quadratic regression/MFN interpolation models.
+         \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
+         \param nb_search_pts  Number of generated search points       -- \b OUT.
+         \param stop           Stop flag                               -- \b IN/OUT.
+         \param stop_reason    Stop reason                             -- \b OUT.
+         \param success        Type of success                         -- \b OUT.
+         \param count_search   Count or not the search                 -- \b OUT.
+         \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
+         \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
+         */
+        virtual void search ( NOMAD::Mads              & mads           ,
+                             int                      & nb_search_pts  ,
+                             bool                     & stop           ,
+                             NOMAD::stop_type         & stop_reason    ,
+                             NOMAD::success_type      & success        ,
+                             bool                     & count_search   ,
+                             const NOMAD::Eval_Point *& new_feas_inc   ,
+                             const NOMAD::Eval_Point *& new_infeas_inc   );
+        
+        
+        //// Display stats.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        virtual void display ( const NOMAD::Display & out ) const
+        {
+            out << _all_searches_stats;
+        }
+    };
 }
 
 #endif
diff --git a/src/RNG.cpp b/src/RNG.cpp
index c37391f..6010f3e 100644
--- a/src/RNG.cpp
+++ b/src/RNG.cpp
@@ -1,14 +1,24 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
+/*                                                                                     */
+/*                                                                                     */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
 /*    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  */
@@ -56,34 +66,34 @@ uint32_t NOMAD::RNG::_z = z_def;
 void NOMAD::RNG::set_seed(int s)
 {
     
-	if( s<=INT_MAX && s>=0 )
-		_s=s;
-	else
+    if( s<=INT_MAX && s>=0 )
+        _s=s;
+    else
         throw NOMAD::Exception ( "RNG.cpp" , __LINE__ ,
                                 "NOMAD::RNG::set_seed(): invalid seed. Seed should be in [0,INT_MAX]" );
-   
+    
     reset_seed_to_default();
     for ( int i=0 ; i<_s ; i++)
-       NOMAD::RNG::rand();
-
-
+        NOMAD::RNG::rand();
+    
+    
 }
 
 uint32_t NOMAD::RNG::rand ( void )
 {
     // http://madrabbit.org/~ray/code/xorshf96.c //period 2^96-1
-
- 	uint32_t t;
- 	_x ^= _x << 16;
- 	_x ^= _x >> 5;
- 	_x ^= _x << 1;
- 	
- 	t = _x;
-	_x = _y;
-	_y = _z;
-	_z = t ^ _x ^ _y;
-	
-	return _z;
+    
+    uint32_t t;
+    _x ^= _x << 16;
+    _x ^= _x >> 5;
+    _x ^= _x << 1;
+    
+    t = _x;
+    _x = _y;
+    _y = _z;
+    _z = t ^ _x ^ _y;
+    
+    return _z;
 }
 
 
@@ -109,9 +119,9 @@ double NOMAD::RNG::normal_rand( double mean , double var )
 }
 double NOMAD::RNG::normal_rand_mean_0 ( double Var , int Nsample )
 {
-	double sum = 0.0;
-	double a=pow( 3.0*Var,0.5 );
-	for ( int i=0 ; i<Nsample ; i++ )
-		sum+=NOMAD::RNG::rand(-a,a);
-	return sum / pow( Nsample,0.5 );
+    double sum = 0.0;
+    double a=pow( 3.0*Var,0.5 );
+    for ( int i=0 ; i<Nsample ; i++ )
+        sum+=NOMAD::RNG::rand(-a,a);
+    return sum / pow( Nsample,0.5 );
 }
diff --git a/src/RNG.hpp b/src/RNG.hpp
index c0f8714..bc3e897 100644
--- a/src/RNG.hpp
+++ b/src/RNG.hpp
@@ -1,14 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
+/*                                                                                     */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -31,10 +40,11 @@
 /*                                                                                     */
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
+
 /**
  \file   RNG.hpp
  \brief  Custom class for random number generator
- \author Christophe Tribes and Sebastien Le Digabel 
+ \author Christophe Tribes and Sebastien Le Digabel
  \date   2011-09-28
  \see    RNG.cpp
  */
@@ -48,21 +58,21 @@
 using namespace std;
 
 namespace NOMAD {
-
+    
     
     /// Class for random number generator
-	/**
+    /**
      This class is used to set a seed for the random number generator and
      get a random integer or a random double between two values.
-	 */
-	class RNG {
-		
-	public:
+     */
+    class RNG {
         
- 		/// Get current seed
-		/*
-		 /return An integer in [0,UINT32_MAX].
-		 */
+    public:
+        
+        /// Get current seed
+        /*
+         /return An integer in [0,UINT32_MAX].
+         */
         static int get_seed ( void )
         {
             return static_cast<int>(_s);
@@ -76,56 +86,56 @@ namespace NOMAD {
             _z=z_def;
         }
         
-		/// Set seed
-		/*
-		 /param s The seed -- \b IN.
-		 */
-		static void set_seed(int s);
-    
-		
-		/// Get a random integer as uint32
-		/** This function serves to obtain a random number \c
-		 /return An integer in the interval [0,UINT32_MAX].
-		 */
-		static uint32_t rand();
+        /// Set seed
+        /*
+         /param s The seed -- \b IN.
+         */
+        static void set_seed(int s);
+        
+        
+        /// Get a random integer as uint32
+        /** This function serves to obtain a random number \c
+         /return An integer in the interval [0,UINT32_MAX].
+         */
+        static uint32_t rand();
         
-		
-		/// Get a random number having a normal distribution as double
-		/*
+        
+        /// Get a random number having a normal distribution as double
+        /*
          /param a Lower bound  -- \b IN.
          /param b Upper bound  -- \b IN.
          /return A double in the interval [a,b].
-		 */
-		static double rand(double a, double b)
+         */
+        static double rand(double a, double b)
         {
             return a+((b-a)*NOMAD::RNG::rand())/UINT32_MAX;
         }
-		
-		/// Get a random number approaching a normal distribution (N(0,Var)) as double
-		//  A series of Nsample random numbers Xi in the interval [-sqrt(3*Var);+sqrt(3*Var)] is used -> E[Xi]=0, Var(Xi)=var
-		// see http://en.wikipedia.org/wiki/Central_limit_theorem
-		/*
-         /param Nsample	Number of samples for averaging				-- \b IN.
-         /param Var		Variance of the target normal distribution	-- \b IN.
+        
+        /// Get a random number approaching a normal distribution (N(0,Var)) as double
+        //  A series of Nsample random numbers Xi in the interval [-sqrt(3*Var);+sqrt(3*Var)] is used -> E[Xi]=0, Var(Xi)=var
+        // see http://en.wikipedia.org/wiki/Central_limit_theorem
+        /*
+         /param Nsample    Number of samples for averaging                -- \b IN.
+         /param Var        Variance of the target normal distribution     -- \b IN.
          /return A double in the interval [-sqrt(3*Var);+sqrt(3*Var)].
-		 */
-		static double normal_rand_mean_0( double Var=1 , int Nsample=12 ) ;
+         */
+        static double normal_rand_mean_0( double Var=1 , int Nsample=12 ) ;
         
         
         /// Get a random number approaching a normal distribution ( N(Mean,Var) ) as double
-		/*
-         /param Mean	Mean of the target normal distribution		-- \b IN.
-         /param Var		Variance of the target normal distribution	-- \b IN.
+        /*
+         /param Mean    Mean of the target normal distribution          -- \b IN.
+         /param Var        Variance of the target normal distribution   -- \b IN.
          /return A random number.
-		 */
+         */
         static double normal_rand( double Mean=0 , double Var=1 ) ;
         
-		
-	private:
+        
+    private:
         
         static uint32_t x_def,y_def,z_def,_x,_y,_z;  ///< Default parameter value for the random number generator (_s used as the seed).
         static int _s;
-	};
+    };
 }
 
 
diff --git a/src/Random_Pickup.cpp b/src/Random_Pickup.cpp
index 1770499..1c26f83 100644
--- a/src/Random_Pickup.cpp
+++ b/src/Random_Pickup.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,24 +41,24 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Random_Pickup.cpp
-  \brief  Class for randomly pick up integers (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-07
-  \see    Random_Pickup.hpp
-*/
+ \file   Random_Pickup.cpp
+ \brief  Class for randomly pick up integers (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-07
+ \see    Random_Pickup.hpp
+ */
 #include "Random_Pickup.hpp"
 
 /*---------------------------------------------------------*/
 /*                         constructor                     */
 /*---------------------------------------------------------*/
 NOMAD::Random_Pickup::Random_Pickup ( int n )
-  : _n0   ( n          ) ,
-    _n    ( n          ) ,
-    _elts ( new int[n] )
+: _n0   ( n          ) ,
+_n    ( n          ) ,
+_elts ( new int[n] )
 {
-  for ( int i = 0 ; i < n ; ++i )
-    _elts[i] = i;
+    for ( int i = 0 ; i < n ; ++i )
+        _elts[i] = i;
 }
 
 /*---------------------------------------------------------*/
@@ -59,9 +66,9 @@ NOMAD::Random_Pickup::Random_Pickup ( int n )
 /*---------------------------------------------------------*/
 void NOMAD::Random_Pickup::reset ( void )
 {
-  _n = _n0;
-  for ( int i = 0 ; i < _n ; ++i )
-    _elts[i] = i;
+    _n = _n0;
+    for ( int i = 0 ; i < _n ; ++i )
+        _elts[i] = i;
 }
 
 /*---------------------------------------------------------*/
@@ -69,17 +76,18 @@ void NOMAD::Random_Pickup::reset ( void )
 /*---------------------------------------------------------*/
 int NOMAD::Random_Pickup::pickup ( void )
 {
-  if ( _n == 0 )
-    return 0;
-  int ind = NOMAD::RNG::rand()%_n; 
-  int tmp = _elts[ind];
-  if ( ind < _n - 1 ) {
-    _elts[ind ] = _elts[_n-1];
-    _elts[_n-1] = tmp;
-  }
-  --_n;
-	
-  return tmp;
+    if ( _n == 0 )
+        return 0;
+    int ind = NOMAD::RNG::rand()%_n;
+    int tmp = _elts[ind];
+    if ( ind < _n - 1 )
+    {
+        _elts[ind ] = _elts[_n-1];
+        _elts[_n-1] = tmp;
+    }
+    --_n;
+    
+    return tmp;
 }
 
 /*---------------------------------------------------------*/
@@ -87,6 +95,6 @@ int NOMAD::Random_Pickup::pickup ( void )
 /*---------------------------------------------------------*/
 void NOMAD::Random_Pickup::cancel_last_pickup ( void )
 {
-  if ( _n < _n0 )
-    ++_n;
+    if ( _n < _n0 )
+        ++_n;
 }
diff --git a/src/Random_Pickup.hpp b/src/Random_Pickup.hpp
index b111a86..859d61b 100644
--- a/src/Random_Pickup.hpp
+++ b/src/Random_Pickup.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
diff --git a/src/SMesh.cpp b/src/SMesh.cpp
index 0874614..3fefbfc 100644
--- a/src/SMesh.cpp
+++ b/src/SMesh.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   SMesh.cpp
-  \brief  Class for the MADS mesh (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-06
-  \see    SMesh.hpp
-*/
+ \file   SMesh.cpp
+ \brief  Class for the MADS mesh (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-06
+ \see    SMesh.hpp
+ */
 #include "SMesh.hpp"
 
 
@@ -47,50 +54,52 @@
 /*-----------------------------------------------------------*/
 /*                    update the mesh                        */
 /*-----------------------------------------------------------*/
-void NOMAD::SMesh::update ( NOMAD::success_type success , const NOMAD::Direction *dir) // , const NOMAD::OrthogonalMesh * mesh )
+void NOMAD::SMesh::update ( NOMAD::success_type success , const NOMAD::Direction *dir)
 {
-	// defaults:
-	//  full success: lk = lk - 1
-	//  failure     : lk = lk + 1
-
-	
-	if ( success == NOMAD::FULL_SUCCESS )
+    // defaults:
+    //  full success: lk = lk - 1
+    //  failure     : lk = lk + 1
+    
+    
+    if ( success == NOMAD::FULL_SUCCESS )
     {
-		_mesh_index -= _coarsening_step;
-		if ( _mesh_index < -NOMAD::L_LIMITS )
-			_mesh_index = -NOMAD::L_LIMITS;
-	}	
-	else if ( success == NOMAD::UNSUCCESSFUL )
-		_mesh_index -= _refining_step;
-	
-	if ( _mesh_index > _max_mesh_index )
-		_max_mesh_index = _mesh_index;
-	
-	
-	if ( _mesh_index < _min_mesh_index )
-		_min_mesh_index = _mesh_index;
+        _mesh_index -= _coarsening_step;
+        if ( _mesh_index < -NOMAD::L_LIMITS )
+            _mesh_index = -NOMAD::L_LIMITS;
+    }
+    else if ( success == NOMAD::UNSUCCESSFUL )
+        _mesh_index -= _refining_step;
+    
+    if ( _mesh_index > _max_mesh_index )
+        _max_mesh_index = _mesh_index;
+    
+    
+    if ( _mesh_index < _min_mesh_index )
+        _min_mesh_index = _mesh_index;
 }
 
 /*-----------------------------------------------------------*/
 /* Update the provided mesh indices (the Mesh is unchanged). */
 /*-----------------------------------------------------------*/
-void NOMAD::SMesh::update ( NOMAD::success_type success , NOMAD::Point & mesh_indices, const NOMAD::Direction *dir ) const
+void NOMAD::SMesh::update ( NOMAD::success_type success ,
+                           NOMAD::Point & mesh_indices,
+                           const NOMAD::Direction *dir ) const
 {
-
-	if ( mesh_indices.is_defined() )
-	{
-		for (int i=0; i < mesh_indices.size() ; i++)
-		{	
-			if ( success == NOMAD::FULL_SUCCESS )
-			{
-				mesh_indices[i] -= _coarsening_step;
-				if ( mesh_indices[i] < -NOMAD::L_LIMITS )
-					mesh_indices[i] = -NOMAD::L_LIMITS;
-			}	
-			else if ( success == NOMAD::UNSUCCESSFUL )
-				mesh_indices[i] -= _refining_step;
-		}
-	}
+    
+    if ( mesh_indices.is_defined() )
+    {
+        for (int i=0; i < mesh_indices.size() ; i++)
+        {
+            if ( success == NOMAD::FULL_SUCCESS )
+            {
+                mesh_indices[i] -= _coarsening_step;
+                if ( mesh_indices[i] < -NOMAD::L_LIMITS )
+                    mesh_indices[i] = -NOMAD::L_LIMITS;
+            }
+            else if ( success == NOMAD::UNSUCCESSFUL )
+                mesh_indices[i] -= _refining_step;
+        }
+    }
 }
 
 
@@ -99,15 +108,15 @@ void NOMAD::SMesh::update ( NOMAD::success_type success , NOMAD::Point & mesh_in
 /*-----------------------------------------------------------*/
 void NOMAD::SMesh::set_mesh_indices ( const NOMAD::Point & r )
 {
-  if (!r.is_defined())
-	  _mesh_index=0;
-  else
-	  _mesh_index=r[0].NOMAD::Double::round();
-
-  if ( _mesh_index > _max_mesh_index )
-    _max_mesh_index = _mesh_index;
-  if ( _mesh_index < _min_mesh_index )
-    _min_mesh_index = _mesh_index;
+    if ( !r.is_defined() )
+        _mesh_index=0;
+    else
+        _mesh_index=r[0].NOMAD::Double::round(); // Warning no need to check that the double will convert nicely to an int because mesh_index will range [-50;50]
+    
+    if ( _mesh_index > _max_mesh_index )
+        _max_mesh_index = _mesh_index;
+    if ( _mesh_index < _min_mesh_index )
+        _min_mesh_index = _mesh_index;
 }
 
 
@@ -117,7 +126,9 @@ void NOMAD::SMesh::set_mesh_indices ( const NOMAD::Point & r )
 /*-----------------------------------------------------------*/
 void NOMAD::SMesh::set_limit_mesh_index ( int l )
 {
+    
     _limit_mesh_index=l;
+    
 }
 
 
@@ -127,24 +138,24 @@ void NOMAD::SMesh::set_limit_mesh_index ( int l )
 /*-----------------------------------------------------------*/
 void NOMAD::SMesh::display ( const NOMAD::Display & out ) const
 {
-  out << "n                       : " << get_n()                   << std::endl
-      << "mesh update basis       : " << _update_basis        << std::endl
-      << "mesh coarsening step: " << _coarsening_step << std::endl
-      << "mesh refining step  : " << _refining_step   << std::endl
-      << "initial mesh size       : "
-      << "(" << _delta_0 << " )" << std::endl;
-  out << "minimal mesh size       : ";
-  if ( _delta_min.is_defined() )
-    out << "(" << _delta_min << " )" << std::endl;
-  else
-    out << "none";
-  out << std::endl
-      << "minimal poll size       : ";
-  if ( _Delta_min_is_defined )
-    out << "(" << _Delta_min << " )" << std::endl;
-  else
-    out << "none";
-  out << std::endl;
+    out << "n                       : " << get_n()                   << std::endl
+    << "mesh update basis       : " << _update_basis        << std::endl
+    << "mesh coarsening step: " << _coarsening_step << std::endl
+    << "mesh refining step  : " << _refining_step   << std::endl
+    << "initial mesh size       : "
+    << "(" << _delta_0 << " )" << std::endl;
+    out << "minimal mesh size       : ";
+    if ( _delta_min.is_defined() )
+        out << "(" << _delta_min << " )" << std::endl;
+    else
+        out << "none";
+    out << std::endl
+    << "minimal poll size       : ";
+    if ( _Delta_min_is_defined )
+        out << "(" << _Delta_min << " )" << std::endl;
+    else
+        out << "none";
+    out << std::endl;
 }
 
 /*----------------------------------------------------------*/
@@ -152,31 +163,31 @@ void NOMAD::SMesh::display ( const NOMAD::Display & out ) const
 /*  and on the minimal mesh size                            */
 /*----------------------------------------------------------*/
 void NOMAD::SMesh::check_min_mesh_sizes ( bool             & stop           ,
-					 NOMAD::stop_type & stop_reason      ) const
+                                         NOMAD::stop_type & stop_reason      ) const
 {
-  if ( stop )
-    return;
-
-  // 1. mesh index tests:
-  if ( abs ( _mesh_index ) > NOMAD::L_LIMITS )
-  {
-    stop        = true;
-    stop_reason = NOMAD::L_LIMITS_REACHED;
-  }
-  
-  // 2. delta_k^p (poll size) tests:
-  if ( check_min_poll_size_criterion ( ) ) 
-  {
-    stop        = true;
-    stop_reason = NOMAD::DELTA_P_MIN_REACHED;
-  }
-
-  // 3. delta_k^m (mesh size) tests:
-  if ( check_min_mesh_size_criterion ( ) ) 
-  {
-    stop        = true;
-    stop_reason = NOMAD::DELTA_M_MIN_REACHED;
-  }
+    if ( stop )
+        return;
+    
+    // 1. mesh index tests:
+    if ( abs ( _mesh_index ) > NOMAD::L_LIMITS )
+    {
+        stop        = true;
+        stop_reason = NOMAD::L_LIMITS_REACHED;
+    }
+    
+    // 2. delta_k^p (poll size) tests:
+    if ( check_min_poll_size_criterion ( ) )
+    {
+        stop        = true;
+        stop_reason = NOMAD::DELTA_P_MIN_REACHED;
+    }
+    
+    // 3. delta_k^m (mesh size) tests:
+    if ( check_min_mesh_size_criterion ( ) )
+    {
+        stop        = true;
+        stop_reason = NOMAD::DELTA_M_MIN_REACHED;
+    }
 }
 
 /*-----------------------------------------------------------*/
@@ -184,10 +195,10 @@ void NOMAD::SMesh::check_min_mesh_sizes ( bool             & stop           ,
 /*-----------------------------------------------------------*/
 bool NOMAD::SMesh::check_min_poll_size_criterion ( ) const
 {
-  if ( !_Delta_min_is_defined )
-    return false;
-  NOMAD::Point Delta;
-  return get_Delta ( Delta  );
+    if ( !_Delta_min_is_defined )
+        return false;
+    NOMAD::Point Delta;
+    return get_Delta ( Delta  );
 }
 
 /*-----------------------------------------------------------*/
@@ -195,10 +206,10 @@ bool NOMAD::SMesh::check_min_poll_size_criterion ( ) const
 /*-----------------------------------------------------------*/
 bool NOMAD::SMesh::check_min_mesh_size_criterion ( ) const
 {
-  if ( !_delta_min.is_defined() )
-    return false;
-  NOMAD::Point delta;
-  return get_delta ( delta );
+    if ( !_delta_min.is_defined() )
+        return false;
+    NOMAD::Point delta;
+    return get_delta ( delta );
 }
 
 /*----------------------------------------------------------------*/
@@ -210,29 +221,28 @@ bool NOMAD::SMesh::check_min_mesh_size_criterion ( ) const
 /*----------------------------------------------------------------*/
 bool NOMAD::SMesh::get_delta ( NOMAD::Point & delta ) const
 {
-	delta.reset ( _n );
+    delta.reset ( _n );
     
     bool delta_min_is_defined=_delta_min.is_defined();
-
-	
-	// power_of_tau = tau^{ max{0,l0} - max{0,lk} }:
-	NOMAD::Double power_of_tau
+    
+    // power_of_tau = tau^{ max{0,l0} - max{0,lk} }:
+    NOMAD::Double power_of_tau
     = pow ( _update_basis.value() ,
-		   ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
-		   ( (_mesh_index          > 0) ? _mesh_index          : 0)   );
-	
-	bool stop    = false;
-	
-	// delta^k = power_of_tau * delta^0:
-	for ( int i = 0 ; i < _n ; ++i )
-	{
-		delta[i] = _delta_0[i] * power_of_tau;
-		if ( !stop && delta_min_is_defined && delta[i] < _delta_min[i] )
-			stop = true;
-		
-	}
-	
-	return stop;
+           ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
+           ( (_mesh_index          > 0) ? _mesh_index          : 0)   );
+    
+    bool stop    = false;
+    
+    // delta^k = power_of_tau * delta^0:
+    for ( int i = 0 ; i < _n ; ++i )
+    {
+        delta[i] = _delta_0[i] * power_of_tau;
+        if ( !stop && delta_min_is_defined && delta[i] < _delta_min[i] )
+            stop = true;
+        
+    }
+    
+    return stop;
 }
 
 /*----------------------------------------------------------------*/
@@ -249,7 +259,7 @@ NOMAD::Double NOMAD::SMesh::get_delta ( int i ) const
            ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
            ( (_mesh_index          > 0) ? _mesh_index          : 0)   );
     
-
+    
     NOMAD::Double delta = _delta_0[i] * power_of_tau;
     
     return delta;
@@ -261,20 +271,20 @@ NOMAD::Double NOMAD::SMesh::get_delta ( int i ) const
 /*----------------------------------------------------------------*/
 NOMAD::Point NOMAD::SMesh::get_delta_max ( ) const
 {
-	
-	NOMAD::Point delta_max ( _n );
-	
-	// power_of_tau = tau^{ max{0,l0} - max{0,lk} }:
-	NOMAD::Double power_of_tau
+    
+    NOMAD::Point delta_max ( _n );
+    
+    // power_of_tau = tau^{ max{0,l0} - max{0,lk} }:
+    NOMAD::Double power_of_tau
     = pow ( _update_basis.value() ,
-		   ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
-		   ( (_min_mesh_index          > 0) ? _min_mesh_index          : 0)   );
-	
-	// delta^k = power_of_tau * delta^0:
-	for ( int i = 0 ; i < _n ; ++i )
-		delta_max[i] = _delta_0[i] * power_of_tau;		
-	
-	return delta_max;
+           ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
+           ( (_min_mesh_index          > 0) ? _min_mesh_index          : 0)   );
+    
+    // delta^k = power_of_tau * delta^0:
+    for ( int i = 0 ; i < _n ; ++i )
+        delta_max[i] = _delta_0[i] * power_of_tau;
+    
+    return delta_max;
 }
 
 
@@ -284,32 +294,33 @@ NOMAD::Point NOMAD::SMesh::get_delta_max ( ) const
 /*                 = delta^0 \tau^{ell_0^+ - ell_k^+ + |ell_k|/2}  */
 /*-------------------------------------------------------------------*/
 /*  the function also returns true if all values are < Delta_min   */
+/*  (stopping criterion MIN_POLL_SIZE)                               */
 /*-------------------------------------------------------------------*/
 bool NOMAD::SMesh::get_Delta ( NOMAD::Point & Delta ) const
 {
-
-	Delta.reset ( _n );
-	
-	// power_of_tau = tau^{ max{0,l0} - max{0,lk} + |lk|/2}:
-	NOMAD::Double power_of_tau
+    
+    Delta.reset ( _n );
+    
+    // power_of_tau = tau^{ max{0,l0} - max{0,lk} + |lk|/2}:
+    NOMAD::Double power_of_tau
     = pow ( _update_basis.value() , abs(_mesh_index) / 2.0             +
-		   ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
-		   ( (_mesh_index          > 0) ? _mesh_index          : 0)   );
-	
-	bool stop    = true;
- 	
-	// Delta^k = power_of_tau * Delta^0:
-	for ( int i = 0 ; i < _n ; ++i ) 
-	{
-		Delta[i] = _Delta_0[i] * power_of_tau;
-		if ( !_Delta_min_is_complete || Delta[i] >= _Delta_min[i] )
-			stop = false;
-
+           ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
+           ( (_mesh_index          > 0) ? _mesh_index          : 0)   );
+    
+    bool stop    = true;
+    
+    // Delta^k = power_of_tau * Delta^0:
+    for ( int i = 0 ; i < _n ; ++i )
+    {
+        Delta[i] = _Delta_0[i] * power_of_tau;
+        if ( !_Delta_min_is_complete || Delta[i] >= _Delta_min[i] )
+            stop = false;
+        
         if ( _Delta_min_is_defined && _Delta_min[i].is_defined() && Delta[i] < _Delta_min[i] )
             Delta[i]=_Delta_min[i];
-	}
-	
-	return stop;
+    }
+    
+    return stop;
 }
 
 /*-------------------------------------------------------------------*/
@@ -331,27 +342,30 @@ NOMAD::Double NOMAD::SMesh::get_Delta ( int i ) const
     NOMAD::Double Delta = _Delta_0[i] * power_of_tau;
     
     if ( _Delta_min_is_defined && _Delta_min[i].is_defined() && Delta < _Delta_min[i] )
-            Delta=_Delta_min[i];
+        Delta=_Delta_min[i];
     
     return Delta;
 }
 
 
-NOMAD::Double NOMAD::SMesh::scale_and_project(int i, const NOMAD::Double & l) const
+NOMAD::Double NOMAD::SMesh::scale_and_project(int i, const NOMAD::Double & l, bool round_up ) const
 {
-	NOMAD::Double delta = get_delta ( i );
-	NOMAD::Double Delta = get_Delta ( i );
-	
-	
-	if ( delta.is_defined() && Delta.is_defined() && i <= _n)
-	{
-		NOMAD::Double d= Delta / delta * l;
-		return d.NOMAD::Double::round()*delta;
-	}
-	else 
-		throw NOMAD::Exception ( "SMesh.cpp" , __LINE__ ,
-								"Mesh scaling and projection cannot be performed!" );
-
+    NOMAD::Double delta = get_delta ( i );
+    NOMAD::Double Delta = get_Delta ( i );
+    
+    
+    if ( delta.is_defined() && Delta.is_defined() && i <= _n)
+    {
+        NOMAD::Double d= Delta / delta * l;
+        if ( ! round_up )
+            return d.NOMAD::Double::round()*delta;
+        else
+            return d.NOMAD::Double::ceil()*delta;
+    }
+    else
+        throw NOMAD::Exception ( "SMesh.cpp" , __LINE__ ,
+                                "Mesh scaling and projection cannot be performed!" );
+    
 }
 
 
@@ -359,24 +373,24 @@ NOMAD::Double NOMAD::SMesh::scale_and_project(int i, const NOMAD::Double & l) co
 
 NOMAD::Point NOMAD::SMesh::get_mesh_ratio_if_success ( void ) const
 {
-	
-	NOMAD::Double power_of_tau
+    
+    NOMAD::Double power_of_tau
     = pow ( _update_basis.value() ,
-		   ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
-		   ( (_mesh_index          > 0) ? _mesh_index          : 0)   );
-
-	NOMAD::Double power_of_tau_if_success
-	= pow ( _update_basis.value() ,
-		   ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
-		   ( (_mesh_index - _coarsening_step          > 0) ? _mesh_index - _coarsening_step : 0)   );
-	
-	try
-	{
-		NOMAD::Double ratio_scalaire = power_of_tau_if_success/power_of_tau;
-		return NOMAD::Point( _n , ratio_scalaire );
-	}
-	catch ( NOMAD::Double::Invalid_Value & )
-	{
-		return NOMAD::Point( _n,-1 );
-	}
+           ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
+           ( (_mesh_index          > 0) ? _mesh_index          : 0)   );
+    
+    NOMAD::Double power_of_tau_if_success
+    = pow ( _update_basis.value() ,
+           ( (_initial_mesh_index > 0) ? _initial_mesh_index : 0) -
+           ( (_mesh_index - _coarsening_step          > 0) ? _mesh_index - _coarsening_step : 0)   );
+    
+    try
+    {
+        NOMAD::Double ratio_scalaire = power_of_tau_if_success/power_of_tau;
+        return NOMAD::Point( _n , ratio_scalaire );
+    }
+    catch ( NOMAD::Double::Invalid_Value & )
+    {
+        return NOMAD::Point( _n,-1 );
+    }
 }
diff --git a/src/SMesh.hpp b/src/SMesh.hpp
index 00f0211..ed18f21 100644
--- a/src/SMesh.hpp
+++ b/src/SMesh.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -65,29 +72,29 @@ namespace NOMAD {
      (one value for each variable). The scaling is done once based on initial mesh size.
      - See the MADS papers for more details on the mesh.
      */
-	
-	class SMesh : public NOMAD::OrthogonalMesh {
-		
-	private:
-		
-		int _initial_mesh_index;
-		int	_mesh_index;
-		int	_min_mesh_index;           ///< Minimal value reached by the mesh index
-		int	_max_mesh_index;           ///< Maximal value reached by the mesh index
-		
-		/*--------------------------------------------------------------*/
-		
-		/// Private affectation operator.
-		/**
-		 \param m The right-hand side object -- \b IN.
-		 */
-		const SMesh & operator = ( const SMesh & m );
-		
-		/// Check the minimal poll size criterion.
-		bool check_min_poll_size_criterion ( ) const;
-		
-		/// Check the minimal mesh size criterion.
-		bool check_min_mesh_size_criterion ( ) const;
+    
+    class SMesh : public NOMAD::OrthogonalMesh {
+        
+    private:
+        
+        int _initial_mesh_index;
+        int _mesh_index;
+        int _min_mesh_index;           ///< Minimal value reached by the mesh index
+        int _max_mesh_index;           ///< Maximal value reached by the mesh index
+        
+        /*--------------------------------------------------------------*/
+        
+        /// Private affectation operator.
+        /**
+         \param m The right-hand side object -- \b IN.
+         */
+        const SMesh & operator = ( const SMesh & m );
+        
+        /// Check the minimal poll size criterion.
+        bool check_min_poll_size_criterion ( ) const;
+        
+        /// Check the minimal mesh size criterion.
+        bool check_min_mesh_size_criterion ( ) const;
         
         /// Access to the mesh size parameter delta^k.
         /**
@@ -104,40 +111,42 @@ namespace NOMAD {
          */
         NOMAD::Double get_Delta ( int i ) const ;
         
-
-		
-		/*--------------------------------------------------------------*/
-		
-	public:
-		
-		/// Constructor.
-		/**
-		 \param delta_0					Initial mesh size delta_0                      -- \b IN.
-		 \param Delta_min				Minimal poll size Delta_min (may be undefined) -- \b IN.
-		 \param delta_min				Minimal mesh size delta_min (may be undefined) -- \b IN.
-		 \param mesh_update_basis		Mesh update basis (tau), default=4             -- \b IN.
-		 \param mesh_coarsening_step	Mesh coarsening step (w+), default=1		   -- \b IN.
-		 \param mesh_refining_step		Mesh refining step (w-), default=-1			   -- \b IN.
-		 \param initial_mesh_index		Initial mesh index ell_0, default=0			   -- \b IN.
-		 \param limit_max_mesh_index	Limit max of the mesh index, default=L_LIMITS  -- \b IN.
+        
+        
+        /*--------------------------------------------------------------*/
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param delta_0                 Initial mesh size delta_0                      -- \b IN.
+         \param Delta_min               Minimal poll size Delta_min (may be undefined) -- \b IN.
+         \param delta_min               Minimal mesh size delta_min (may be undefined) -- \b IN.
+         \param mesh_update_basis       Mesh update basis (tau), default=4             -- \b IN.
+         \param mesh_coarsening_step    Mesh coarsening step (w+), default=1           -- \b IN.
+         \param mesh_refining_step      Mesh refining step (w-), default=-1            -- \b IN.
+         \param initial_mesh_index      Initial mesh index ell_0, default=0            -- \b IN.
+         \param limit_max_mesh_index    Limit max of the mesh index, default=L_LIMITS  -- \b IN.
          \param fixed_variables         Fixed variables                                -- \b IN.
-		 */
-		SMesh ( const NOMAD::Point & delta_0   ,
-			   const NOMAD::Point & Delta_min ,
-			   const NOMAD::Point & delta_min ,
+         */
+        SMesh ( const NOMAD::Point& delta_0   ,
+               const NOMAD::Point & Delta_min ,
+               const NOMAD::Point & delta_min ,
                const NOMAD::Point & fixed_variables ,
-			   NOMAD::Double		mesh_update_basis=4.0,
-			   int					mesh_coarsening_step=1,
-			   int					mesh_refining_step=-1,
-			   int					initial_mesh_index=0,
+               NOMAD::Double        mesh_update_basis=4.0,
+               int                  mesh_coarsening_step=1,
+               int                  mesh_refining_step=-1,
+               int                  initial_mesh_index=0,
                int                  limit_max_mesh_index=NOMAD::L_LIMITS)
-		: NOMAD::OrthogonalMesh ( delta_0,
-								 Delta_min,
-								 delta_min,
+        : NOMAD::OrthogonalMesh ( false,
+                                 delta_0,
+                                 Delta_min,
+                                 delta_min,
                                  fixed_variables,
-								 mesh_update_basis,
-								 mesh_coarsening_step,
-								 mesh_refining_step ,
+                                 NOMAD::Point(),
+                                 mesh_update_basis,
+                                 mesh_coarsening_step,
+                                 mesh_refining_step ,
                                  limit_max_mesh_index ),
         _initial_mesh_index ( initial_mesh_index ),
         _mesh_index ( _initial_mesh_index ),
@@ -145,19 +154,19 @@ namespace NOMAD {
         _max_mesh_index ( initial_mesh_index )  {}
         
         
-		/// Copy constructor.
-		/**
-		 \param m The copied object -- \b IN.
-		 */
-		SMesh ( const SMesh & m )
-		: OrthogonalMesh(m) ,
-		_initial_mesh_index ( m._initial_mesh_index ),
-		_mesh_index ( m._initial_mesh_index ),
-		_min_mesh_index( m._initial_mesh_index ),
-		_max_mesh_index ( m._initial_mesh_index ) {}
-		
-		/// Destructor.
-		virtual ~SMesh ( void )
+        /// Copy constructor.
+        /**
+         \param m The copied object -- \b IN.
+         */
+        SMesh ( const SMesh & m )
+        : OrthogonalMesh(m) ,
+        _initial_mesh_index ( m._initial_mesh_index ),
+        _mesh_index ( m._initial_mesh_index ),
+        _min_mesh_index( m._initial_mesh_index ),
+        _max_mesh_index ( m._initial_mesh_index ) {}
+        
+        /// Destructor.
+        virtual ~SMesh ( void )
         {
             _delta_0.clear();
             _Delta_0.clear();
@@ -165,145 +174,146 @@ namespace NOMAD {
             _Delta_min.clear();
         }
         
-		
-		/// Access to the mesh index.
-		/**
-		 \return A Point with the mesh index.
-		 */
-		const NOMAD::Point get_mesh_indices ( void  ) const
+        
+        /// Access to the mesh index.
+        /**
+         \return A Point with the mesh index.
+         */
+        const NOMAD::Point get_mesh_indices ( void  ) const
         {
             return NOMAD::Point( 1 , NOMAD::Double(_mesh_index) );
         }
         
-		/// Access to the min mesh index reached so far.
-		/**
-		 \return A Point with the mesh index.
-		 */
-		const NOMAD::Point get_min_mesh_indices ( void  ) const
+        /// Access to the min mesh index reached so far.
+        /**
+         \return A Point with the mesh index.
+         */
+        const NOMAD::Point get_min_mesh_indices ( void  ) const
         {
             return NOMAD::Point( 1 , NOMAD::Double(_min_mesh_index) );
         }
-		
         
-		/// Access to the max mesh index reached so far.
-		/**
-		 \return A Point with the mesh index.
-		 */
-		const NOMAD::Point get_max_mesh_indices ( void  ) const
+        
+        /// Access to the max mesh index reached so far.
+        /**
+         \return A Point with the mesh index.
+         */
+        const NOMAD::Point get_max_mesh_indices ( void  ) const
         {
             return NOMAD::Point( 1 , NOMAD::Double(_max_mesh_index) );
         }
-		
-		
-		/// Manually set the mesh index using a point. (set_mesh_indices for consistency with XMesh)
-		/**
-		 \param r   The mesh index provided as a point -- \b IN.
-		 */
-		void set_mesh_indices ( const NOMAD::Point & r );
         
-		
+        
+        /// Manually set the mesh index using a point. (set_mesh_indices for consistency with XMesh)
+        /**
+         \param r   The mesh index provided as a point -- \b IN.
+         */
+        void set_mesh_indices ( const NOMAD::Point & r );
+        
+        
         
         /// Manually set the limit mesh index used for termination criterion (max value for SMesh).
-		/**
-		 \param l   The limit mesh index for all coordinates -- \b IN.
-		 */
-		void set_limit_mesh_index ( int l );
-        
-        
-        
-		/// Test if finest mesh so far.
-		/**
-		 \return True if mesh index greater or equal to the maximal mesh index; False otherwise.
-		 */
-		bool is_finest(void) const {return _mesh_index >= _max_mesh_index;  }
-        
-		
-		/// Access to the mesh ratios after a success
-		/**
-		 \return A point with the ratio for each coordinate
-		 */
-		NOMAD::Point get_mesh_ratio_if_success( void ) const;
-		
-        
-		/// Update the provided mesh indices (the Mesh is unchanged).
-		/**
-		 \param success			Type of success of the iteration				-- \b IN.
-		 \param mesh_indices	The mesh indices before and after the update	-- \b IN/OUT.
-		 \param dir				The direction that is considered (opt)			-- \b IN.
-		 */
-		void update ( NOMAD::success_type success , NOMAD::Point & mesh_indices, const NOMAD::Direction *dir=NULL ) const ;
-		
-        
-		/// Update the Mesh.
-		/**
-		 \param success			Type of success of the iteration				-- \b IN.
-		 \param dir				The direction that is considered (opt)			-- \b IN.
-		 */
-		void update ( NOMAD::success_type success , const NOMAD::Direction *dir=NULL);
-        
-		
-		/// Reset the mesh to its original size (mesh indices).
-		void reset ( void )
+        /**
+         \param l   The limit mesh index for all coordinates -- \b IN.
+         */
+        void set_limit_mesh_index ( int l );
+        
+        
+        
+        /// Test if finest mesh so far.
+        /**
+         \return True if mesh index greater or equal to the maximal mesh index; False otherwise.
+         */
+        bool is_finest(void) const {return _mesh_index >= _max_mesh_index;  }
+        
+        
+        /// Access to the mesh ratios after a success
+        /**
+         \return A point with the ratio for each coordinate
+         */
+        NOMAD::Point get_mesh_ratio_if_success( void ) const;
+        
+        
+        /// Update the provided mesh indices (the Mesh is unchanged).
+        /**
+         \param success         Type of success of the iteration                -- \b IN.
+         \param mesh_indices    The mesh indices before and after the update    -- \b IN/OUT.
+         \param dir             The direction that is considered (opt)          -- \b IN.
+         */
+        void update ( NOMAD::success_type success , NOMAD::Point & mesh_indices, const NOMAD::Direction *dir=NULL ) const ;
+        
+        
+        /// Update the Mesh.
+        /**
+         \param success         Type of success of the iteration         -- \b IN.
+         \param dir             The direction that is considered (opt)   -- \b IN.
+         */
+        void update ( NOMAD::success_type success , const NOMAD::Direction *dir=NULL);
+        
+        
+        /// Reset the mesh to its original size (mesh indices).
+        void reset ( void )
         {
             set_mesh_indices( NOMAD::Point(1,NOMAD::Double(_initial_mesh_index))) ;
-			_min_mesh_index=_initial_mesh_index ;
-			_max_mesh_index=_initial_mesh_index;
+            _min_mesh_index=_initial_mesh_index ;
+            _max_mesh_index=_initial_mesh_index;
         }
-		
-		/// Access to the mesh size parameter delta^k.
-		/**
-		 \param delta    The mesh size parameter delta^k -- \b OUT.
-		 \return A boolean equal to \c true if all values are
-		 strictly inferior than the associated minimal
-		 mesh size delta_min
-		 (stopping criterion MIN_MESH_SIZE).
-		 */
-		virtual bool get_delta ( NOMAD::Point & delta ) const ;
-
-
+        
+        /// Access to the mesh size parameter delta^k.
+        /**
+         \param delta    The mesh size parameter delta^k -- \b OUT.
+         \return A boolean equal to \c true if all values are
+         strictly inferior than the associated minimal
+         mesh size delta_min
+         (stopping criterion MIN_MESH_SIZE).
+         */
+        virtual bool get_delta ( NOMAD::Point & delta ) const ;
         
         
-		/// Access to the larget mesh size so far.
-		/**
-		 \return delta_max    The largest mesh size reached so far -- \b OUT.
-		 */
+        
+        
+        /// Access to the larget mesh size so far.
+        /**
+         \return delta_max    The largest mesh size reached so far -- \b OUT.
+         */
         NOMAD::Point get_delta_max ( void ) const ;
-		
-		/// Access to the poll size parameter Delta^k.
-		/**
-		 \param Delta    The poll size parameter Delta^k -- \b OUT.
-		 \return A boolean equal to \c true if all values are
-		 strictly inferior than the associated minimal
-		 mesh size Delta_min
-		 (stopping criterion MIN_POLL_SIZE).
-		 */
-		virtual bool get_Delta ( NOMAD::Point & Delta ) const ;
-
         
-		/// Check the stopping conditions on the minimal poll and mesh sizes.
-		/**
-		 \param stop           Stop flag                  -- \b IN/OUT.
-		 \param stop_reason    Stop reason                -- \b OUT.
-		 */
-		void check_min_mesh_sizes (	bool             & stop           ,
+        /// Access to the poll size parameter Delta^k.
+        /**
+         \param Delta    The poll size parameter Delta^k -- \b OUT.
+         \return A boolean equal to \c true if all values are
+         strictly inferior than the associated minimal
+         mesh size Delta_min
+         (stopping criterion MIN_POLL_SIZE).
+         */
+        virtual bool get_Delta ( NOMAD::Point & Delta ) const ;
+        
+        
+        /// Check the stopping conditions on the minimal poll and mesh sizes.
+        /**
+         \param stop           Stop flag                  -- \b IN/OUT.
+         \param stop_reason    Stop reason                -- \b OUT.
+         */
+        void check_min_mesh_sizes ( bool             & stop           ,
                                    NOMAD::stop_type & stop_reason      ) const;
-		/// Display.
-		/**
-		 \param out The NOMAD::Display object -- \b IN.
-		 */
-		void display ( const NOMAD::Display & out ) const;
-		
-		
-		/// Scale and project the ith component of a vector on the mesh
-		/**
-		 \param i	The vector component number			-- \b IN.
-		 \param l	The vector component value			-- \b IN.
-		 \return	The ith component of a vector after mesh scaling and projection
-		 */
-		NOMAD::Double scale_and_project(int i, const NOMAD::Double & l) const ;
-        
-		
-	};
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+        
+        
+        /// Scale and project the ith component of a vector on the mesh
+        /**
+         \param i           The vector component number            -- \b IN.
+         \param l           The vector component value             -- \b IN.
+         \param round_up    Flag for rounding up                   -- \b IN.
+         \return    The ith component of a vector after mesh scaling and projection
+         */
+        NOMAD::Double scale_and_project(int i, const NOMAD::Double & l, bool round_up ) const ;
+        
+        
+    };
 }
 
 #endif
diff --git a/src/Search.hpp b/src/Search.hpp
index a7b6b2e..034aed1 100644
--- a/src/Search.hpp
+++ b/src/Search.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,92 +41,93 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Search.hpp
-  \brief  Generic class for search strategies (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-08
-*/
+ \file   Search.hpp
+ \brief  Generic class for search strategies (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-08
+ */
 #ifndef __SEARCH__
 #define __SEARCH__
 
 #include "Evaluator_Control.hpp"
 
 namespace NOMAD {
-  
-  // Forward declarations.
-  class Mads;
-
-  /// Generic class for search strategies.
-  /**
-     This is an abstract class (it is not possible to create NOMAD::Search objects).
-  */
-  class Search {
-
-  protected:
-
-    NOMAD::Parameters  & _p;    ///< Parameters.
-    NOMAD::search_type   _type; ///< Search type.
-
-  public:
-
-    /// Constructor.
+    
+    // Forward declarations.
+    class Mads;
+    
+    /// Generic class for search strategies.
     /**
-      \param p Parameters  -- \b IN.
-      \param t Search type -- \b IN.
-    */
-    Search ( NOMAD::Parameters  & p ,
-	     NOMAD::search_type   t   )
-      : _p    ( p ) ,
-	_type ( t ) {}
-
-    /// Destructor.
-    virtual ~Search ( void ) {}
-
-    /// The search.
-    /**
-      - Has to be implemented by every NOMAD::Search subclass.
-      - Pure virtual method.
-      \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
-      \param nb_search_pts  Number of generated search points       -- \b OUT.
-      \param stop           Stop flag                               -- \b IN/OUT.
-      \param stop_reason    Stop reason                             -- \b OUT.
-      \param success        Type of success                         -- \b OUT.
-      \param count_search   Count or not the search                 -- \b OUT.
-      \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
-      \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
-    */
-    virtual void search
-    ( NOMAD::Mads              & mads           ,
-      int                      & nb_search_pts  ,
-      bool                     & stop           ,
-      NOMAD::stop_type         & stop_reason    ,
-      NOMAD::success_type      & success        ,
-      bool                     & count_search   ,
-      const NOMAD::Eval_Point *& new_feas_inc   ,
-      const NOMAD::Eval_Point *& new_infeas_inc   ) = 0;
-
-    /// Reset.
-    virtual void reset ( void ) {}
-
-    /// Display.
+     This is an abstract class (it is not possible to create NOMAD::Search objects).
+     */
+    class Search {
+        
+    protected:
+        
+        NOMAD::Parameters  & _p;    ///< Parameters.
+        NOMAD::search_type   _type; ///< Search type.
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p Parameters  -- \b IN.
+         \param t Search type -- \b IN.
+         */
+        Search ( NOMAD::Parameters  & p ,
+                NOMAD::search_type   t   )
+        : _p    ( p ) ,
+        _type ( t ) {}
+        
+        /// Destructor.
+        virtual ~Search ( void ) {}
+        
+        /// The search.
+        /**
+         - Has to be implemented by every NOMAD::Search subclass.
+         - Pure virtual method.
+         \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
+         \param nb_search_pts  Number of generated search points       -- \b OUT.
+         \param stop           Stop flag                               -- \b IN/OUT.
+         \param stop_reason    Stop reason                             -- \b OUT.
+         \param success        Type of success                         -- \b OUT.
+         \param count_search   Count or not the search                 -- \b OUT.
+         \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
+         \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
+         */
+        virtual void search
+        ( NOMAD::Mads              & mads           ,
+         int                      & nb_search_pts  ,
+         bool                     & stop           ,
+         NOMAD::stop_type         & stop_reason    ,
+         NOMAD::success_type      & success        ,
+         bool                     & count_search   ,
+         const NOMAD::Eval_Point *& new_feas_inc   ,
+         const NOMAD::Eval_Point *& new_infeas_inc   ) = 0;
+        
+        /// Reset.
+        virtual void reset ( void ) {}
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        virtual void display ( const NOMAD::Display & out ) const {}
+        
+    };
+    
+    /// Display a NOMAD::Search object.
     /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    virtual void display ( const NOMAD::Display & out ) const {}
-
-  };
-
-  /// Display a NOMAD::Search object.
-  /**
      \param out The NOMAD::Display object                -- \b IN.
      \param s   The NOMAD::Search object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
- 					      const NOMAD::Search  & s     ) {
-    s.display ( out );
-    return out;
-  }
-
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
+                                               const NOMAD::Search  & s     )
+    {
+        s.display ( out );
+        return out;
+    }
+    
 }
 #endif
diff --git a/src/Set_Element.hpp b/src/Set_Element.hpp
index 092346a..510dcf7 100644
--- a/src/Set_Element.hpp
+++ b/src/Set_Element.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,132 +41,132 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Set_Element.hpp
-  \brief  Element of a set (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-12
-*/
+ \file   Set_Element.hpp
+ \brief  Element of a set (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-12
+ */
 #ifndef __SET_ELEMENT__
 #define __SET_ELEMENT__
 
 namespace NOMAD {
-
-  // forward declarations:
-  class Double;
-  class Eval_Point;
-
-  /// Generic class for elements of a \c std::set.
-  /**
+    
+    // forward declarations:
+    class Double;
+    class Eval_Point;
+    
+    /// Generic class for elements of a \c std::set.
+    /**
      This is an abstract class (it is not possible to create NOMAD::Set_Element objects).
-  */
-  template <class T>
-  class Set_Element {
-
-  private:
-
+     */
+    template <class T>
+    class Set_Element {
+        
+    private:
+        
 #ifdef MEMORY_DEBUG
-    static int _cardinality;     ///< Number of NOMAD::Set_Element objects in memory.
-    static int _max_cardinality; ///< Max number of NOMAd::Set_Element objects in memory.
+        static int _cardinality;     ///< Number of NOMAD::Set_Element objects in memory.
+        static int _max_cardinality; ///< Max number of NOMAd::Set_Element objects in memory.
 #endif
-
-    const T * _el; ///< A pointer to the element.
-
-    /// Affectation operator.
-    /**
-       \param se The right-hand side object -- \b IN.
-    */
-    Set_Element & operator = ( const Set_Element & se );
-
-    /// Copy constructor.
-    /**
-       \param se The copied object -- \b IN.
-    */
-    Set_Element ( const Set_Element & se );
-
-  public:
-  
-    /// Constructor.
-    /**
-       \param el A pointer on the element -- \b IN.
-    */
-    explicit Set_Element ( const T * el ) : _el ( el )
-    {
+        
+        const T * _el; ///< A pointer to the element.
+        
+        /// Affectation operator.
+        /**
+         \param se The right-hand side object -- \b IN.
+         */
+        Set_Element & operator = ( const Set_Element & se );
+        
+        /// Copy constructor.
+        /**
+         \param se The copied object -- \b IN.
+         */
+        Set_Element ( const Set_Element & se );
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param el A pointer on the element -- \b IN.
+         */
+        explicit Set_Element ( const T * el ) : _el ( el )
+        {
 #ifdef MEMORY_DEBUG
-      ++Set_Element::_cardinality;
-      if ( Set_Element::_cardinality > Set_Element::_max_cardinality )
-	++Set_Element::_max_cardinality;
+            ++Set_Element::_cardinality;
+            if ( Set_Element::_cardinality > Set_Element::_max_cardinality )
+                ++Set_Element::_max_cardinality;
 #endif
-    }
-
-    /// Destructor.
-    virtual ~Set_Element ( void )
-    {
+        }
+        
+        /// Destructor.
+        virtual ~Set_Element ( void )
+        {
 #ifdef MEMORY_DEBUG
-      --Set_Element::_cardinality;
+            --Set_Element::_cardinality;
 #endif
-    }
-
-    /// Specific NOMAD::Priority_Eval_Point elements of comparison.
-    /**
-       - Only NOMAD::Priority_Eval_Point::get_priority_criteria() does something.
-       - \see Priority_Eval_Point.hpp .
-       \param c1 A real -- \b IN.
-       \param c2 A real -- \b IN.
-       \param c3 A real -- \b IN.
-       \param c4 A real -- \b IN.
-       \param c5 A real -- \b IN.
-       \param c6 A real -- \b IN.
-    */
-    virtual void get_priority_criteria ( NOMAD::Double & c1 ,
-					 NOMAD::Double & c2 ,
-					 NOMAD::Double & c3 ,
-					 NOMAD::Double & c4 ,
-					 NOMAD::Double & c5 ,
-					 NOMAD::Double & c6   ) const {}
-    /// Comparison operator.
-    /**
-       - Has to be implemented by every NOMAD::Set_Element subclass.
-       - Pure virtual method.
-       \param se The right-hand side object -- \b IN.
-    */
-    virtual bool operator < ( const Set_Element & se ) const = 0;
-    
-    /// Access to the element.
-    /**
-       \return A pointer to the element.
-    */
-    const T * get_element ( void ) const { return _el; }
-    
-    /// Set an element.
-    /**
-       \param el A pointer to the element -- \b IN.
-    */
-    void set_element ( const T * el ) { _el = el; }
-    
+        }
+        
+        /// Specific NOMAD::Priority_Eval_Point elements of comparison.
+        /**
+         - Only NOMAD::Priority_Eval_Point::get_priority_criteria() does something.
+         - \see Priority_Eval_Point.hpp .
+         \param c1 A real -- \b IN.
+         \param c2 A real -- \b IN.
+         \param c3 A real -- \b IN.
+         \param c4 A real -- \b IN.
+         \param c5 A real -- \b IN.
+         \param c6 A real -- \b IN.
+         */
+        virtual void get_priority_criteria ( NOMAD::Double & c1 ,
+                                            NOMAD::Double & c2 ,
+                                            NOMAD::Double & c3 ,
+                                            NOMAD::Double & c4 ,
+                                            NOMAD::Double & c5 ,
+                                            NOMAD::Double & c6   ) const {}
+        /// Comparison operator.
+        /**
+         - Has to be implemented by every NOMAD::Set_Element subclass.
+         - Pure virtual method.
+         \param se The right-hand side object -- \b IN.
+         */
+        virtual bool operator < ( const Set_Element & se ) const = 0;
+        
+        /// Access to the element.
+        /**
+         \return A pointer to the element.
+         */
+        const T * get_element ( void ) const { return _el; }
+        
+        /// Set an element.
+        /**
+         \param el A pointer to the element -- \b IN.
+         */
+        void set_element ( const T * el ) { _el = el; }
+        
 #ifdef MEMORY_DEBUG
-
-    /// Access to the number of NOMAD::Set_Element objects in memory.
-    /**
-       \return Number of NOMAD::Set_Element objects in memory.
-    */
-    static int get_cardinality ( void ) { return Set_Element::_cardinality; }
-
-    /// Access to the max number of NOMAD::Set_Element objects in memory.
-    /**
-       \return Max number of NOMAD::Set_Element objects in memory.
-    */
-    static int get_max_cardinality ( void ) { return Set_Element::_max_cardinality; }
-    
+        
+        /// Access to the number of NOMAD::Set_Element objects in memory.
+        /**
+         \return Number of NOMAD::Set_Element objects in memory.
+         */
+        static int get_cardinality ( void ) { return Set_Element::_cardinality; }
+        
+        /// Access to the max number of NOMAD::Set_Element objects in memory.
+        /**
+         \return Max number of NOMAD::Set_Element objects in memory.
+         */
+        static int get_max_cardinality ( void ) { return Set_Element::_max_cardinality; }
+        
 #endif
-  };
-
+    };
+    
 #ifdef MEMORY_DEBUG
-
-  /// Initialization of _cardinality.
-  template<class T> int NOMAD::Set_Element<T>::_cardinality = 0;
-
-  /// Initialization of _max_cardinality.
-  template<class T> int NOMAD::Set_Element<T>::_max_cardinality = 0;
+    
+    /// Initialization of _cardinality.
+    template<class T> int NOMAD::Set_Element<T>::_cardinality = 0;
+    
+    /// Initialization of _max_cardinality.
+    template<class T> int NOMAD::Set_Element<T>::_max_cardinality = 0;
 #endif
 }
 
diff --git a/src/Signature.cpp b/src/Signature.cpp
index cba5d26..e2c9288 100644
--- a/src/Signature.cpp
+++ b/src/Signature.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -57,49 +64,58 @@ bool NOMAD::Signature::_warning_has_been_displayed=false;
 /*--------------------------------------------------*/
 /*                    constructor 1                 */
 /*--------------------------------------------------*/
-NOMAD::Signature::Signature
-( int												n					,
- const std::vector<NOMAD::bb_input_type>			& input_types		,
- const NOMAD::Point									& lb				,
- const NOMAD::Point									& ub				,
- bool                                               use_smesh           ,
- bool												anisotropic_mesh	,
- const NOMAD::Point									& initial_poll_size	,
- const NOMAD::Point									& min_poll_size		,
- const NOMAD::Point									& min_mesh_size		,
- NOMAD::Double										& mesh_update_basis	,
- NOMAD::Double										& poll_update_basis	,
- int												& mesh_coarsening_exponent,
- int												& mesh_refining_exponent,
- int												initial_mesh_index	,
- const NOMAD::Point									& scaling			,
- const NOMAD::Point									& fixed_variables   ,
- const std::vector<bool>							& periodic_variables,
- std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp>	& var_groups        ,
- const NOMAD::Display								& out )
+NOMAD::Signature::Signature ( int                                                 n                         ,
+                             const std::vector<NOMAD::bb_input_type>            & input_types               ,
+                             const NOMAD::Point                                 & lb                        ,
+                             const NOMAD::Point                                 & ub                        ,
+                             const NOMAD::mesh_type                             & mesh_type                 ,
+                             bool                                                 anisotropic_mesh          ,
+                             const NOMAD::Point                                 & granularity               ,
+                             const NOMAD::Point                                 & initial_poll_size         ,
+                             const NOMAD::Point                                 & min_poll_size             ,
+                             const NOMAD::Point                                 & min_mesh_size             ,
+                             NOMAD::Double                                      & mesh_update_basis         ,
+                             NOMAD::Double                                      & poll_update_basis         ,
+                             int                                                & mesh_coarsening_exponent  ,
+                             int                                                & mesh_refining_exponent    ,
+                             int                                                  initial_mesh_index        ,
+                             int                                                  limit_mesh_index          ,
+                             const NOMAD::Point                                 & scaling                   ,
+                             const NOMAD::Point                                 & fixed_variables           ,
+                             const std::vector<bool>                            & periodic_variables        ,
+                             std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp>    & var_groups                ,
+                             const NOMAD::Display                               & out                       )
 :  _std  ( false ) ,
 _out ( out )
 {
-    // Mesh index starts at 0 for an xmesh and decreases as the mesh size decreases
+    // Mesh index starts at 0 for xmesh and decreases as the mesh size decreases
     // The mesh index is reset to 0 as the mesh is reset.
-    if ( ! use_smesh )
-        _mesh=new NOMAD::XMesh(anisotropic_mesh,
+    
+    if ( mesh_type == NOMAD::XMESH )
+        _mesh=new NOMAD::XMesh( anisotropic_mesh,
                                initial_poll_size,
                                min_poll_size,
                                min_mesh_size,
                                fixed_variables,
-                               poll_update_basis,  // XMesh set poll update basis (default 2)
+                               poll_update_basis,  // XMesh sets poll update basis (default 2)
                                mesh_coarsening_exponent,
-                               mesh_refining_exponent);
-    else   // Mesh index can be provided for isotropic smesh and increases as the mesh size decreases
-        _mesh=new NOMAD::SMesh(initial_poll_size,   // new initial_poll_size ~ old initial mesh size
+                               mesh_refining_exponent ,
+                               limit_mesh_index       );
+    
+    else if ( mesh_type == NOMAD::SMESH )
+        // Mesh index can be provided for isotropic smesh and increases as the mesh size decreases
+        _mesh=new NOMAD::SMesh(initial_poll_size,   // WARNING THIS IS NOT AN ERROR     new initial_poll_size ~ old initial mesh size
                                min_poll_size,
                                min_mesh_size,
                                fixed_variables,
                                mesh_update_basis, // SMesh set mesh update basis (default 4)
                                mesh_coarsening_exponent,
                                mesh_refining_exponent,
-                               initial_mesh_index );
+                               initial_mesh_index ,
+                               limit_mesh_index );
+    else
+        throw NOMAD::Signature::Signature_Error ( "Signature.cpp" , __LINE__ , *this ,
+                                                 "NOMAD::Signature::Signature(): a valid mesh type must be given" );
     
     init ( n              ,
           input_types        ,
@@ -107,6 +123,7 @@ _out ( out )
           ub                 ,
           scaling            ,
           fixed_variables    ,
+          granularity        ,
           periodic_variables ,
           var_groups           );
     
@@ -120,29 +137,28 @@ _out ( out )
 /*--------------------------------------------------*/
 /*                    constructor 2                 */
 /*--------------------------------------------------*/
-NOMAD::Signature::Signature
-( int                                       n                  ,
- const std::vector<NOMAD::bb_input_type> & input_types        ,
- const NOMAD::Point						& initial_poll_size	,
- const NOMAD::Point                      & lb                 ,
- const NOMAD::Point                      & ub                 ,
- const std::set<NOMAD::direction_type>   & direction_types    ,
- const std::set<NOMAD::direction_type>   & sec_poll_dir_types ,
- const NOMAD::Display                    & out                  )
-:	_std  ( false ) ,
+NOMAD::Signature::Signature ( int                                       n                 ,
+                             const std::vector<NOMAD::bb_input_type> & input_types        ,
+                             const NOMAD::Point                      & initial_poll_size  ,
+                             const NOMAD::Point                      & lb                 ,
+                             const NOMAD::Point                      & ub                 ,
+                             const std::set<NOMAD::direction_type>   & direction_types    ,
+                             const std::set<NOMAD::direction_type>   & sec_poll_dir_types ,
+                             const NOMAD::Display                    & out                  )
+:    _std  ( false ) ,
 _out  ( out )
 {
     if ( static_cast<int> ( input_types.size() ) != n )
         throw NOMAD::Signature::Signature_Error ( "Signature.cpp" , __LINE__ , *this ,
                                                  "NOMAD::Signature::Signature(): bad argument: input_types" );
     
-    // Default mesh is isotropic xmesh
+    // For this constructor, the default mesh is isotropic xmesh
     //------------------------------------------
     _mesh=new NOMAD::XMesh (false,
                             initial_poll_size,
                             NOMAD::Point(),
                             NOMAD::Point(),
-                            NOMAD::Point());
+                            NOMAD::Point(n));
     
     
     // automatic creation of groups of variables:
@@ -183,6 +199,7 @@ _out  ( out )
           ub                  ,
           NOMAD::Point()      ,
           NOMAD::Point()      ,
+          NOMAD::Point()      ,
           std::vector<bool>() ,
           var_groups            );
     
@@ -208,10 +225,11 @@ NOMAD::Signature::Signature ( const NOMAD::Signature & s )
 _ub                 ( s._ub                     ) ,
 _scaling            ( s._scaling                ) ,
 _fixed_variables    ( s._fixed_variables        ) ,
+_granularity        ( s._granularity            ) ,
 _input_types        ( s._input_types            ) ,
 _all_continuous     ( s._all_continuous         ) ,
-_has_categorical    ( s._has_categorical		 ) ,
-_periodic_variables ( s._periodic_variables	 ) ,
+_has_categorical    ( s._has_categorical        ) ,
+_periodic_variables ( s._periodic_variables     ) ,
 _std                ( false                     ) ,
 _feas_success_dir   ( s._feas_success_dir       ) ,
 _infeas_success_dir ( s._infeas_success_dir     ) ,
@@ -219,10 +237,13 @@ _out (s._out)
 {
     
     
-    if (dynamic_cast<NOMAD::SMesh*> (s._mesh))
+    if ( dynamic_cast<NOMAD::SMesh*> (s._mesh) )
         _mesh = new NOMAD::SMesh (*(static_cast<NOMAD::SMesh*>(s._mesh)));
-    else
+    else if ( dynamic_cast<NOMAD::XMesh*> (s._mesh) )
         _mesh = new NOMAD::XMesh (*(static_cast<NOMAD::XMesh*>(s._mesh)));
+    else
+        throw NOMAD::Signature::Signature_Error ( "Signature.cpp" , __LINE__ , *this ,
+                                                 "NOMAD::Signature::Signature(): copy constructor needs a valid mesh_type in the copied object" );
     
     std::list<NOMAD::Variable_Group *>::const_iterator it , end = s._var_groups.end();
     for ( it = s._var_groups.begin() ; it != end ; ++it )
@@ -263,6 +284,7 @@ void NOMAD::Signature::clear ( void )
     _fixed_variables.clear();
     _input_types.clear();
     _periodic_variables.clear();
+    _granularity.clear();
     delete _mesh;
     
 }
@@ -293,15 +315,15 @@ void NOMAD::Signature::set_infeas_success_dir ( const NOMAD::Direction & d )
 /*--------------------------------------------------*/
 /*               initializations (private)          */
 /*--------------------------------------------------*/
-void NOMAD::Signature::init
-( int                                       n                  ,
- const std::vector<NOMAD::bb_input_type> & input_types        ,
- const NOMAD::Point                      & lb                 ,
- const NOMAD::Point                      & ub                 ,
- const NOMAD::Point                      & scaling            ,
- const NOMAD::Point                      & fixed_variables    ,
- const std::vector<bool>                 & periodic_variables ,
- std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp> & var_groups )
+void NOMAD::Signature::init ( int                                       n                  ,
+                             const std::vector<NOMAD::bb_input_type> & input_types        ,
+                             const NOMAD::Point                      & lb                 ,
+                             const NOMAD::Point                      & ub                 ,
+                             const NOMAD::Point                      & scaling            ,
+                             const NOMAD::Point                      & fixed_variables    ,
+                             const NOMAD::Point                      & granularity        ,
+                             const std::vector<bool>                 & periodic_variables ,
+                             std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp> & var_groups )
 {
     // reset directions:
     _feas_success_dir.clear();
@@ -351,6 +373,14 @@ void NOMAD::Signature::init
         throw NOMAD::Signature::Signature_Error ( "Signature.cpp" , __LINE__ , *this ,
                                                  "NOMAD::Signature::init(): bad argument: fixed_variables" );
     
+    if ( granularity.empty() )
+        _granularity.reset(n,0) ;
+    else if ( granularity.size() == n )
+        _granularity = granularity;
+    else
+        throw NOMAD::Signature::Signature_Error ( "Signature.cpp" , __LINE__ , *this ,
+                                                 "NOMAD::Signature::init(): bad argument: granularity" );
+    
     // periodic variables:
     _periodic_variables = periodic_variables;
     if ( !_periodic_variables.empty() )
@@ -417,8 +447,6 @@ void NOMAD::Signature::init
             if ( _has_categorical )
                 break;
         }
-        
-        
     }
     
     // variable groups:
@@ -436,8 +464,6 @@ void NOMAD::Signature::init
                                                      "NOMAD::Signature::init(): incompatible variable group" );
         
     }
-    
-    // if the indices in var_groups have been modified than var_groups is reconstructed to ensure proper ordering
     if ( mod )
     {
         std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp> tmp_var_groups;
@@ -492,19 +518,51 @@ int NOMAD::Signature::get_nb_fixed_variables ( void ) const
 }
 
 
+/*--------------------------------------------------------*/
+/* Access to the maximum number of points in the poll set */
+/*--------------------------------------------------------*/
+int NOMAD::Signature::get_max_size_poll_set ( void ) const
+{
+    int m=1; // There is at list one point (the poll center)
+    
+    NOMAD::Point delta=_mesh->get_delta();
+    NOMAD::Point Delta=_mesh->get_Delta();
+    
+    if ( delta.is_defined() && Delta.is_defined() )
+    {
+        for (int i = 0 ; i < get_n() ; ++i )
+            if ( ! _fixed_variables[i].is_defined() )
+            {
+                NOMAD::Double r;
+                if ( _input_types[i] == NOMAD::CONTINUOUS )
+                    r=Delta[i]/delta[i]+1;
+                else if ( _input_types[i] == NOMAD::INTEGER )
+                    r=Delta[i]+1;
+                else if ( _input_types[i] == NOMAD::BINARY )
+                    r=2;
+                else if ( _input_types[i] == NOMAD::CATEGORICAL )
+                    r=1;
+                m= m * static_cast<int> ( r.floor().value() );
+            }
+    }
+    
+    return m;
+}
+
+
 
 /*--------------------------------------------------*/
 /*                       reset                      */
 /*--------------------------------------------------*/
-void NOMAD::Signature::reset
-( int                                       n                        ,
- const std::vector<NOMAD::bb_input_type> & input_types              ,
- const NOMAD::Point                      & lb                       ,
- const NOMAD::Point                      & ub                       ,
- const NOMAD::Point                      & scaling                  ,
- const NOMAD::Point                      & fixed_variables          ,
- const std::vector<bool>                 & periodic_variables       ,
- std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp> & var_groups   )
+void NOMAD::Signature::reset ( int                                       n                        ,
+                              const std::vector<NOMAD::bb_input_type> & input_types              ,
+                              const NOMAD::Point                      & lb                       ,
+                              const NOMAD::Point                      & ub                       ,
+                              const NOMAD::Point                      & scaling                  ,
+                              const NOMAD::Point                      & fixed_variables          ,
+                              const NOMAD::Point                      & granularity              ,
+                              const std::vector<bool>                 & periodic_variables       ,
+                              std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp> & var_groups   )
 {
     reset_mesh();
     reset_var_groups();
@@ -514,6 +572,7 @@ void NOMAD::Signature::reset
           ub                 ,
           scaling            ,
           fixed_variables    ,
+          granularity        ,
           periodic_variables ,
           var_groups           );
 }
@@ -546,9 +605,9 @@ bool NOMAD::Signature::is_compatible ( const NOMAD::Point & x ) const
 /*-----------------------------------------------------*/
 /*     compute the directions                          */
 /*-----------------------------------------------------*/
-void NOMAD::Signature::get_directions ( std::list<NOMAD::Direction>	& dirs			,
-                                       NOMAD::poll_type				poll			,
-                                       const NOMAD::Point			& poll_center   )
+void NOMAD::Signature::get_directions ( std::list<NOMAD::Direction>  & dirs     ,
+                                       NOMAD::poll_type                poll       ,
+                                       const NOMAD::Point            & poll_center   )
 {
     
     NOMAD::Direction                          * pd;
@@ -557,12 +616,12 @@ void NOMAD::Signature::get_directions ( std::list<NOMAD::Direction>	& dirs			,
     std::set<int>::const_iterator               it_vi  , end_vi;
     
     int          n = get_n();
-    NOMAD::Point delta=_mesh->get_delta ( );
-    NOMAD::Point Delta=_mesh->get_Delta ( );
+    NOMAD::Point delta = _mesh->get_delta ( );
+    NOMAD::Point Delta = _mesh->get_Delta ( );
     
     
     // Reset dir_group_index.
-    //	For each signature, a variable_group has a  unique set of directions generated and a unique dir_group_index starting by zero (-1 if no dirs)
+    // For each signature, a variable_group has a  unique set of directions generated and a unique dir_group_index starting by zero (-1 if no dirs)
     _dir_group_index=-1;
     
     // loop on variable groups:
@@ -577,8 +636,7 @@ void NOMAD::Signature::get_directions ( std::list<NOMAD::Direction>	& dirs			,
         (*it_vg)->get_directions ( dirs_nc , poll , *_mesh );  // _mesh of all directions
         
         
-        // scale with delta and resize the directions to size n;
-        // also round integer and binary variables:
+        // Scaling and projection on the mesh
         end_dir = dirs_nc.end();
         if (static_cast<int>(dirs_nc.size())!=0)
             ++_dir_group_index;
@@ -590,47 +648,179 @@ void NOMAD::Signature::get_directions ( std::list<NOMAD::Direction>	& dirs			,
             pd = &(*(--dirs.end()));
             
             end_vi = var_indexes.end();
-            i      = 0;
+            
+            i = 0;
+            NOMAD::Double normInfPoint=0;
+            for ( it_vi = var_indexes.begin() ; it_vi != end_vi ; ++it_vi ,++i )
+            {
+                normInfPoint = std::max( normInfPoint.value() , std::fabs( (*it_dir)[i].value() ) );
+            }
             
             
-            for ( it_vi = var_indexes.begin() ; it_vi != end_vi ; ++it_vi ,++i)
+            i = 0;
+            for ( it_vi = var_indexes.begin() ; it_vi != end_vi ; ++it_vi ,++i )
             {
-                // Scaling and projection on the mesh
-                (*pd)[*it_vi] = _mesh->scale_and_project(*it_vi,(*it_dir)[i]);
-                
-                // integer variables:
-                if ( _input_types[*it_vi] == NOMAD::INTEGER )
+                if ( _input_types[*it_vi] == NOMAD::BINARY )
                 {
-                    if ( (*pd)[*it_vi] >= Delta[*it_vi]/3.0 )
-                        (*pd)[*it_vi] =  (*pd)[*it_vi].ceil();
-                    else if ( (*pd)[*it_vi] <= -Delta[*it_vi]/3.0 )
-                        (*pd)[*it_vi] =  (*pd)[*it_vi].floor();
+                    if ( (*it_dir)[i] < 0 )
+                        (*pd)[*it_vi] = 0.0;
                     else
-                        (*pd)[*it_vi] =  (*pd)[*it_vi].round();
-                }
-                
-                // binary variables:
-                else if ( _input_types[*it_vi] == NOMAD::BINARY )
-                {
-                    if ( (*pd)[*it_vi] != 0.0 )
                         (*pd)[*it_vi] = 1.0;
                 }
-                
                 // categorical variables: set direction=0:
                 else if ( _input_types[*it_vi] == NOMAD::CATEGORICAL )
                     (*pd)[*it_vi] = 0.0;
+                else
+                {
+                    {
+                        
+                        // Pickup 0, -1, 1 for the integer variable when Delta < 1.0
+                        if ( _input_types[*it_vi] == NOMAD::INTEGER && Delta[i] < 1.0 )
+                        {
+                            if ( (*it_dir)[i] > 1.0/3.0 )
+                                (*pd)[*it_vi] =  1.0 ;
+                            else if ( (*it_dir)[i] < -1.0/3.0 )
+                                (*pd)[*it_vi] =  -1.0;
+                            else
+                                (*pd)[*it_vi] =  0.0;
+                            
+                        }
+                        else
+                        {
+                            // Scaling and projection on the mesh
+                            (*pd)[*it_vi] = _mesh->scale_and_project(*it_vi,(*it_dir)[i]);
+                            
+                            // round for integer variables:
+                            if ( _input_types[*it_vi] == NOMAD::INTEGER )
+                            {
+                                if ( (*pd)[*it_vi] >= Delta[*it_vi]/3.0 )
+                                    (*pd)[*it_vi] =  (*pd)[*it_vi].ceil();
+                                else if ( (*pd)[*it_vi] <= -Delta[*it_vi]/3.0 )
+                                    (*pd)[*it_vi] =  (*pd)[*it_vi].floor();
+                                else
+                                    (*pd)[*it_vi] =  (*pd)[*it_vi].round();
+                            }
+                        }
+                    }
+                }
+                
             }
             
         }
     }
 }
 
+
+/*-----------------------------------------------------------------------------------*/
+/*     compute one ORTHO 1 direction for a random group of variable                  */
+/*-----------------------------------------------------------------------------------*/
+void NOMAD::Signature::get_variable_group_direction ( NOMAD::Direction   & dir           ,
+                                                     const NOMAD::Point  & poll_center   )
+{
+    
+    std::set<int>::const_iterator               it_vi  , end_vi;
+    
+    NOMAD::Point delta=_mesh->get_delta ( );
+    NOMAD::Point Delta=_mesh->get_Delta ( );
+    
+    
+    // Reset dir_group_index.
+    // For each signature, a variable_group has a  unique set of directions generated and a unique dir_group_index starting by zero (-1 if no dirs)
+    _dir_group_index=1;
+    
+    size_t n_vg=_var_groups.size();
+    int var_group_id=0;
+    
+    // Select a variable group;
+    if ( n_vg > 1 )
+        var_group_id=NOMAD::RNG::rand() % n_vg;
+    
+    std::list<NOMAD::Variable_Group*>::const_iterator it_vg=_var_groups.begin();
+    std::advance(it_vg, var_group_id);
+    
+    // scale with delta and resize the directions to size n;
+    // also round integer and binary variables:
+    const std::set<int> & var_indexes = (*it_vg)->get_var_indexes();
+    NOMAD::Direction dir_nc ( static_cast<int>(var_indexes.size()) , 0.0 , NOMAD::ORTHO_1 );
+    
+    // get a direction INSIDE a unit nc-sphere
+    if ( (*it_vg)->get_one_direction ( dir_nc ) ) // Get a direction ON a unit nc-sphere
+    {
+        
+        // Randomly scale the direction to be inside the unit nc-sphere
+        NOMAD::Double s = NOMAD::RNG::rand(0,1);
+        
+        // Make sure to have s!=0
+        while ( s==0 )
+            s=NOMAD::RNG::rand(0,1);
+        
+        NOMAD::Double normInfPoint=0;
+        for ( int i=0; i < static_cast<int>(var_indexes.size()) ; ++i )
+        {
+            normInfPoint = std::max( normInfPoint.value() , std::fabs( (dir_nc)[i].value() ) );
+        }
+        
+        end_vi = var_indexes.end();
+        int i = 0;
+        for ( it_vi = var_indexes.begin() ; it_vi != end_vi ; ++it_vi ,++i)
+        {
+            
+            if ( _input_types[*it_vi] == NOMAD::BINARY )
+            {
+                if ( dir_nc[i] < 0 )
+                    dir_nc[*it_vi] = 0.0;
+                else
+                    dir_nc[*it_vi] = 1.0;
+            }
+            // categorical variables: set direction=0:
+            else if ( _input_types[*it_vi] == NOMAD::CATEGORICAL )
+                dir[*it_vi] = 0.0;
+            else
+            {
+                
+                // Scaling and projection on the mesh ---> round up to prevent getting the current incumbent (0<s<=1)
+                {
+                    
+                    // Pickup 0, -1, 1 for the integer variable when Delta < 1.0
+                    if ( _input_types[*it_vi] == NOMAD::INTEGER && Delta[i] < 1.0 )
+                    {
+                        if ( dir_nc[i] > 1.0/3.0 )
+                            dir[*it_vi] =  1.0 ;
+                        else if ( dir_nc[i] < -1.0/3.0 )
+                            dir[*it_vi] =  -1.0;
+                        else
+                            dir[*it_vi] =  0.0;
+                        
+                    }
+                    else
+                    {
+                        
+                        dir[*it_vi] = _mesh->scale_and_project( *it_vi, dir_nc[i] * s, true);
+                        
+                        // integer variables:
+                        if ( _input_types[*it_vi] == NOMAD::INTEGER )
+                        {
+                            if ( dir[*it_vi] >= Delta[*it_vi]/3.0 )
+                                dir[*it_vi] =  dir[*it_vi].ceil();
+                            else if ( dir[*it_vi] <= -Delta[*it_vi]/3.0 )
+                                dir[*it_vi] =  dir[*it_vi].floor();
+                            else
+                                dir[*it_vi] =  dir[*it_vi].round();
+                        }
+                    }
+                }
+            }
+        }
+    }
+    
+}
+
+
 /*----------------------------------------------------------------*/
 /*  get just one direction for a given mesh (used by VNS search)  */
 /*----------------------------------------------------------------*/
-void NOMAD::Signature::get_one_direction ( NOMAD::Direction & dir , int ell) const
+void NOMAD::Signature::get_one_direction ( NOMAD::Direction & dir , int ell)
 {
-    int                           i;
     std::set<int>::const_iterator it_vi  , end_vi;
     
     // get delta_m (mesh size parameter):
@@ -641,10 +831,10 @@ void NOMAD::Signature::get_one_direction ( NOMAD::Direction & dir , int ell) con
     dir.reset    ( n , 0.0 );
     dir.set_type ( NOMAD::UNDEFINED_DIRECTION );
     
-    // The mesh indices are modified and must be reset properly once the one direction is obtained
-    const NOMAD::Point old_mesh_indices=_mesh->get_mesh_indices();
-    NOMAD::Point modified_mesh_indices(n,NOMAD::Double(ell));
-    _mesh->set_mesh_indices(modified_mesh_indices);
+    // The mesh indices are modified and will be reset properly once the one direction is obtained
+    const NOMAD::Point old_mesh_indices = _mesh->get_mesh_indices();
+    NOMAD::Point modified_mesh_indices( n , NOMAD::Double(ell) );
+    _mesh->set_mesh_indices( modified_mesh_indices );
     
     // loop on variable groups:
     std::list<NOMAD::Variable_Group*>::const_iterator end_vg = _var_groups.end() , it_vg;
@@ -653,52 +843,75 @@ void NOMAD::Signature::get_one_direction ( NOMAD::Direction & dir , int ell) con
         
         const std::set<int> & var_indexes = (*it_vg)->get_var_indexes();
         
-        // get the direction for the current group of variables:
         NOMAD::Direction dir_nc ( static_cast<int>(var_indexes.size()) , 0.0 , NOMAD::UNDEFINED_DIRECTION );
         
         // get a direction on a unit nc-sphere
         if ( (*it_vg)->get_one_direction ( dir_nc ) )
         {
             
-            // scale with delta_m and round integer and binary variables:
+            
+            NOMAD::Double normInfPoint=0;
+            for ( int i=0; i < static_cast<int>(var_indexes.size()) ; ++i )
+            {
+                normInfPoint = std::max( normInfPoint.value() , std::fabs( (dir_nc)[i].value() ) );
+            }
+            
+            
+            // scale with delta and round integer and binary variables:
             end_vi = var_indexes.end();
-            i      = 0;
-            for ( it_vi = var_indexes.begin() ; it_vi != end_vi ; ++it_vi )
+            int i      = 0;
+            for ( it_vi = var_indexes.begin() ; it_vi != end_vi ; ++it_vi, ++i )
             {
                 
-                dir[*it_vi]=_mesh->scale_and_project(*it_vi,dir_nc[i++]);
-                
-                
-                // integer variables:
-                if ( _input_types[*it_vi] == NOMAD::INTEGER )
+                if ( _input_types[*it_vi] == NOMAD::BINARY )
                 {
-                    if ( dir[*it_vi] >= Delta[*it_vi]/3.0 )
-                        dir[*it_vi] = ceil  ( dir[*it_vi].value() );
-                    else if ( dir [*it_vi] <= -Delta[*it_vi]/3.0 )
-                        dir[*it_vi] = floor ( dir[*it_vi].value() );
+                    if ( dir_nc[i] < 0 )
+                        dir[*it_vi] = 0.0;
                     else
-                    {
-                        double x=dir[*it_vi].value();
-                        dir[*it_vi] = (x>0)? floor(x+0.5): ceil(x-0.5);
-                    }
-                }
-                
-                // binary variables:
-                else if ( _input_types[*it_vi] == NOMAD::BINARY )
-                {
-                    if ( dir[*it_vi] != 0.0 )
                         dir[*it_vi] = 1.0;
                 }
-                
                 // categorical variables: set direction=0:
                 else if ( _input_types[*it_vi] == NOMAD::CATEGORICAL )
                     dir[*it_vi] = 0.0;
+                else
+                {
+                    {
+                        // Pickup 0, -1, 1 for the integer variable when Delta < 1.0
+                        if ( _input_types[*it_vi] == NOMAD::INTEGER && Delta[i] < 1.0 )
+                        {
+                            if ( dir_nc[i] > 1.0/3.0 )
+                                dir[*it_vi] =  1.0 ;
+                            else if ( dir_nc[i] < -1.0/3.0 )
+                                dir[*it_vi] =  -1.0;
+                            else
+                                dir[*it_vi] =  0.0;
+                            
+                        }
+                        else
+                        {
+                            
+                            
+                            dir[*it_vi]=_mesh->scale_and_project(*it_vi , dir_nc[i]);
+                            
+                            // integer variables:
+                            if ( _input_types[*it_vi] == NOMAD::INTEGER )
+                            {
+                                if ( dir[*it_vi] >= Delta[*it_vi]/3.0 )
+                                    dir[*it_vi] = dir[*it_vi].ceil() ;
+                                else if ( dir [*it_vi] <= -Delta[*it_vi]/3.0 )
+                                    dir[*it_vi] = dir[*it_vi].floor();
+                                else
+                                    dir[*it_vi] = dir[*it_vi].round();
+                            }
+                        }
+                    }
+                }
             }
         }
     }
     
     // Reset the mesh indices to their previous values
-    _mesh->set_mesh_indices(old_mesh_indices);
+    _mesh->set_mesh_indices( old_mesh_indices );
 }
 
 /*----------------------------------*/
@@ -840,7 +1053,7 @@ bool NOMAD::Signature::treat_periodic_variables ( NOMAD::Point            & x
             {
                 
                 if ( bbit == NOMAD::INTEGER )
-                    new_x.round();
+                    new_x = new_x.round();
                 
                 if (new_dir)
                     (*new_dir)[i] += new_x - xi;
@@ -1058,6 +1271,14 @@ bool NOMAD::Signature::operator < ( const NOMAD::Signature & s ) const
         if ( !p1_empty && _periodic_variables[i] != s._periodic_variables[i] )
             return _periodic_variables[i];
         
+        // granularity:
+        // -------------------
+        if ( _granularity[i].comp_with_undef ( s._granularity[i] ) )
+            return true;
+        if ( s._granularity[i].comp_with_undef ( _granularity[i] ) )
+            return false;
+        
+        
         // mesh:
         // -----
         if ( _mesh->get_initial_mesh_size() != s._mesh->get_initial_mesh_size() &&
diff --git a/src/Signature.hpp b/src/Signature.hpp
index 44dcd32..a779202 100644
--- a/src/Signature.hpp
+++ b/src/Signature.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -61,6 +68,7 @@ namespace NOMAD {
         NOMAD::Point _ub;              ///< Upper bounds.
         NOMAD::Point _scaling;         ///< Scaling.
         NOMAD::Point _fixed_variables; ///< Fixed variables.
+        NOMAD::Point _granularity;     ///< Granularity of variables.
         
         std::vector<NOMAD::bb_input_type> _input_types; ///< Input types.
         
@@ -117,18 +125,19 @@ namespace NOMAD {
          \param ub                 Upper bounds           -- \b IN.
          \param scaling            Scaling                -- \b IN.
          \param fixed_variables    Fixed variables        -- \b IN.
+         \param granularity        Min granularity of var -- \b IN.
          \param periodic_variables Periodic variables     -- \b IN.
          \param var_groups         Groups of variables    -- \b IN.
          */
-        void init
-        ( int                                                     n                  ,
-         const std::vector<NOMAD::bb_input_type>               & input_types        ,
-         const NOMAD::Point                                    & lb                 ,
-         const NOMAD::Point                                    & ub                 ,
-         const NOMAD::Point                                    & scaling            ,
-         const NOMAD::Point                                    & fixed_variables    ,
-         const std::vector<bool>                               & periodic_variables ,
-         std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp> & var_groups           );
+        void init ( int                                                     n                  ,
+                   const std::vector<NOMAD::bb_input_type>               & input_types        ,
+                   const NOMAD::Point                                    & lb                 ,
+                   const NOMAD::Point                                    & ub                 ,
+                   const NOMAD::Point                                    & scaling            ,
+                   const NOMAD::Point                                    & fixed_variables    ,
+                   const NOMAD::Point                                    & granularity        ,
+                   const std::vector<bool>                               & periodic_variables ,
+                   std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp>       & var_groups           );
         
         /// Reset groups of variables.
         void reset_var_groups ( void );
@@ -165,47 +174,49 @@ namespace NOMAD {
         /// Constructor #1.
         /**
          Advanced version.
-         \param n							Number of variables			-- \b IN.
-         \param input_types					Types of the variables		-- \b IN.
-         \param use_smesh                   Type of mesh (SMesh, XMesh)	-- \b IN.
-         \param anisotropic_mesh			Anisotropy of mesh (XMesh)	-- \b IN.
-         \param initial_poll_size			Initial poll size			-- \b IN.
-         \param min_poll_size				Minimum poll size			-- \b IN.
-         \param min_mesh_size				Minimim mesh size			-- \b IN.
-         \param mesh_update_basis			Mesh update basis			-- \b IN.
-         \param poll_update_basis			Poll update basis			-- \b IN.
-         \param mesh_coarsening_exponent	Mesh coarsening exponent	-- \b IN.
-         \param mesh_refining_exponent		Mesh refining exponent		-- \b IN.
-         \param initial_mesh_index			Initial mesh index			-- \b IN.
-         \param lb							Lower bounds				-- \b IN.
-         \param ub							Upper bounds				-- \b IN.
-         \param scaling						Scaling						-- \b IN.
-         \param fixed_variables				Fixed variables				-- \b IN.
-         \param periodic_variables			Periodic variables			-- \b IN.
-         \param var_groups					Groups of variables			-- \b IN.
-         \param out							Display                     -- \b IN.
-         */
-        Signature
-        ( int													n                  ,
-         const std::vector<NOMAD::bb_input_type>				& input_types        ,
-         const NOMAD::Point										& lb                 ,
-         const NOMAD::Point										& ub                 ,
-         bool													use_smesh	,
-         bool													anisotropic_mesh	,
-         const NOMAD::Point									    & initial_poll_size	,
-         const NOMAD::Point										& min_poll_size		,
-         const NOMAD::Point										& min_mesh_size		,
-         NOMAD::Double											& mesh_update_basis	,
-         NOMAD::Double											& poll_update_basis	,
-         int													& mesh_coarsening_exponent,
-         int													& mesh_refining_exponent,
-         int													initial_mesh_index	,
-         const NOMAD::Point										& scaling           ,
-         const NOMAD::Point										& fixed_variables   ,
-         const std::vector<bool>								& periodic_variables,
-         std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp>		& var_groups         ,
-         const NOMAD::Display									& out=NOMAD::Display()
-         );
+         \param n                            Number of variables             -- \b IN.
+         \param input_types                  Types of the variables          -- \b IN.
+         \param mesh_type                    Type of mesh (SMesh,XMesh,GMesh)-- \b IN.
+         \param anisotropic_mesh             Anisotropy of mesh (XMesh)      -- \b IN.
+         \param granularity                  Gramularity of variables        -- \b IN.
+         \param initial_poll_size            Initial poll size               -- \b IN.
+         \param min_poll_size                Minimum poll size               -- \b IN.
+         \param min_mesh_size                Minimim mesh size               -- \b IN.
+         \param mesh_update_basis            Mesh update basis               -- \b IN.
+         \param poll_update_basis            Poll update basis               -- \b IN.
+         \param mesh_coarsening_exponent     Mesh coarsening exponent        -- \b IN.
+         \param mesh_refining_exponent       Mesh refining exponent          -- \b IN.
+         \param initial_mesh_index           Initial mesh index              -- \b IN.
+         \param limit_mesh_index             Limit mesh index                -- \b IN.
+         \param lb                           Lower bounds                    -- \b IN.
+         \param ub                           Upper bounds                    -- \b IN.
+         \param scaling                      Scaling                         -- \b IN.
+         \param fixed_variables              Fixed variables                 -- \b IN.
+         \param periodic_variables           Periodic variables              -- \b IN.
+         \param var_groups                   Groups of variables             -- \b IN.
+         \param out                          Display                         -- \b IN.
+         */
+        Signature ( int                                               n                 ,
+                   const std::vector<NOMAD::bb_input_type>          & input_types       ,
+                   const NOMAD::Point                               & lb                ,
+                   const NOMAD::Point                               & ub                ,
+                   const NOMAD::mesh_type                           & mesh_type         ,
+                   bool                                               anisotropic_mesh  ,
+                   const NOMAD::Point                               & granularity       ,
+                   const NOMAD::Point                               & initial_poll_size ,
+                   const NOMAD::Point                               & min_poll_size     ,
+                   const NOMAD::Point                               & min_mesh_size     ,
+                   NOMAD::Double                                    & mesh_update_basis ,
+                   NOMAD::Double                                    & poll_update_basis ,
+                   int                                              & mesh_coarsening_exponent,
+                   int                                              & mesh_refining_exponent,
+                   int                                                initial_mesh_index,
+                   int                                                limit_mesh_index  ,
+                   const NOMAD::Point                               & scaling           ,
+                   const NOMAD::Point                               & fixed_variables   ,
+                   const std::vector<bool>                          & periodic_variables,
+                   std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp>  & var_groups        ,
+                   const NOMAD::Display                             & out=NOMAD::Display() );
         
         /// Constructor #2.
         /**
@@ -219,15 +230,14 @@ namespace NOMAD {
          \param sec_poll_dir_types Types of directions for secondary poll -- \b IN.
          \param out                Display                                -- \b IN.
          */
-        Signature ( int                                       n                  ,
+        Signature ( int                                      n                  ,
                    const std::vector<NOMAD::bb_input_type> & input_types        ,
-                   const NOMAD::Point					   & initial_poll_size	,
+                   const NOMAD::Point                      & initial_poll_size  ,
                    const NOMAD::Point                      & lb                 ,
                    const NOMAD::Point                      & ub                 ,
                    const std::set<NOMAD::direction_type>   & direction_types    ,
                    const std::set<NOMAD::direction_type>   & sec_poll_dir_types ,
-                   const NOMAD::Display                    & out = NOMAD::Display()
-                   );
+                   const NOMAD::Display                    & out = NOMAD::Display() );
         
         /// Copy constructor.
         /**
@@ -246,18 +256,19 @@ namespace NOMAD {
          \param ub                 Upper bounds           -- \b IN.
          \param scaling            Scaling                -- \b IN.
          \param fixed_variables    Fixed variables        -- \b IN.
+         \param granularity        Gramularity of var     -- \b IN.
          \param periodic_variables Periodic variables     -- \b IN.
          \param var_groups         Groups of variables    -- \b IN.
          */
-        void reset
-        ( int                                                     n                  ,
-         const std::vector<NOMAD::bb_input_type>               & input_types        ,
-         const NOMAD::Point                                    & lb                 ,
-         const NOMAD::Point                                    & ub                 ,
-         const NOMAD::Point                                    & scaling            ,
-         const NOMAD::Point                                    & fixed_variables    ,
-         const std::vector<bool>                               & periodic_variables ,
-         std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp>	   & var_groups );
+        void reset ( int                                                    n                  ,
+                    const std::vector<NOMAD::bb_input_type>               & input_types        ,
+                    const NOMAD::Point                                    & lb                 ,
+                    const NOMAD::Point                                    & ub                 ,
+                    const NOMAD::Point                                    & scaling            ,
+                    const NOMAD::Point                                    & fixed_variables    ,
+                    const NOMAD::Point                                    & granularity        ,
+                    const std::vector<bool>                               & periodic_variables ,
+                    std::set<NOMAD::Variable_Group*,NOMAD::VG_Comp>       & var_groups );
         
         /// Define a signature to be standard.
         void set_std ( void ) { _std = true; }
@@ -315,7 +326,7 @@ namespace NOMAD {
          (after the treatment; may be \c NULL) -- \b OUT.
          \return A boolean equal to \c true if \c x has been modified.
          */
-        bool treat_periodic_variables ( NOMAD::Point            & x       ,
+        bool treat_periodic_variables ( NOMAD::Point           & x       ,
                                        const NOMAD::Direction *  old_dir ,
                                        NOMAD::Direction       *& new_dir   );
         
@@ -331,6 +342,13 @@ namespace NOMAD {
          */
         const NOMAD::Point & get_ub ( void ) const { return _ub; }
         
+        /// Access to the granularity.
+        /**
+         \return The granularity.
+         */
+        const NOMAD::Point & get_granularity ( void ) const { return _granularity; }
+        
+        
         /// Access to the mesh.
         /**
          \return The orthogonal mesh.
@@ -340,8 +358,8 @@ namespace NOMAD {
         
         /// Update the Mesh (poll and mesh sizes).
         /**
-         \param success    Type of success of the iteration			-- \b IN.
-         \param dir        Direction of the iteration (optional)	-- \b IN.
+         \param success    Type of success of the iteration      -- \b IN.
+         \param dir        Direction of the iteration (optional) -- \b IN.
          */
         void update_mesh ( NOMAD::success_type success, const NOMAD::Direction * dir=NULL )
         {
@@ -357,8 +375,10 @@ namespace NOMAD {
         /**
          /param mesh_indices
          */
-        void reset_mesh ( NOMAD::Point & mesh_indices  ) { _mesh->set_mesh_indices( mesh_indices); }
-        
+        void reset_mesh ( NOMAD::Point & mesh_indices  )
+        {
+            _mesh->set_mesh_indices( mesh_indices);
+        }
         
         /// Access to the scaling.
         /**
@@ -380,6 +400,12 @@ namespace NOMAD {
         int get_nb_fixed_variables ( void ) const;
         
         
+        /// Access to the maximum number points in the poll set.
+        /**
+         \return The maximum number of points in the poll set.
+         */
+        int get_max_size_poll_set( void ) const;
+        
         
         /// Access to the feasible successful direction.
         /**
@@ -443,15 +469,6 @@ namespace NOMAD {
             return _input_types;
         }
         
-        /// Access to the input types.
-        /**
-         \return The input types.
-         */
-        const std::vector<NOMAD::bb_input_type> & get_input_type  ( void ) const
-        {
-            return _input_types;
-        }
-        
         /// Access to the groups of variables.
         /**
          \return The groups of variables.
@@ -461,7 +478,6 @@ namespace NOMAD {
             return _var_groups;
         }
         
-        
         /// Check the compatibility of a point.
         /**
          - Only the number of variables is checked.
@@ -473,26 +489,36 @@ namespace NOMAD {
          */
         bool is_compatible ( const NOMAD::Point & x ) const;
         
+        
         /// Access to the directions.
         /**
-         - The computed directions already include Delta^k_m.
+         - The computed directions already include delta^k.
          \param dirs              List of directions                      -- \b OUT.
          \param poll              Type of poll (primary or secondary)     -- \b IN.
          \param poll_center       Poll center                             -- \b IN.
          */
-        void get_directions ( std::list<NOMAD::Direction>	& dirs			,
-                             NOMAD::poll_type				poll			,
-                             const NOMAD::Point				& poll_center	);
+        void get_directions ( std::list<NOMAD::Direction>    & dirs          ,
+                             NOMAD::poll_type                  poll          ,
+                             const NOMAD::Point              & poll_center   );
         
         
+        /// Access to a direction for a random variable group.
+        /**
+         - The computed direction already include delta^k.
+         \param dir            The direction  -- \b OUT.
+         \param poll_center    Poll center    -- \b IN.
+         */
+        void get_variable_group_direction ( NOMAD::Direction   & dir          ,
+                                           const NOMAD::Point  & poll_center  );
+        
         /// Access to one direction for a given mesh.
         /**
          Used for example in the VNS search.
          \param dir          The direction  -- \b OUT.
          \param mesh_index   Mesh index ell -- \b IN.
          */
-        void get_one_direction ( NOMAD::Direction & dir				,
-                                int                mesh_index		) const;
+        void get_one_direction ( NOMAD::Direction & dir        ,
+                                int                 mesh_index ) ;
         
         
         /// Comparison operator \c < .
@@ -543,7 +569,8 @@ namespace NOMAD {
      \return    The NOMAD::Display object.
      */
     inline const NOMAD::Display & operator << ( const NOMAD::Display   & out ,
-                                               const NOMAD::Signature & s     ) {
+                                               const NOMAD::Signature & s     )
+    {
         s.display ( out );
         return out;
     }
diff --git a/src/Signature_Element.hpp b/src/Signature_Element.hpp
index fa0357d..c6e1a03 100644
--- a/src/Signature_Element.hpp
+++ b/src/Signature_Element.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
diff --git a/src/Single_Obj_Quad_Model_Evaluator.hpp b/src/Single_Obj_Quad_Model_Evaluator.hpp
index 7580717..af4d429 100644
--- a/src/Single_Obj_Quad_Model_Evaluator.hpp
+++ b/src/Single_Obj_Quad_Model_Evaluator.hpp
@@ -1,8 +1,8 @@
 
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3  */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
+/*  Copyright (C) 2001-2015  Mark Abramson        - Brigham Young University, Provo    */
 /*                           Charles Audet        - Ecole Polytechnique, Montreal      */
 /*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
 /*                           John Dennis          - Rice University, Houston           */
@@ -37,7 +37,7 @@
 /**
  \file   Single_Obj_Quad_Model_Evaluator.hpp
  \brief  NOMAD::Evaluator subclass for quadratic model optimization (headers)
- \author Christophe Tribes 
+ \author Christophe Tribes
  \date   2014-06-19
  \see    Single_Obj_Quad_Model_Evaluator.cpp
  */
@@ -48,37 +48,37 @@
 #include "Evaluator.hpp"
 
 namespace NOMAD {
-	
-	/// Single objective NOMAD::Evaluator subclass for quadratic model.
-	class Single_Obj_Quad_Model_Evaluator : public NOMAD::Quad_Model_Evaluator, public NOMAD::Evaluator {     
-				
-	public:
-		
-		/// Constructor.
-		/**
-		 \param p     Parameters -- \b IN.
-		 \param model Model      -- \b IN.
-		 */
-		Single_Obj_Quad_Model_Evaluator ( const NOMAD::Parameters & p     ,
-										 const NOMAD::Quad_Model & model   ) : NOMAD::Quad_Model_Evaluator(p,model),NOMAD::Evaluator(p){_is_model_evaluator=true;}
-		
-		/// Destructor.
-		virtual ~Single_Obj_Quad_Model_Evaluator ( void ){;}
-		
-		
-		///  Evaluate the blackboxes quad model at a given trial point
-		/**
-		 \param x          point to evaluate     -- \b IN/OUT.
-		 \param h_max      h_max for barrier     -- \b IN.
-		 \param count_eval Count eval if true    -- \b IN.
-		 */		
-		virtual bool eval_x ( NOMAD::Eval_Point   & x          ,
-							 const NOMAD::Double & h_max      ,
-							 bool                & count_eval   ) const {return Quad_Model_Evaluator::eval_x(x,h_max,count_eval);}
-		
-				
-		
-	};
+    
+    /// Single objective NOMAD::Evaluator subclass for quadratic model.
+    class Single_Obj_Quad_Model_Evaluator : public NOMAD::Quad_Model_Evaluator, public NOMAD::Evaluator {
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p     Parameters -- \b IN.
+         \param model Model      -- \b IN.
+         */
+        Single_Obj_Quad_Model_Evaluator ( const NOMAD::Parameters & p     ,
+                                         const NOMAD::Quad_Model & model   ) : NOMAD::Quad_Model_Evaluator(p,model),NOMAD::Evaluator(p){_is_model_evaluator=true;}
+        
+        /// Destructor.
+        virtual ~Single_Obj_Quad_Model_Evaluator ( void ){;}
+        
+        
+        ///  Evaluate the blackboxes quad model at a given trial point
+        /**
+         \param x          point to evaluate     -- \b IN/OUT.
+         \param h_max      h_max for barrier     -- \b IN.
+         \param count_eval Count eval if true    -- \b IN.
+         */
+        virtual bool eval_x ( NOMAD::Eval_Point   & x          ,
+                             const NOMAD::Double & h_max      ,
+                             bool                & count_eval   ) const {return Quad_Model_Evaluator::eval_x(x,h_max,count_eval);}
+        
+        
+        
+    };
 }
 
 #endif
diff --git a/src/Slave.cpp b/src/Slave.cpp
index cb73ff5..b9c2799 100644
--- a/src/Slave.cpp
+++ b/src/Slave.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -66,7 +73,8 @@ void NOMAD::Slave::init ( void ) const
 #endif
     
     // Slave::force_quit() will be called if ctrl-c is pressed:
-    if ( !NOMAD::Slave::is_master() ) {
+    if ( !NOMAD::Slave::is_master() )
+    {
         
         NOMAD::Evaluator::force_quit();
         
@@ -84,7 +92,8 @@ void NOMAD::Slave::init ( void ) const
 /*----------------------------------------*/
 int NOMAD::Slave::get_rank ( void )
 {
-    if ( NOMAD::Slave::_rank < 0 ) {
+    if ( NOMAD::Slave::_rank < 0 )
+    {
 #ifdef USE_MPI
         MPI_Comm_rank ( MPI_COMM_WORLD, &NOMAD::Slave::_rank );
 #else
@@ -100,7 +109,8 @@ int NOMAD::Slave::get_rank ( void )
 /*----------------------------------------*/
 int NOMAD::Slave::get_nb_processes ( void )
 {
-    if ( NOMAD::Slave::_np < 0 ) {
+    if ( NOMAD::Slave::_np < 0 )
+    {
 #ifdef USE_MPI
         MPI_Comm_size ( MPI_COMM_WORLD, &NOMAD::Slave::_np );
 #else
@@ -122,7 +132,8 @@ void NOMAD::Slave::run ( void ) const
     NOMAD::Eval_Point * x          = NULL;
     bool                count_eval = false;
     
-    while ( true ) {
+    while ( true )
+    {
         
         // receive signal from master:
         // ---------------------------
@@ -135,7 +146,8 @@ void NOMAD::Slave::run ( void ) const
         
         // EVAL signal:
         // ------------
-        if ( signal == NOMAD::EVAL_SIGNAL ) {
+        if ( signal == NOMAD::EVAL_SIGNAL )
+        {
             
             // receive and evaluate the point:
             x = eval_point ( count_eval );
@@ -161,7 +173,8 @@ void NOMAD::Slave::run ( void ) const
         
         // WAIT signal:
         // ------------
-        // else if ( signal == NOMAD::WAIT_SIGNAL ) {
+        // else if ( signal == NOMAD::WAIT_SIGNAL )
+        //{
         // }
     }
     
@@ -195,7 +208,8 @@ void NOMAD::Slave::init_slaves ( const NOMAD::Display & out )
     NOMAD::Clock   clk;
     
     // 1. launch requests:
-    for ( source = 1 ; source < NOMAD::Slave::_np ; ++source ) {
+    for ( source = 1 ; source < NOMAD::Slave::_np ; ++source )
+    {
         req[source] = new MPI_Request;
         NOMAD::Slave::receive_data ( &signal , 1 , MPI_CHAR , source ,  req[source] );
         if ( display_degree == NOMAD::FULL_DISPLAY )
@@ -302,7 +316,8 @@ void NOMAD::Slave::stop_slaves ( const NOMAD::Display & out )
     MPI_Request ** req = new MPI_Request * [ NOMAD::Slave::_np ];
     
     // 1. launch requests:
-    for ( source = 1 ; source < NOMAD::Slave::_np ; ++source ) {
+    for ( source = 1 ; source < NOMAD::Slave::_np ; ++source )
+    {
         req[source] = new MPI_Request;
         NOMAD::Slave::receive_data ( &signal , 1 , MPI_CHAR , source ,  req[source] );
         if ( display_degree == NOMAD::FULL_DISPLAY )
@@ -311,15 +326,19 @@ void NOMAD::Slave::stop_slaves ( const NOMAD::Display & out )
     
     // 2. test requests (with a maximal delay of MAX_REQ_WAIT):
     int cnt = 0 , flag;
-    while ( nb_stopped < nb_slaves && clk.get_real_time() < NOMAD::MAX_REQ_WAIT ) {
+    while ( nb_stopped < nb_slaves && clk.get_real_time() < NOMAD::MAX_REQ_WAIT )
+    {
         
-        for ( source = 1 ; source < NOMAD::Slave::_np ; ++source ) {
+        for ( source = 1 ; source < NOMAD::Slave::_np ; ++source )
+        {
             
-            if ( req[source] ) {
+            if ( req[source] )
+            {
                 
                 MPI_Test ( req[source] , &flag , &status );
                 
-                if ( flag ) {
+                if ( flag )
+                {
                     
                     MPI_Wait ( req[source] , &status );
                     
@@ -342,8 +361,10 @@ void NOMAD::Slave::stop_slaves ( const NOMAD::Display & out )
     NOMAD::Slave::_stop_ok     = true;
     
     // 3. delete requests:
-    for ( source = 1 ; source < NOMAD::Slave::_np ; ++source ) {
-        if ( req[source] ) {
+    for ( source = 1 ; source < NOMAD::Slave::_np ; ++source )
+    {
+        if ( req[source] )
+        {
             MPI_Cancel ( req[source] );
             delete req[source];
             NOMAD::Slave::_stop_ok = false;
@@ -371,7 +392,8 @@ int NOMAD::Slave::receive_data ( void        * buf      ,
     int tag = ( NOMAD::Slave::is_master() ) ? source : NOMAD::Slave::get_rank();
     
     // immediate receive:
-    if ( req ) {
+    if ( req )
+    {
         if ( source == MPI_ANY_SOURCE )
             throw NOMAD::Exception ( "Slave.cpp" , __LINE__ ,
                                     "Slave::receive_data(): immediate receive with no source" );
@@ -379,7 +401,8 @@ int NOMAD::Slave::receive_data ( void        * buf      ,
     }
     
     // normal receive:
-    else {
+    else
+    {
         MPI_Status status;
         if ( source == MPI_ANY_SOURCE )
             tag = MPI_ANY_TAG;
@@ -459,7 +482,8 @@ NOMAD::Eval_Point * NOMAD::Slave::eval_point ( bool & count_eval ) const
     try {
         eval_ok = _ev->eval_x ( *x , h_max , count_eval );
     }
-    catch ( ... ) {
+    catch ( ... )
+    {
         eval_ok = false;
     }
     
@@ -485,12 +509,15 @@ void NOMAD::Slave::send_eval_result ( const NOMAD::Eval_Point * x          ,
     const NOMAD::Point & bbo  = x->get_bb_outputs();
     
     // bb_outputs (m values):
-    for ( int i = 0 ; i < m ; ++i ) {
-        if ( bbo[i].is_defined() ) {
+    for ( int i = 0 ; i < m ; ++i )
+    {
+        if ( bbo[i].is_defined() )
+        {
             dtab[i  ] = bbo[i].value();
             dtab[i+m] = 1.0;
         }
-        else {
+        else
+        {
             dtab[i  ] = NOMAD::INF;
             dtab[i+m] = -1.0;
         }
diff --git a/src/Slave.hpp b/src/Slave.hpp
index 03ae58a..62a9d6d 100644
--- a/src/Slave.hpp
+++ b/src/Slave.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,213 +41,217 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Slave.hpp
-  \brief  Slave process (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-22
-  \see    Slave.cpp
-*/
+ \file   Slave.hpp
+ \brief  Slave process (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-22
+ \see    Slave.cpp
+ */
 #ifndef __SLAVE__
 #define __SLAVE__
 
 #include "Evaluator.hpp"
 
 namespace NOMAD {
-
-  /// Slave process for the parallel version.
-  class Slave : private NOMAD::Uncopyable {
-
-  private:
-
-    static int  _rank;        /// Process rank.
-    static int  _np;          /// Number of processes.
-
-    static int  _data_sent;   /// Stats on the sent data.
-    static int  _data_rcvd;   /// Stats on the received data.
-
-    static bool _are_running; ///< \c true if the slaves are running.
-    static bool _stop_ok;     ///< \c true if the slaves stopped without error.
-
-    const NOMAD::Parameters * _p;  ///< Parameters (may be NULL).
-    NOMAD::Evaluator        * _ev; ///< Evaluator  (may be NULL).
-
-    /// Initializations.
-    void init ( void ) const;
-
-    /// Force quit.
-    /**
-       - Called by pressing Ctrl-C.
-       - Does nothing: the slave will be stopped by the master.
-       \param signalValue Signal value -- \b IN.
-    */
-    static void force_quit ( int signalValue ) {}
-
-  public:
-
-    /// Constructor.
-    /**
-       \param p  Parameters                -- \b IN.
-       \param ev A pointer to an evaluator -- \b IN.
-    */
-    Slave ( const NOMAD::Parameters & p , NOMAD::Evaluator * ev )
-      { _p=&p; _ev=ev; init(); }
-
-    /// Destructor.
-    virtual ~Slave ( void ) {}
-
-    /// Run the slave code.
-    void run ( void ) const;
-
-    /// Access to the stat \c _data_sent.
-    /**
-       \return The stat \c _data_sent.
-    */
-    static int get_data_sent ( void ) { return Slave::_data_sent; }
-
-    /// Access to the stat \c _data_rcvd.
-    /**
-       \return The stat \c _data_rcvd.
-    */
-    static int get_data_rcvd ( void ) { return Slave::_data_rcvd; }
     
-    /// Access to the process rank.
-    /**
-       \return The process rank.
-    */
-    static int get_rank ( void );
-
-    /// Access to the number of processes.
-    /**
-       \return The number of processes.
-    */
-    static int get_nb_processes ( void );
-
-    /// Check if the slaves are running.
-    /**
-       \return A boolean equal to \c true if the slaves are running.
-    */
-    static bool are_running ( void ) { return _are_running; }
-    
-    /// Check if the current slave is the master.
-    /**
-       \return A boolean equal to \c true if the current slave is the master.
-    */
-    static bool is_master ( void ) { return ( Slave::get_rank() == 0 ); }
-
-    /// Initialize all the slaves.
-    /**
-       \param out Display -- \b IN.
-    */
-    static void init_slaves ( const NOMAD::Display & out );
-
-    /// Stop all the slaves.
-    /**
-       \param out Display -- \b IN.
-    */
-    static void stop_slaves ( const NOMAD::Display & out );
-
+    /// Slave process for the parallel version.
+    class Slave : private NOMAD::Uncopyable {
+        
+    private:
+        
+        static int  _rank;        /// Process rank.
+        static int  _np;          /// Number of processes.
+        
+        static int  _data_sent;   /// Stats on the sent data.
+        static int  _data_rcvd;   /// Stats on the received data.
+        
+        static bool _are_running; ///< \c true if the slaves are running.
+        static bool _stop_ok;     ///< \c true if the slaves stopped without error.
+        
+        const NOMAD::Parameters * _p;  ///< Parameters (may be NULL).
+        NOMAD::Evaluator        * _ev; ///< Evaluator  (may be NULL).
+        
+        /// Initializations.
+        void init ( void ) const;
+        
+        /// Force quit.
+        /**
+         - Called by pressing Ctrl-C.
+         - Does nothing: the slave will be stopped by the master.
+         \param signalValue Signal value -- \b IN.
+         */
+        static void force_quit ( int signalValue ) {}
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p  Parameters                -- \b IN.
+         \param ev A pointer to an evaluator -- \b IN.
+         */
+        Slave ( const NOMAD::Parameters & p , NOMAD::Evaluator * ev )
+        {
+            _p=&p;
+            _ev=ev;
+            init();
+        }
+        
+        /// Destructor.
+        virtual ~Slave ( void ) {}
+        
+        /// Run the slave code.
+        void run ( void ) const;
+        
+        /// Access to the stat \c _data_sent.
+        /**
+         \return The stat \c _data_sent.
+         */
+        static int get_data_sent ( void ) { return Slave::_data_sent; }
+        
+        /// Access to the stat \c _data_rcvd.
+        /**
+         \return The stat \c _data_rcvd.
+         */
+        static int get_data_rcvd ( void ) { return Slave::_data_rcvd; }
+        
+        /// Access to the process rank.
+        /**
+         \return The process rank.
+         */
+        static int get_rank ( void );
+        
+        /// Access to the number of processes.
+        /**
+         \return The number of processes.
+         */
+        static int get_nb_processes ( void );
+        
+        /// Check if the slaves are running.
+        /**
+         \return A boolean equal to \c true if the slaves are running.
+         */
+        static bool are_running ( void ) { return _are_running; }
+        
+        /// Check if the current slave is the master.
+        /**
+         \return A boolean equal to \c true if the current slave is the master.
+         */
+        static bool is_master ( void ) { return ( Slave::get_rank() == 0 ); }
+        
+        /// Initialize all the slaves.
+        /**
+         \param out Display -- \b IN.
+         */
+        static void init_slaves ( const NOMAD::Display & out );
+        
+        /// Stop all the slaves.
+        /**
+         \param out Display -- \b IN.
+         */
+        static void stop_slaves ( const NOMAD::Display & out );
+        
 #ifdef USE_MPI
-
-  private:
-    
-    /// Receive and evaluate a point from the master.
-    /**
-       \param count_eval Flag indicating if the evaluation has to be counted
-                         or not -- \b OUT.
-       \return A pointer to the point.
-    */
-    NOMAD::Eval_Point * eval_point ( bool & count_eval ) const;
-
-    /// Send an evaluation result to the master.
-    /**
-       \param x          The evaluation point -- \b IN.
-       \param count_eval Flag indicating if the evaluation has to be counted
-                         or not -- \b IN.
-    */
-    void send_eval_result ( const NOMAD::Eval_Point * x , bool count_eval ) const;
-    
-    /// Send data.
-    /**
-       \param buf        Data to send  -- \b IN.
-       \param count      Data quantity -- \b IN.
-       \param datatype   Data type     -- \b IN.
-       \param dest       Destination   -- \b IN.
-       \param ready_send Flag equal to \c true if \c Rsend is used instead of \c Send
-                                       -- \b IN.
-    */
-    static void send_data ( const void  * buf        ,
-			    int           count      ,
-			    MPI_Datatype  datatype   ,
-			    int           dest       ,
-			    bool          ready_send   );
-    
-    /// Receive data.
-    /**
-       \param buf      Data to receive                           -- \b OUT.
-       \param count    Data quantity                             -- \b IN.
-       \param datatype Data type                                 -- \b IN.
-       \param source   Source (may be \c MPI_ANY_SOURCE)         -- \b IN.
-       \param req      Pointer to a MPI request (may be \c NULL) -- \b IN/OUT.
-       \return         The source.
-    */
-    static int receive_data ( void        * buf      ,
-			      int           count    ,
-			      MPI_Datatype  datatype ,
-			      int           source   ,
-			      MPI_Request * req        );
-
-    /// Wait for a MPI request.
-    /**
-       \param req The request -- \b IN/OUT.
-    */
-    static void wait_request ( MPI_Request & req );
-    
-  public:
-
-    /// Send an evaluation point to a slave.
-    /**
-       \param x          A pointer to the evaluation point to send -- \b IN.
-       \param slave_rank Destination                               -- \b IN.
-       \param h_max      Maximal feasibility value \c h_max        -- \b IN.
-    */
-    void send_eval_point ( const NOMAD::Eval_Point * x          ,
-			   int                       slave_rank ,
-			   const NOMAD::Double     & h_max        ) const;
-    
-    /// Receive an evaluation result from a slave.
-    /**
-       \param slave_rank Source                                      -- \b IN.
-       \param x          A pointer to the evaluation point received  -- \b OUT.
-       \param eval_ok    Flag indicating if the evaluation succeeded -- \b OUT.
-       \param count_eval Flag indicating if the evaluation has to be counted
-                         or not -- \b OUT.
-    */
-    void receive_eval_result ( int                 slave_rank ,
-			       NOMAD::Eval_Point * x          ,
-			       bool              & eval_ok    ,
-			       bool              & count_eval    ) const;
-    
-    /// Receive a signal from a slave.
-    /**
-       \param signal The signal -- \b OUT.
-       \return The source.
-    */
-    static int receive_signal ( char & signal )
-    {
-      return Slave::receive_data ( &signal , 1 , MPI_CHAR , MPI_ANY_SOURCE , NULL );
-    }
-
-    /// Send a signal to a slave.
-    /**
-       \param signal     The signal  -- \b IN.
-       \param slave_rank Destination -- \b IN.
-    */
-    static void send_signal ( char signal , int slave_rank )
-    {
-      Slave::send_data ( &signal , 1 , MPI_CHAR , slave_rank , true );
-    }
-
+        
+    private:
+        
+        /// Receive and evaluate a point from the master.
+        /**
+         \param count_eval Flag indicating if the evaluation has to be counted
+         or not -- \b OUT.
+         \return A pointer to the point.
+         */
+        NOMAD::Eval_Point * eval_point ( bool & count_eval ) const;
+        
+        /// Send an evaluation result to the master.
+        /**
+         \param x          The evaluation point -- \b IN.
+         \param count_eval Flag indicating if the evaluation has to be counted
+         or not -- \b IN.
+         */
+        void send_eval_result ( const NOMAD::Eval_Point * x , bool count_eval ) const;
+        
+        /// Send data.
+        /**
+         \param buf        Data to send  -- \b IN.
+         \param count      Data quantity -- \b IN.
+         \param datatype   Data type     -- \b IN.
+         \param dest       Destination   -- \b IN.
+         \param ready_send Flag equal to \c true if \c Rsend is used instead of \c Send
+         -- \b IN.
+         */
+        static void send_data ( const void  * buf        ,
+                               int           count      ,
+                               MPI_Datatype  datatype   ,
+                               int           dest       ,
+                               bool          ready_send   );
+        
+        /// Receive data.
+        /**
+         \param buf      Data to receive                           -- \b OUT.
+         \param count    Data quantity                             -- \b IN.
+         \param datatype Data type                                 -- \b IN.
+         \param source   Source (may be \c MPI_ANY_SOURCE)         -- \b IN.
+         \param req      Pointer to a MPI request (may be \c NULL) -- \b IN/OUT.
+         \return         The source.
+         */
+        static int receive_data ( void        * buf      ,
+                                 int           count    ,
+                                 MPI_Datatype  datatype ,
+                                 int           source   ,
+                                 MPI_Request * req        );
+        
+        /// Wait for a MPI request.
+        /**
+         \param req The request -- \b IN/OUT.
+         */
+        static void wait_request ( MPI_Request & req );
+        
+    public:
+        
+        /// Send an evaluation point to a slave.
+        /**
+         \param x          A pointer to the evaluation point to send -- \b IN.
+         \param slave_rank Destination                               -- \b IN.
+         \param h_max      Maximal feasibility value \c h_max        -- \b IN.
+         */
+        void send_eval_point ( const NOMAD::Eval_Point * x          ,
+                              int                       slave_rank ,
+                              const NOMAD::Double     & h_max        ) const;
+        
+        /// Receive an evaluation result from a slave.
+        /**
+         \param slave_rank Source                                      -- \b IN.
+         \param x          A pointer to the evaluation point received  -- \b OUT.
+         \param eval_ok    Flag indicating if the evaluation succeeded -- \b OUT.
+         \param count_eval Flag indicating if the evaluation has to be counted
+         or not -- \b OUT.
+         */
+        void receive_eval_result ( int                 slave_rank ,
+                                  NOMAD::Eval_Point * x          ,
+                                  bool              & eval_ok    ,
+                                  bool              & count_eval    ) const;
+        
+        /// Receive a signal from a slave.
+        /**
+         \param signal The signal -- \b OUT.
+         \return The source.
+         */
+        static int receive_signal ( char & signal )
+        {
+            return Slave::receive_data ( &signal , 1 , MPI_CHAR , MPI_ANY_SOURCE , NULL );
+        }
+        
+        /// Send a signal to a slave.
+        /**
+         \param signal     The signal  -- \b IN.
+         \param slave_rank Destination -- \b IN.
+         */
+        static void send_signal ( char signal , int slave_rank )
+        {
+            Slave::send_data ( &signal , 1 , MPI_CHAR , slave_rank , true );
+        }
+        
 #endif
-  };
+    };
 }
 #endif
diff --git a/src/Speculative_Search.cpp b/src/Speculative_Search.cpp
index 468e97d..bf9a6f8 100644
--- a/src/Speculative_Search.cpp
+++ b/src/Speculative_Search.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -76,14 +83,14 @@ void NOMAD::Speculative_Search::search ( NOMAD::Mads              & mads
     
     const NOMAD::Display    & out = _p.out();
     NOMAD::dd_type display_degree = out.get_search_dd();
-    if ( display_degree == NOMAD::FULL_DISPLAY ) {
+    if ( display_degree == NOMAD::FULL_DISPLAY )
+    {
         std::ostringstream oss;
         oss << NOMAD::SPEC_SEARCH;
         out << std::endl << NOMAD::open_block ( oss.str() ) << std::endl;
     }
     
-    //int                       lkm1;  // l_{k-1}
-    // int                       lk;    // l_k
+    
     int                       n;
     NOMAD::Signature        * signature;
     NOMAD::Point              delta_m_k;
@@ -104,7 +111,8 @@ void NOMAD::Speculative_Search::search ( NOMAD::Mads              & mads
         {
             
             const NOMAD::Direction * dir = x[i]->get_direction();
-            if ( dir && ( dir->is_mads() || dir->get_type()==NOMAD::MODEL_SEARCH_DIR ) ) {
+            if ( dir && ( dir->is_mads() || dir->get_type()==NOMAD::MODEL_SEARCH_DIR ) )
+            {
                 
                 // get the x_k's signature:
                 signature = x[i]->get_signature();
@@ -144,6 +152,7 @@ void NOMAD::Speculative_Search::search ( NOMAD::Mads              & mads
                         factor[k]=0;
                     
                 }
+                
                 NOMAD::Point mesh_indices_k( x[i]->get_signature()->get_mesh()->get_mesh_indices() );
                 signature->get_mesh()->update( NOMAD::FULL_SUCCESS, mesh_indices_k , dir );
                 
@@ -155,10 +164,10 @@ void NOMAD::Speculative_Search::search ( NOMAD::Mads              & mads
                 sk->set ( n , _p.get_bb_nb_outputs() );
                 sk->set_signature  ( signature );
                 sk->set_direction  ( &new_dir );
-                
                 sk->Point::operator = ( xkm1 + new_dir );
                 
-                if ( display_degree == NOMAD::FULL_DISPLAY ) {
+                if ( display_degree == NOMAD::FULL_DISPLAY )
+                {
                     out << "trial point #" << sk->get_tag()
                     << ": ( ";
                     sk->Point::display ( out ," " , 2 , NOMAD::Point::get_display_limit() );
@@ -179,7 +188,7 @@ void NOMAD::Speculative_Search::search ( NOMAD::Mads              & mads
     
     nb_search_pts = ev_control.get_nb_eval_points();
     
-    // eval_list_of_points:s
+    // eval_list_of_points:
     // --------------------
     new_feas_inc = new_infeas_inc = NULL;
     
@@ -193,7 +202,8 @@ void NOMAD::Speculative_Search::search ( NOMAD::Mads              & mads
                                     new_infeas_inc          ,
                                     success                   );
     
-    if ( display_degree == NOMAD::FULL_DISPLAY ) {
+    if ( display_degree == NOMAD::FULL_DISPLAY ) 
+    {
         std::ostringstream oss;
         oss << "end of speculative search (" << success << ")";
         out << NOMAD::close_block ( oss.str() ) << std::endl;
diff --git a/src/Speculative_Search.hpp b/src/Speculative_Search.hpp
index e0db82d..af9946e 100644
--- a/src/Speculative_Search.hpp
+++ b/src/Speculative_Search.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Speculative_Search.hpp
-  \brief  Speculative search (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-12
-  \see    Speculative.cpp
-*/
+ \file   Speculative_Search.hpp
+ \brief  Speculative search (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-12
+ \see    Speculative.cpp
+ */
 #ifndef __SPECULATIVE_SEARCH__
 #define __SPECULATIVE_SEARCH__
 
@@ -47,57 +54,57 @@
 #include "Mads.hpp"
 
 namespace NOMAD {
-
-  /// Speculative search.
-  /**
-     The speculative search consists in looking further away along
-     the successful direction after an improvement.
-  */
-  class Speculative_Search : public NOMAD::Search , private NOMAD::Uncopyable {
-
-  public:
-
-    /// Constructor.
-    /**
-       \param p Parameters -- \b IN.
-    */
-    Speculative_Search ( NOMAD::Parameters & p )
-      : NOMAD::Search ( p , NOMAD::SPEC_SEARCH ) {}
     
-    /// Destructor.
-    virtual ~Speculative_Search ( void ) {}
-
-    /// The speculative search.
+    /// Speculative search.
     /**
-       - x_k = x_{k-1} + Delta^m_{k-1} d \n
+     The speculative search consists in looking further away along
+     the successful direction after an improvement.
+     */
+    class Speculative_Search : public NOMAD::Search , private NOMAD::Uncopyable {
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p Parameters -- \b IN.
+         */
+        Speculative_Search ( NOMAD::Parameters & p )
+        : NOMAD::Search ( p , NOMAD::SPEC_SEARCH ) {}
+        
+        /// Destructor.
+        virtual ~Speculative_Search ( void ) {}
+        
+        /// The speculative search.
+        /**
+         - x_k = x_{k-1} + Delta^m_{k-1} d \n
          s_k = x_{k-1} +        Delta^m_{k-1} d  if ell_{k-1} > 0 \n
-                    or    tau * Delta^m_{k-1} d  otherwise.
-       - The directions that we use already contain Delta^m:
+         or    tau * Delta^m_{k-1} d  otherwise.
+         - The directions that we use already contain Delta^m:
          direction = Delta^m_{k-1} d
-       - The following test
+         - The following test
          \code
-          if ( new_feas_inc || new_infeas_inc )
+         if ( new_feas_inc || new_infeas_inc )
          \endcode
-	 is equal to \c true and has already been made in \c Mads.cpp.
-
-      \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
-      \param nb_search_pts  Number of generated search points       -- \b OUT.
-      \param stop           Stop flag                               -- \b IN/OUT.
-      \param stop_reason    Stop reason                             -- \b OUT.
-      \param success        Type of success                         -- \b OUT.
-      \param count_search   Count or not the search                 -- \b OUT.
-      \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
-      \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
-    */
-    virtual void search ( NOMAD::Mads              & mads           ,
-			  int                      & nb_search_pts  ,
-			  bool                     & stop           ,
-			  NOMAD::stop_type         & stop_reason    ,
-			  NOMAD::success_type      & success        ,
-			  bool                     & count_search   ,
-			  const NOMAD::Eval_Point *& new_feas_inc   ,
-			  const NOMAD::Eval_Point *& new_infeas_inc   );
-  };
+         is equal to \c true and has already been made in \c Mads.cpp.
+         
+         \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
+         \param nb_search_pts  Number of generated search points       -- \b OUT.
+         \param stop           Stop flag                               -- \b IN/OUT.
+         \param stop_reason    Stop reason                             -- \b OUT.
+         \param success        Type of success                         -- \b OUT.
+         \param count_search   Count or not the search                 -- \b OUT.
+         \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
+         \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
+         */
+        virtual void search ( NOMAD::Mads              & mads           ,
+                             int                      & nb_search_pts  ,
+                             bool                     & stop           ,
+                             NOMAD::stop_type         & stop_reason    ,
+                             NOMAD::success_type      & success        ,
+                             bool                     & count_search   ,
+                             const NOMAD::Eval_Point *& new_feas_inc   ,
+                             const NOMAD::Eval_Point *& new_infeas_inc   );
+    };
 }
 
 #endif
diff --git a/src/Stats.cpp b/src/Stats.cpp
index 15479e0..1984376 100644
--- a/src/Stats.cpp
+++ b/src/Stats.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Stats.cpp
-  \brief  Algorithm stats (implementation)
-  \author Sebastien Le Digabel
-  \date   2010-04-22
-  \see    Stats.hpp
-*/
+ \file   Stats.cpp
+ \brief  Algorithm stats (implementation)
+ \author Sebastien Le Digabel
+ \date   2010-04-22
+ \see    Stats.hpp
+ */
 #include "Stats.hpp"
 
 /*---------------------------------------------------------*/
@@ -47,56 +54,56 @@
 /*---------------------------------------------------------*/
 NOMAD::Stats & NOMAD::Stats::operator = ( const NOMAD::Stats & s )
 {
-  _eval              = s._eval;
-  _sim_bb_eval       = s._sim_bb_eval;
-  _sgte_eval         = s._sgte_eval;
-  _bb_eval           = s._bb_eval;
-  _block_eval         = s._block_eval;	
-  _failed_eval       = s._failed_eval;
-  _cache_hits        = s._cache_hits;
-  _interrupted_eval  = s._interrupted_eval;
-  _iterations        = s._iterations;
-  _nb_poll_searches  = s._nb_poll_searches;
-  _poll_pts          = s._poll_pts;
-  _poll_success      = s._poll_success;
-  _nb_success_dyn_dir= s._nb_success_dyn_dir;
-  _nb_ext_polls      = s._nb_ext_polls;
-  _ext_poll_pts      = s._ext_poll_pts;
-  _ext_poll_succ     = s._ext_poll_succ;
-  _ext_poll_bb_eval  = s._ext_poll_bb_eval;
-  _ext_poll_descents = s._ext_poll_descents;
-  _nb_spec_searches  = s._nb_spec_searches;
-  _spec_pts          = s._spec_pts;
-  _spec_success      = s._spec_success;
-  _nb_LH_searches    = s._nb_LH_searches;
-  _LH_pts            = s._LH_pts;
-  _LH_success        = s._LH_success;
-  _nb_cache_searches = s._nb_cache_searches;
-  _CS_pts            = s._CS_pts;
-  _CS_success        = s._CS_success;
-  _model_stats       = s._model_stats;
-  _nb_VNS_searches   = s._nb_VNS_searches;
-  _VNS_pts           = s._VNS_pts;
-  _VNS_success       = s._VNS_success;
-  _VNS_bb_eval       = s._VNS_bb_eval;
-  _VNS_sgte_eval     = s._VNS_sgte_eval;
-  _nb_usr_searches   = s._nb_usr_searches;
-  _usr_srch_pts      = s._usr_srch_pts;
-  _usr_srch_success  = s._usr_srch_success;
-  _p1_iterations     = s._p1_iterations;
-  _p1_bbe            = s._p1_bbe;
-  _mads_runs         = s._mads_runs;
-  _clock             = s._clock;
-  _stat_sum          = s._stat_sum;
-  _stat_avg          = s._stat_avg;
-  _cnt_avg           = s._cnt_avg;
-
+    _eval              = s._eval;
+    _sim_bb_eval       = s._sim_bb_eval;
+    _sgte_eval         = s._sgte_eval;
+    _bb_eval           = s._bb_eval;
+    _block_eval         = s._block_eval;
+    _failed_eval       = s._failed_eval;
+    _cache_hits        = s._cache_hits;
+    _interrupted_eval  = s._interrupted_eval;
+    _iterations        = s._iterations;
+    _nb_poll_searches  = s._nb_poll_searches;
+    _poll_pts          = s._poll_pts;
+    _poll_success      = s._poll_success;
+    _nb_success_dyn_dir= s._nb_success_dyn_dir;
+    _nb_ext_polls      = s._nb_ext_polls;
+    _ext_poll_pts      = s._ext_poll_pts;
+    _ext_poll_succ     = s._ext_poll_succ;
+    _ext_poll_bb_eval  = s._ext_poll_bb_eval;
+    _ext_poll_descents = s._ext_poll_descents;
+    _nb_spec_searches  = s._nb_spec_searches;
+    _spec_pts          = s._spec_pts;
+    _spec_success      = s._spec_success;
+    _nb_LH_searches    = s._nb_LH_searches;
+    _LH_pts            = s._LH_pts;
+    _LH_success        = s._LH_success;
+    _nb_cache_searches = s._nb_cache_searches;
+    _CS_pts            = s._CS_pts;
+    _CS_success        = s._CS_success;
+    _model_stats       = s._model_stats;
+    _nb_VNS_searches   = s._nb_VNS_searches;
+    _VNS_pts           = s._VNS_pts;
+    _VNS_success       = s._VNS_success;
+    _VNS_bb_eval       = s._VNS_bb_eval;
+    _VNS_sgte_eval     = s._VNS_sgte_eval;
+    _nb_usr_searches   = s._nb_usr_searches;
+    _usr_srch_pts      = s._usr_srch_pts;
+    _usr_srch_success  = s._usr_srch_success;
+    _p1_iterations     = s._p1_iterations;
+    _p1_bbe            = s._p1_bbe;
+    _mads_runs         = s._mads_runs;
+    _clock             = s._clock;
+    _stat_sum          = s._stat_sum;
+    _stat_avg          = s._stat_avg;
+    _cnt_avg           = s._cnt_avg;
+    
 #ifdef USE_MPI
-  _asynchronous_success = s._asynchronous_success;
-  _MPI_data_size        = s._MPI_data_size;
+    _asynchronous_success = s._asynchronous_success;
+    _MPI_data_size        = s._MPI_data_size;
 #endif
-  
-  return *this;
+    
+    return *this;
 }
 
 /*---------------------------------------------------------*/
@@ -104,11 +111,11 @@ NOMAD::Stats & NOMAD::Stats::operator = ( const NOMAD::Stats & s )
 /*---------------------------------------------------------*/
 void NOMAD::Stats::reset ( void )
 {
-  _eval                =
+    _eval                =
     _sim_bb_eval       =
     _sgte_eval         =
     _bb_eval           =
-	_block_eval         =
+    _block_eval         =
     _failed_eval       =
     _cache_hits        =
     _interrupted_eval  =
@@ -140,21 +147,21 @@ void NOMAD::Stats::reset ( void )
     _usr_srch_success  =
     _p1_iterations     =
     _p1_bbe            =
-	_nb_success_dyn_dir =
+    _nb_success_dyn_dir =
     _mads_runs         = 0;
-
-  _model_stats.reset();
-
-  _stat_sum.clear();
-  _stat_avg.clear();
-  _cnt_avg = 0;
-
+    
+    _model_stats.reset();
+    
+    _stat_sum.clear();
+    _stat_avg.clear();
+    _cnt_avg = 0;
+    
 #ifdef USE_MPI
-  _asynchronous_success = 0;
-  _MPI_data_size        = -1;
+    _asynchronous_success = 0;
+    _MPI_data_size        = -1;
 #endif
-
-  _clock.reset();
+    
+    _clock.reset();
 }
 
 /*---------------------------------------------------------*/
@@ -165,58 +172,59 @@ void NOMAD::Stats::reset ( void )
 /*---------------------------------------------------------*/
 void NOMAD::Stats::update ( const NOMAD::Stats & s , bool for_search )
 {
-  _eval              += s._eval;
-  _sim_bb_eval       += s._sim_bb_eval;
-  _sgte_eval         += s._sgte_eval;
-  _bb_eval           += s._bb_eval;
-  _block_eval        += s._block_eval;	
-  _failed_eval       += s._failed_eval;
-  _cache_hits        += s._cache_hits;
-  _interrupted_eval  += s._interrupted_eval;
-  _nb_ext_polls      += s._nb_ext_polls;
-  _ext_poll_pts      += s._ext_poll_pts;
-  _ext_poll_succ     += s._ext_poll_succ;
-  _ext_poll_bb_eval  += s._ext_poll_bb_eval;
-  _ext_poll_descents += s._ext_poll_descents;
-  _nb_LH_searches    += s._nb_LH_searches;
-  _LH_pts            += s._LH_pts;
-  _LH_success        += s._LH_success;
-  _nb_cache_searches += s._nb_cache_searches;
-  _CS_pts            += s._CS_pts;
-  _CS_success        += s._CS_success;
-  _nb_usr_searches   += s._nb_usr_searches;
-  _usr_srch_pts      += s._usr_srch_pts;
-  _usr_srch_success  += s._usr_srch_success;
-  _nb_success_dyn_dir += s._nb_success_dyn_dir;
-
+    _eval              += s._eval;
+    _sim_bb_eval       += s._sim_bb_eval;
+    _sgte_eval         += s._sgte_eval;
+    _bb_eval           += s._bb_eval;
+    _block_eval        += s._block_eval;
+    _failed_eval       += s._failed_eval;
+    _cache_hits        += s._cache_hits;
+    _interrupted_eval  += s._interrupted_eval;
+    _nb_ext_polls      += s._nb_ext_polls;
+    _ext_poll_pts      += s._ext_poll_pts;
+    _ext_poll_succ     += s._ext_poll_succ;
+    _ext_poll_bb_eval  += s._ext_poll_bb_eval;
+    _ext_poll_descents += s._ext_poll_descents;
+    _nb_LH_searches    += s._nb_LH_searches;
+    _LH_pts            += s._LH_pts;
+    _LH_success        += s._LH_success;
+    _nb_cache_searches += s._nb_cache_searches;
+    _CS_pts            += s._CS_pts;
+    _CS_success        += s._CS_success;
+    _nb_usr_searches   += s._nb_usr_searches;
+    _usr_srch_pts      += s._usr_srch_pts;
+    _usr_srch_success  += s._usr_srch_success;
+    _nb_success_dyn_dir += s._nb_success_dyn_dir;
+    
 #ifdef USE_MPI
-  _asynchronous_success += s._asynchronous_success;
-  _MPI_data_size         = s._MPI_data_size;
+    _asynchronous_success += s._asynchronous_success;
+    _MPI_data_size         = s._MPI_data_size;
 #endif
-
-  // _stat_sum and _stat_avg:
-  int tmp = _cnt_avg + s._cnt_avg;
-  update_stat_sum ( s._stat_sum );
-  update_stat_avg ( s._stat_avg );
-  _cnt_avg = tmp;
-
-  // specific updates when for_search==false:
-  if ( !for_search ) {
-    _nb_poll_searches  += s._nb_poll_searches;
-    _poll_pts          += s._poll_pts;
-    _poll_success      += s._poll_success;
-    _nb_spec_searches  += s._nb_spec_searches;
-    _spec_pts          += s._spec_pts;
-    _spec_success      += s._spec_success;
-    _nb_VNS_searches   += s._nb_VNS_searches;
-    _VNS_pts           += s._VNS_pts;
-    _VNS_success       += s._VNS_success;
-    _VNS_bb_eval       += s._VNS_bb_eval;
-    _VNS_sgte_eval     += s._VNS_sgte_eval;
-    _p1_iterations     += s._p1_iterations;
-    _p1_bbe            += s._p1_bbe;
-    _iterations        += s._iterations;
-  }
+    
+    // _stat_sum and _stat_avg:
+    int tmp = _cnt_avg + s._cnt_avg;
+    update_stat_sum ( s._stat_sum );
+    update_stat_avg ( s._stat_avg );
+    _cnt_avg = tmp;
+    
+    // specific updates when for_search==false:
+    if ( !for_search )
+    {
+        _nb_poll_searches  += s._nb_poll_searches;
+        _poll_pts          += s._poll_pts;
+        _poll_success      += s._poll_success;
+        _nb_spec_searches  += s._nb_spec_searches;
+        _spec_pts          += s._spec_pts;
+        _spec_success      += s._spec_success;
+        _nb_VNS_searches   += s._nb_VNS_searches;
+        _VNS_pts           += s._VNS_pts;
+        _VNS_success       += s._VNS_success;
+        _VNS_bb_eval       += s._VNS_bb_eval;
+        _VNS_sgte_eval     += s._VNS_sgte_eval;
+        _p1_iterations     += s._p1_iterations;
+        _p1_bbe            += s._p1_bbe;
+        _iterations        += s._iterations;
+    }
 }
 
 /*---------------------------------------------------------*/
@@ -224,12 +232,12 @@ void NOMAD::Stats::update ( const NOMAD::Stats & s , bool for_search )
 /*---------------------------------------------------------*/
 void NOMAD::Stats::update_stat_sum ( const NOMAD::Double & d )
 {
-  if ( !d.is_defined() )
-    return;
-  if ( _stat_sum.is_defined() )
-    _stat_sum += d;
-  else
-    _stat_sum  = d;
+    if ( !d.is_defined() )
+        return;
+    if ( _stat_sum.is_defined() )
+        _stat_sum += d;
+    else
+        _stat_sum  = d;
 }
 
 /*---------------------------------------------------------*/
@@ -237,13 +245,13 @@ void NOMAD::Stats::update_stat_sum ( const NOMAD::Double & d )
 /*---------------------------------------------------------*/
 void NOMAD::Stats::update_stat_avg ( const NOMAD::Double & d )
 {
-  if ( !d.is_defined() )
-    return;
-  if ( _stat_avg.is_defined() )
-    _stat_avg += d;
-  else
-    _stat_avg  = d;
-  ++_cnt_avg;
+    if ( !d.is_defined() )
+        return;
+    if ( _stat_avg.is_defined() )
+        _stat_avg += d;
+    else
+        _stat_avg  = d;
+    ++_cnt_avg;
 }
 
 /*---------------------------------------------------------*/
@@ -251,115 +259,118 @@ void NOMAD::Stats::update_stat_avg ( const NOMAD::Double & d )
 /*---------------------------------------------------------*/
 void NOMAD::Stats::display ( const NOMAD::Display & out ) const
 {
-  out << "MADS iterations                 : " << _iterations;
-  if ( _p1_iterations > 0 )
-    out << " (phase one: " << _p1_iterations << ")";
-  out << std::endl;
-  if ( _sgte_cost > 0 )
-    out << "bb evaluations (with sgte cost) : " << get_bb_eval();
-  else
-    out << "blackbox evaluations            : " << _bb_eval;
-  out << std::endl;
-  if ( _block_eval > 0)
-	  out << "Block of evaluations            : " << _block_eval;
-  if ( _p1_bbe > 0 )
-    out << " (phase one: " << _p1_bbe << ")";
-  out << std::endl;
-  if ( _sim_bb_eval != _bb_eval )
-    out << "simulated blackbox evaluations  : " << _sim_bb_eval         << std::endl;
-  out << "evaluations                     : "   << _eval                << std::endl;
-  if ( _sgte_cost > 0 || _sgte_eval > 0 )
-    out << "surrogate evaluations           : " << _sgte_eval           << std::endl;
-  out << "failed evaluations              : "   << _failed_eval;
-  if ( _failed_eval > 0 && _failed_eval==_bb_eval+_sgte_eval )
-    out << " (all evaluations failed)";
-  out << std::endl;
-
-  out << "interrupted sequences of eval.  : "   << _interrupted_eval    << std::endl;
-
-  if ( _mads_runs > 1 )
-    out << "number of MADS runs             : " << _mads_runs           << std::endl;
-
-  out << "cache hits                      : "   << _cache_hits          << std::endl
-
-      << "number of poll searches         : "   << _nb_poll_searches    << std::endl;
-  if ( _nb_poll_searches > 0 )
-    out << "poll successes                  : " << _poll_success        << std::endl
-	  << "poll points                     : " << _poll_pts            << std::endl;
-	  
-  out << "dyn. direction successes        : " << _nb_success_dyn_dir <<  std::endl;
-	  
-  if ( _nb_ext_polls > 0 )
-    out << "number of extended polls        : " << _nb_ext_polls        << std::endl
-	<< "number of ext. poll descents    : " << _ext_poll_descents   << std::endl
-	<< "number of ext. poll successes   : " << _ext_poll_succ       << std::endl
-	<< "number of ext. poll points      : " << _ext_poll_pts        << std::endl
-	<< "number of ext. poll bb eval     : " << _ext_poll_bb_eval    << std::endl;  
-  out << "number of speculative searches  : "   << _nb_spec_searches    << std::endl;
-  if ( _nb_spec_searches > 0 )
-    out << "speculative search successes    : " << _spec_success        << std::endl
-	<< "speculative search points       : " << _spec_pts            << std::endl;
-  out << "number of user searches         : "   << _nb_usr_searches     << std::endl;
-  if ( _nb_usr_searches > 0 )
-    out << "user search successes           : " << _usr_srch_success    << std::endl
-	<< "user search points              : " << _usr_srch_pts        << std::endl;
-  out << "number of LH searches           : "   << _nb_LH_searches      << std::endl;
-  if ( _nb_LH_searches > 0 )
-    out << "LH search successes             : " << _LH_success          << std::endl
-	<< "LH search points                : " << _LH_pts              << std::endl;
-  out << "number of cache searches        : "   << _nb_cache_searches   << std::endl;
-  if ( _nb_cache_searches > 0 )
-    out << "cache search successes          : " << _CS_success          << std::endl
-	<< "cache search points             : " << _CS_pts              << std::endl;	
-  out << "number of VNS searches          : "   << _nb_VNS_searches     << std::endl;
-  if ( _nb_VNS_searches > 0 ) {
-    out << "VNS search successes            : " << _VNS_success         << std::endl
-	<< "VNS search points               : " << _VNS_pts             << std::endl
-	<< "VNS blackbox evaluations        : " << _VNS_bb_eval         << std::endl;
-    if ( _VNS_sgte_eval > 0 )
-      out << "VNS surrogate evaluations       : " << _VNS_sgte_eval     << std::endl;
-  }
-  if ( _model_stats.get_nb_models() > 0 ) {
+    out << "MADS iterations                 : " << _iterations;
+    if ( _p1_iterations > 0 )
+        out << " (phase one: " << _p1_iterations << ")";
+    out << std::endl;
+    if ( _sgte_cost > 0 )
+        out << "bb evaluations (with sgte cost) : " << get_bb_eval();
+    else
+        out << "blackbox evaluations            : " << _bb_eval;
+    out << std::endl;
+    if ( _block_eval > 0)
+        out << "Block of evaluations            : " << _block_eval;
+    if ( _p1_bbe > 0 )
+        out << " (phase one: " << _p1_bbe << ")";
+    out << std::endl;
+    if ( _sim_bb_eval != _bb_eval )
+        out << "simulated blackbox evaluations  : " << _sim_bb_eval         << std::endl;
+    out << "evaluations                     : "   << _eval                << std::endl;
+    if ( _sgte_cost > 0 || _sgte_eval > 0 )
+        out << "surrogate evaluations           : " << _sgte_eval           << std::endl;
+    out << "failed evaluations              : "   << _failed_eval;
+    if ( _failed_eval > 0 && _failed_eval==_bb_eval+_sgte_eval )
+        out << " (all evaluations failed)";
+    out << std::endl;
+    
+    out << "interrupted sequences of eval.  : "   << _interrupted_eval    << std::endl;
+    
+    if ( _mads_runs > 1 )
+        out << "number of MADS runs             : " << _mads_runs           << std::endl;
+    
+    out << "cache hits                      : "   << _cache_hits          << std::endl
+    
+    << "number of poll searches         : "   << _nb_poll_searches    << std::endl;
+    if ( _nb_poll_searches > 0 )
+        out << "poll successes                  : " << _poll_success        << std::endl
+        << "poll points                     : " << _poll_pts            << std::endl;
+    
+    out << "dyn. direction successes        : " << _nb_success_dyn_dir <<  std::endl;
+    
+    if ( _nb_ext_polls > 0 )
+        out << "number of extended polls        : " << _nb_ext_polls        << std::endl
+        << "number of ext. poll descents    : " << _ext_poll_descents   << std::endl
+        << "number of ext. poll successes   : " << _ext_poll_succ       << std::endl
+        << "number of ext. poll points      : " << _ext_poll_pts        << std::endl
+        << "number of ext. poll bb eval     : " << _ext_poll_bb_eval    << std::endl;
+    out << "number of speculative searches  : "   << _nb_spec_searches    << std::endl;
+    if ( _nb_spec_searches > 0 )
+        out << "speculative search successes    : " << _spec_success        << std::endl
+        << "speculative search points       : " << _spec_pts            << std::endl;
+    out << "number of user searches         : "   << _nb_usr_searches     << std::endl;
+    if ( _nb_usr_searches > 0 )
+        out << "user search successes           : " << _usr_srch_success    << std::endl
+        << "user search points              : " << _usr_srch_pts        << std::endl;
+    out << "number of LH searches           : "   << _nb_LH_searches      << std::endl;
+    if ( _nb_LH_searches > 0 )
+        out << "LH search successes             : " << _LH_success          << std::endl
+        << "LH search points                : " << _LH_pts              << std::endl;
+    out << "number of cache searches        : "   << _nb_cache_searches   << std::endl;
+    if ( _nb_cache_searches > 0 )
+        out << "cache search successes          : " << _CS_success          << std::endl
+        << "cache search points             : " << _CS_pts              << std::endl;
+    out << "number of VNS searches          : "   << _nb_VNS_searches     << std::endl;
+    if ( _nb_VNS_searches > 0 )
+    {
+        out << "VNS search successes            : " << _VNS_success         << std::endl
+        << "VNS search points               : " << _VNS_pts             << std::endl
+        << "VNS blackbox evaluations        : " << _VNS_bb_eval         << std::endl;
+        if ( _VNS_sgte_eval > 0 )
+            out << "VNS surrogate evaluations       : " << _VNS_sgte_eval     << std::endl;
+    }
+    if ( _model_stats.get_nb_models() > 0 )
+    {
 #ifdef DEBUG
-    out << NOMAD::open_block ( "model stats" )
-	<< _model_stats
-	<< NOMAD::close_block();
+        out << NOMAD::open_block ( "model stats" )
+        << _model_stats
+        << NOMAD::close_block();
 #else
-    out << "number of models built          : "
-	<< _model_stats.get_nb_models() << std::endl
-	<< "number of model searches        : "
-	<< _model_stats.get_MS_nb_searches() << std::endl;
-    if ( _model_stats.get_MS_nb_searches() > 0 ) {
-      out << "model search successes          : "
-	  << _model_stats.get_MS_success() << std::endl
-	  << "model search points             : "
-	  << _model_stats.get_MS_pts() << std::endl
-	  << "model search blackbox eval.     : "
-	  << _model_stats.get_MS_bb_eval() << std::endl;
-      if ( _model_stats.get_MS_sgte_eval() > 0 )
-	out << "model search sgte evaluations   : "
-	    << _model_stats.get_MS_sgte_eval() << std::endl;
-    }
+        out << "number of models built          : "
+        << _model_stats.get_nb_models() << std::endl
+        << "number of model searches        : "
+        << _model_stats.get_MS_nb_searches() << std::endl;
+        if ( _model_stats.get_MS_nb_searches() > 0 )
+        {
+            out << "model search successes          : "
+            << _model_stats.get_MS_success() << std::endl
+            << "model search points             : "
+            << _model_stats.get_MS_pts() << std::endl
+            << "model search blackbox eval.     : "
+            << _model_stats.get_MS_bb_eval() << std::endl;
+            if ( _model_stats.get_MS_sgte_eval() > 0 )
+                out << "model search sgte evaluations   : "
+                << _model_stats.get_MS_sgte_eval() << std::endl;
+        }
 #endif
-  }
-  else
-    out << "no model has been constructed" << std::endl;
+    }
+    else
+        out << "no model has been constructed" << std::endl;
 #ifdef USE_MPI
-  out << "number of asynchronous successes: " << _asynchronous_success  << std::endl;
-  out << "total size of MPI communications: ";
-  if ( _MPI_data_size < 0 )
-    out << "-";
-  else
-    out.display_size_of ( _MPI_data_size );
-  out << std::endl;
+    out << "number of asynchronous successes: " << _asynchronous_success  << std::endl;
+    out << "total size of MPI communications: ";
+    if ( _MPI_data_size < 0 )
+        out << "-";
+    else
+        out.display_size_of ( _MPI_data_size );
+    out << std::endl;
 #endif
-
-  out << "wall-clock time                 : ";
-  out.display_time ( _clock.get_real_time() );
-  out << std::endl;
-  
-  if ( _stat_sum.is_defined() )
-    out << "stat sum                        : " << _stat_sum            << std::endl;
-  if ( _stat_avg.is_defined() )
-    out << "stat avg                        : " << get_stat_avg()       << std::endl;
-  }
+    
+    out << "wall-clock time                 : ";
+    out.display_time ( _clock.get_real_time() );
+    out << std::endl;
+    
+    if ( _stat_sum.is_defined() )
+        out << "stat sum                        : " << _stat_sum            << std::endl;
+    if ( _stat_avg.is_defined() )
+        out << "stat avg                        : " << get_stat_avg()       << std::endl;
+}
diff --git a/src/Stats.hpp b/src/Stats.hpp
index db9cf2a..f26323d 100644
--- a/src/Stats.hpp
+++ b/src/Stats.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   Stats.hpp
-  \brief  Algorithm stats (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-22
-  \see    Stats.cpp
-*/
+ \file   Stats.hpp
+ \brief  Algorithm stats (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-22
+ \see    Stats.cpp
+ */
 #ifndef __STATS__
 #define __STATS__
 
@@ -48,493 +55,494 @@
 #include "Model_Stats.hpp"
 
 namespace NOMAD {
-
-  /// Algorithm stats.
-  class Stats {
-
-  private:
-
-    /// Number of evaluations.
-    /**
-       Blackbox evaluations + cache hits.
-    */
-    int _eval;
-
-    /// Number of simulated blackbox evaluations.
-    /**
-       Blackbox evaluations + initial cache hits.
-    */
-    int _sim_bb_eval;
-
-    int           _sgte_eval;        ///< Number of surrogate evaluations.
-    int           _sgte_cost;        ///< Surrogate cost.
-    int           _bb_eval;          ///< Number of blackbox evaluations.
-		int           _block_eval;    ///< Number of block of evaluations.  
-    int           _failed_eval;      ///< Number of failed evaluations.
-    int           _cache_hits;       ///< Number of cache hits.
-    int           _interrupted_eval; ///< Number of interrupted sequence of evaluations.
-    int           _iterations;       ///< Number of iterations.
-    NOMAD::Double _stat_sum;         ///< Sum stat (output of type NOMAD::STAT_SUM).
-    NOMAD::Double _stat_avg;         ///< Average stat (output of type NOMAD::STAT_AVG).
-    int           _cnt_avg;          ///< Number of values for the \c avg stat.
-    int           _p1_iterations;    ///< Iterations in MADS phase one.
-    int           _p1_bbe;           ///< Blackbox evaluations in phase one.
-    NOMAD::Clock  _clock;            ///< Wall-clock time.
-    int           _mads_runs;        ///< Number of MADS runs (for multi-objective runs).
-
-    // Polls:
-    int           _nb_poll_searches; ///< Number of poll searches.
-    int           _poll_pts;         ///< Number of poll points.
-    int           _poll_success;     ///< Number of poll successes.
-
-    // Extended polls:
-    int           _nb_ext_polls;      ///< Number of extended polls.
-    int           _ext_poll_pts;      ///< Number of extended poll points.
-    int           _ext_poll_succ;     ///< Number of extended poll successes.
-    int           _ext_poll_bb_eval;  ///< Number of extended poll blackbox evaluations.
-    int           _ext_poll_descents; ///< Number of extended poll descents.
-
-    // Speculative searches:
-    int           _nb_spec_searches;  ///< Number of speculative searches.
-    int           _spec_pts;          ///< Number of speculative search points.
-    int           _spec_success;      ///< Number of speculative search successes.
-
+    
+    /// Algorithm stats.
+    class Stats {
+        
+    private:
+        
+        /// Number of evaluations.
+        /**
+         Blackbox evaluations + cache hits.
+         */
+        int _eval;
+        
+        /// Number of simulated blackbox evaluations.
+        /**
+         Blackbox evaluations + initial cache hits.
+         */
+        int _sim_bb_eval;
+        
+        int           _sgte_eval;        ///< Number of surrogate evaluations.
+        int           _sgte_cost;        ///< Surrogate cost.
+        int           _bb_eval;          ///< Number of blackbox evaluations.
+        int           _block_eval;    ///< Number of block of evaluations.
+        int           _failed_eval;      ///< Number of failed evaluations.
+        int           _cache_hits;       ///< Number of cache hits.
+        int           _interrupted_eval; ///< Number of interrupted sequence of evaluations.
+        int           _iterations;       ///< Number of iterations.
+        NOMAD::Double _stat_sum;         ///< Sum stat (output of type NOMAD::STAT_SUM).
+        NOMAD::Double _stat_avg;         ///< Average stat (output of type NOMAD::STAT_AVG).
+        int           _cnt_avg;          ///< Number of values for the \c avg stat.
+        int           _p1_iterations;    ///< Iterations in MADS phase one.
+        int           _p1_bbe;           ///< Blackbox evaluations in phase one.
+        NOMAD::Clock  _clock;            ///< Wall-clock time.
+        int           _mads_runs;        ///< Number of MADS runs (for multi-objective runs).
+        
+        // Polls:
+        int           _nb_poll_searches; ///< Number of poll searches.
+        int           _poll_pts;         ///< Number of poll points.
+        int           _poll_success;     ///< Number of poll successes.
+        
+        // Extended polls:
+        int           _nb_ext_polls;      ///< Number of extended polls.
+        int           _ext_poll_pts;      ///< Number of extended poll points.
+        int           _ext_poll_succ;     ///< Number of extended poll successes.
+        int           _ext_poll_bb_eval;  ///< Number of extended poll blackbox evaluations.
+        int           _ext_poll_descents; ///< Number of extended poll descents.
+        
+        // Speculative searches:
+        int           _nb_spec_searches;  ///< Number of speculative searches.
+        int           _spec_pts;          ///< Number of speculative search points.
+        int           _spec_success;      ///< Number of speculative search successes.
+        
 #ifdef USE_MPI
-    int           _asynchronous_success; ///< Number of asynchronous successes.
-    int           _MPI_data_size;        ///< Size of MPI messages.
+        int           _asynchronous_success; ///< Number of asynchronous successes.
+        int           _MPI_data_size;        ///< Size of MPI messages.
 #endif
-
-    // LH searches:
-    int           _nb_LH_searches;    ///< Number of Latin-Hypercube (LH) searches.
-    int           _LH_pts;            ///< Number of Latin-Hypercube (LH) search points.
-    int           _LH_success;        ///< Number of LH search successes.
-
-    // Cache searches:
-    int           _nb_cache_searches; ///< Number of cache searches (CS).
-    int           _CS_pts;            ///< Number of CS search points.
-    int           _CS_success;        ///< Number of CS search successes.
-
-    /// Model stats.
-    NOMAD::Model_Stats _model_stats;
-
-    // VNS searches:
-    int           _nb_VNS_searches;   ///< Number of VNS searches.
-    int           _VNS_pts;           ///< Number of VNS search points.
-    int           _VNS_success;       ///< Number of VNS search successes.
-    int           _VNS_bb_eval;       ///< Number of VNS blackbox evaluations.
-    int           _VNS_sgte_eval;     ///< Number of VNS surrogate evaluations.
-
-    // User searches:
-    int           _nb_usr_searches;   ///< Number of user searches.
-    int           _usr_srch_pts;      ///< Number of user search points.
-    int           _usr_srch_success;  ///< Number of user search successes.
-	  
-	  // Dynamic management of poll directions
-	int				_nb_success_dyn_dir;  ///< Number of successfull polling in the direction added dynamically
-
-
-public:
-
-    /// Constructor.
-    /**
-       \param sgte_cost Surrogate cost -- \b IN -- \b optional (default = \c -1).
-    */
-    explicit Stats ( int sgte_cost = -1 ) : _sgte_cost(sgte_cost) { reset(); }
-
-    /// Copy constructor.
-    /**
-       \param s The copied object -- \b IN.
-    */
-    explicit Stats ( const Stats & s )
-       : _eval                 ( s._eval                 ) ,
-	 _sim_bb_eval          ( s._sim_bb_eval          ) ,
-	 _sgte_eval            ( s._sgte_eval            ) ,
-	 _sgte_cost            ( s._sgte_cost            ) ,
-	 _bb_eval              ( s._bb_eval              ) ,
-		_block_eval        ( s._block_eval        ) , 
-	 _failed_eval          ( s._failed_eval          ) ,
-	 _cache_hits           ( s._cache_hits           ) ,
-	 _interrupted_eval     ( s._interrupted_eval     ) ,
-	 _iterations           ( s._iterations           ) ,
-	 _stat_sum             ( s._stat_sum             ) ,
-	 _stat_avg             ( s._stat_avg             ) ,
-	 _cnt_avg              ( s._cnt_avg              ) ,
-	 _p1_iterations        ( s._p1_iterations        ) ,
-	 _p1_bbe               ( s._p1_bbe               ) ,
-	 _clock                ( s._clock                ) ,
-	 _mads_runs            ( s._mads_runs            ) ,
-	 _nb_poll_searches     ( s._nb_poll_searches     ) ,
-	 _poll_pts             ( s._poll_pts             ) ,
-	 _poll_success         ( s._poll_success         ) ,
-	 _nb_ext_polls         ( s._nb_ext_polls         ) ,
-	 _ext_poll_pts         ( s._ext_poll_pts         ) ,
-	 _ext_poll_succ        ( s._ext_poll_succ        ) ,
-	 _ext_poll_bb_eval     ( s._ext_poll_bb_eval     ) ,
-	 _ext_poll_descents    ( s._ext_poll_descents    ) ,
-	 _nb_spec_searches     ( s._nb_spec_searches     ) ,
-	 _spec_pts             ( s._spec_pts             ) ,
-	 _spec_success         ( s._spec_success         ) ,
+        
+        // LH searches:
+        int           _nb_LH_searches;    ///< Number of Latin-Hypercube (LH) searches.
+        int           _LH_pts;            ///< Number of Latin-Hypercube (LH) search points.
+        int           _LH_success;        ///< Number of LH search successes.
+        
+        // Cache searches:
+        int           _nb_cache_searches; ///< Number of cache searches (CS).
+        int           _CS_pts;            ///< Number of CS search points.
+        int           _CS_success;        ///< Number of CS search successes.
+        
+        /// Model stats.
+        NOMAD::Model_Stats _model_stats;
+        
+        // VNS searches:
+        int           _nb_VNS_searches;   ///< Number of VNS searches.
+        int           _VNS_pts;           ///< Number of VNS search points.
+        int           _VNS_success;       ///< Number of VNS search successes.
+        int           _VNS_bb_eval;       ///< Number of VNS blackbox evaluations.
+        int           _VNS_sgte_eval;     ///< Number of VNS surrogate evaluations.
+        
+        // User searches:
+        int           _nb_usr_searches;   ///< Number of user searches.
+        int           _usr_srch_pts;      ///< Number of user search points.
+        int           _usr_srch_success;  ///< Number of user search successes.
+        
+        // Dynamic management of poll directions
+        int           _nb_success_dyn_dir;  ///< Number of successfull polling in the direction added dynamically
+        
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param sgte_cost Surrogate cost -- \b IN -- \b optional (default = \c -1).
+         */
+        explicit Stats ( int sgte_cost = -1 ) : _sgte_cost(sgte_cost) { reset(); }
+        
+        /// Copy constructor.
+        /**
+         \param s The copied object -- \b IN.
+         */
+        explicit Stats ( const Stats & s )
+        : _eval                 ( s._eval                 ) ,
+        _sim_bb_eval          ( s._sim_bb_eval          ) ,
+        _sgte_eval            ( s._sgte_eval            ) ,
+        _sgte_cost            ( s._sgte_cost            ) ,
+        _bb_eval              ( s._bb_eval              ) ,
+        _block_eval        ( s._block_eval        ) ,
+        _failed_eval          ( s._failed_eval          ) ,
+        _cache_hits           ( s._cache_hits           ) ,
+        _interrupted_eval     ( s._interrupted_eval     ) ,
+        _iterations           ( s._iterations           ) ,
+        _stat_sum             ( s._stat_sum             ) ,
+        _stat_avg             ( s._stat_avg             ) ,
+        _cnt_avg              ( s._cnt_avg              ) ,
+        _p1_iterations        ( s._p1_iterations        ) ,
+        _p1_bbe               ( s._p1_bbe               ) ,
+        _clock                ( s._clock                ) ,
+        _mads_runs            ( s._mads_runs            ) ,
+        _nb_poll_searches     ( s._nb_poll_searches     ) ,
+        _poll_pts             ( s._poll_pts             ) ,
+        _poll_success         ( s._poll_success         ) ,
+        _nb_ext_polls         ( s._nb_ext_polls         ) ,
+        _ext_poll_pts         ( s._ext_poll_pts         ) ,
+        _ext_poll_succ        ( s._ext_poll_succ        ) ,
+        _ext_poll_bb_eval     ( s._ext_poll_bb_eval     ) ,
+        _ext_poll_descents    ( s._ext_poll_descents    ) ,
+        _nb_spec_searches     ( s._nb_spec_searches     ) ,
+        _spec_pts             ( s._spec_pts             ) ,
+        _spec_success         ( s._spec_success         ) ,
 #ifdef USE_MPI
-	 _asynchronous_success ( s._asynchronous_success ) ,
-	 _MPI_data_size        ( s._MPI_data_size        ) ,
+        _asynchronous_success ( s._asynchronous_success ) ,
+        _MPI_data_size        ( s._MPI_data_size        ) ,
 #endif
-	 _nb_LH_searches       ( s._nb_LH_searches       ) ,
-	 _LH_pts               ( s._LH_pts               ) ,
-	 _LH_success           ( s._LH_success           ) ,
-	 _nb_cache_searches    ( s._nb_cache_searches    ) ,
-	 _CS_pts               ( s._CS_pts               ) ,
-	 _CS_success           ( s._CS_success           ) ,
-	 _nb_VNS_searches      ( s._nb_VNS_searches      ) ,
-	 _VNS_pts              ( s._VNS_pts              ) ,
-	 _VNS_success          ( s._VNS_success          ) ,
-	 _VNS_bb_eval          ( s._VNS_bb_eval          ) ,
-	 _VNS_sgte_eval        ( s._VNS_sgte_eval        ) ,
-	 _nb_usr_searches      ( s._nb_usr_searches      ) ,
-	 _usr_srch_pts         ( s._usr_srch_pts         ) ,
-	 _usr_srch_success     ( s._usr_srch_success     ) ,
-	 _nb_success_dyn_dir   ( s._nb_success_dyn_dir   ) {}
-    
-    /// Affectation operator.
-    /**
-       \param s The right-hand side object -- \b IN.
-    */
-    Stats & operator = ( const Stats & s );
-    
-    /// Destructor.
-    virtual ~Stats ( void ) {}
-
-    /// Reset the stats.
-    void reset ( void );
-
-    /// Update stats from another NOMAD::Stats object.
-    /**
-       \param s The other NOMAD::Stats object -- \b IN.
-       \param for_search A flag equal to \c true if the method
-                         has been invoked within a search step
-			 -- \b IN.
-    */
-    void update ( const Stats & s , bool for_search );
-    
-    /// Update the \c sum stat.
-    /**
-       \param d New \c sum element -- \b IN.
-    */
-    void update_stat_sum ( const NOMAD::Double & d );
-
-    /// Update the \c avg stat.
-    /**
-       \param d New \c avg element -- \b IN.
-    */
-    void update_stat_avg ( const NOMAD::Double & d );
-
-    /// Add \c 1 to stat \c _mads_run.
-    void add_mads_run ( void ) { ++_mads_runs; }
-
-    /// Set the number of MADS runs.
-    void set_mads_runs ( int mads_runs ) { _mads_runs = mads_runs; }
-
-    /// Add \c 1 to stat \c _eval.
-    void add_eval ( void ) { ++_eval; }
-
-    /// Add \c 1 to stat \c _sim_bb_eval.
-    void add_sim_bb_eval ( void ) { ++_sim_bb_eval; }
-
-    /// Add \c 1 to stat \c _sgte_eval.
-    void add_sgte_eval ( void ) { ++_sgte_eval; }
-	  
-	  /// Add \c count_eval to stat \c _sgte_eval.
-	  void add_sgte_eval ( int count_eval ) { _sgte_eval+=count_eval; } 
-	  
-    /// Add \c 1 to stat \c _bb_eval.
-    void add_bb_eval ( void ) { ++_bb_eval; }
-
-		/// Add \c 1 to stat \c _block_eval.
-		void add_one_block_eval ( void ) { ++_block_eval; }  
-		
-	  /// Add \c count_eval to stat \c _bb_eval.
-	  void add_bb_eval ( int count_eval ) { _bb_eval+=count_eval; } 
-	  
-    /// Add \c 1 to stat \c _failed_eval.
-    void add_failed_eval ( void ) { ++_failed_eval; }
-
-    /// Add \c 1 to stat \c _cache_hits.
-    void add_cache_hit ( void ) { ++_cache_hits; }
-
-    /// Add \c 1 to stat \c _interrupted_eval.
-    void add_interrupted_eval ( void ) { ++_interrupted_eval; }
-
-    /// Add \c 1 to stat \c _iterations.
-    void add_iteration ( void ) { ++_iterations; }
-
-    /// Add \c 1 to stat \c _nb_poll_searches.
-    void add_nb_poll_searches ( void ) { ++_nb_poll_searches; }
-
-    /// Add \c 1 to stat \c _poll_success.
-    void add_poll_success ( void ) { ++_poll_success; } 
-
-    /// Add \c 1 to stat \c _nb_ext_polls.
-    void add_nb_ext_polls ( void ) { ++_nb_ext_polls; }
-
-    /// Add \c 1 to stat \c _ext_poll_succ.
-    void add_ext_poll_succ ( void ) { ++_ext_poll_succ; }
-
-    /// Add \c 1 to stat \c _ext_poll_descents.
-    void add_ext_poll_descent ( void ) { ++_ext_poll_descents; }
-
-    /// Add \c 1 to stat \c _nb_spec_searches.
-    void add_nb_spec_searches ( void ) { ++_nb_spec_searches; }
-
-    /// Add \c 1 to stat \c _spec_success.
-    void add_spec_success ( void ) { ++_spec_success; }
-
-    /// Add \c 1 to stat \c _LH_success.
-    void add_LH_success ( void ) { ++_LH_success; }
-
-    /// Add \c 1 to stat \c _nb_cache_searches.
-    void add_nb_cache_searches ( void ) { ++_nb_cache_searches; }
-
-    /// Add \c 1 to stat \c _nb_LH_searches.
-    void add_nb_LH_searches ( void ) { ++_nb_LH_searches; }
-
-    /// Add \c 1 to stat \c _CS_success.
-    void add_CS_success ( void ) { ++_CS_success; }
-
-    /// Add \c 1 to stat \c _nb_VNS_searches.
-    void add_nb_VNS_searches ( void ) { ++_nb_VNS_searches; }
-
-    /// Add \c 1 to stat \c _VNS_success.
-    void add_VNS_success ( void ) { ++_VNS_success; }
-
-    /// Add \c 1 to stat \c _nb_usr_searches.
-    void add_nb_usr_searches ( void ) { ++_nb_usr_searches; }
-
-    /// Add \c 1 to stat \c _usr_srch_success.
-    void add_usr_srch_success ( void ) { ++_usr_srch_success; }
-	  
-	  
-	/// Add \c 1 to stat \c _nb_success_dyn_dir.
-	  void add_nb_success_dyn_dir(void) {++_nb_success_dyn_dir;}
-
-    /// Add an integer to stat \c _p1_iterations.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_p1_iterations ( int i ) { _p1_iterations += i; }
-
-    /// Add an integer to stat \c _p1_bbe.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_p1_bbe ( int i ) { _p1_bbe += i; }
-
-    /// Add an integer to stat \c _poll_pts.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_poll_pts ( int i ) { _poll_pts += i; }
-
-    /// Add an integer to stat \c _ext_poll_pts.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_ext_poll_pts ( int i ) { _ext_poll_pts += i; }
-
-    /// Add an integer to stat \c _ext_poll_bb_eval.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_ext_poll_bb_eval ( int i ) { _ext_poll_bb_eval += i;}
-
-    /// Add an integer to stat \c _spec_pts.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_spec_pts ( int i ) { _spec_pts += i; }
-
-    /// Add an integer to stat \c _LH_pts.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_LH_pts ( int i ) { _LH_pts += i; }
-
-    /// Add an integer to stat \c _CS_pts.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_CS_pts ( int i ) { _CS_pts += i; }
-
-    /// Update model stats.
-    void update_model_stats ( const NOMAD::Model_Stats & ms )
-    {
-      _model_stats.update ( ms );
-    }
-
-    /// Add an integer to stat \c _VNS_pts.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_VNS_pts ( int i ) { _VNS_pts += i; }
-
-    /// Add an integer to stat \c _VNS_bb_eval.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_VNS_bb_eval ( int i ) { _VNS_bb_eval += i; }
-
-    /// Add an integer to stat \c _VNS_sgte_eval.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_VNS_sgte_eval ( int i ) { _VNS_sgte_eval += i; }
-
-    /// Add an integer to stat \c _usr_srch_pts.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void add_usr_srch_pts ( int i ) { _usr_srch_pts += i; }
-
+        _nb_LH_searches       ( s._nb_LH_searches       ) ,
+        _LH_pts               ( s._LH_pts               ) ,
+        _LH_success           ( s._LH_success           ) ,
+        _nb_cache_searches    ( s._nb_cache_searches    ) ,
+        _CS_pts               ( s._CS_pts               ) ,
+        _CS_success           ( s._CS_success           ) ,
+        _nb_VNS_searches      ( s._nb_VNS_searches      ) ,
+        _VNS_pts              ( s._VNS_pts              ) ,
+        _VNS_success          ( s._VNS_success          ) ,
+        _VNS_bb_eval          ( s._VNS_bb_eval          ) ,
+        _VNS_sgte_eval        ( s._VNS_sgte_eval        ) ,
+        _nb_usr_searches      ( s._nb_usr_searches      ) ,
+        _usr_srch_pts         ( s._usr_srch_pts         ) ,
+        _usr_srch_success     ( s._usr_srch_success     ) ,
+        _nb_success_dyn_dir   ( s._nb_success_dyn_dir   ) {}
+        
+        /// Affectation operator.
+        /**
+         \param s The right-hand side object -- \b IN.
+         */
+        Stats & operator = ( const Stats & s );
+        
+        /// Destructor.
+        virtual ~Stats ( void ) {}
+        
+        /// Reset the stats.
+        void reset ( void );
+        
+        /// Update stats from another NOMAD::Stats object.
+        /**
+         \param s The other NOMAD::Stats object -- \b IN.
+         \param for_search A flag equal to \c true if the method
+         has been invoked within a search step
+         -- \b IN.
+         */
+        void update ( const Stats & s , bool for_search );
+        
+        /// Update the \c sum stat.
+        /**
+         \param d New \c sum element -- \b IN.
+         */
+        void update_stat_sum ( const NOMAD::Double & d );
+        
+        /// Update the \c avg stat.
+        /**
+         \param d New \c avg element -- \b IN.
+         */
+        void update_stat_avg ( const NOMAD::Double & d );
+        
+        /// Add \c 1 to stat \c _mads_run.
+        void add_mads_run ( void ) { ++_mads_runs; }
+        
+        /// Set the number of MADS runs.
+        void set_mads_runs ( int mads_runs ) { _mads_runs = mads_runs; }
+        
+        /// Add \c 1 to stat \c _eval.
+        void add_eval ( void ) { ++_eval; }
+        
+        /// Add \c 1 to stat \c _sim_bb_eval.
+        void add_sim_bb_eval ( void ) { ++_sim_bb_eval; }
+        
+        /// Add \c 1 to stat \c _sgte_eval.
+        void add_sgte_eval ( void ) { ++_sgte_eval; }
+        
+        /// Add \c count_eval to stat \c _sgte_eval.
+        void add_sgte_eval ( int count_eval ) { _sgte_eval+=count_eval; }
+        
+        /// Add \c 1 to stat \c _bb_eval.
+        void add_bb_eval ( void ) { ++_bb_eval; }
+        
+        /// Add \c 1 to stat \c _block_eval.
+        void add_one_block_eval ( void ) { ++_block_eval; }
+        
+        /// Add \c count_eval to stat \c _bb_eval.
+        void add_bb_eval ( int count_eval ) { _bb_eval+=count_eval; }
+        
+        /// Add \c 1 to stat \c _failed_eval.
+        void add_failed_eval ( void ) { ++_failed_eval; }
+        
+        /// Add \c 1 to stat \c _cache_hits.
+        void add_cache_hit ( void ) { ++_cache_hits; }
+        
+        /// Add \c 1 to stat \c _interrupted_eval.
+        void add_interrupted_eval ( void ) { ++_interrupted_eval; }
+        
+        /// Add \c 1 to stat \c _iterations.
+        void add_iteration ( void ) { ++_iterations; }
+        
+        /// Add \c 1 to stat \c _nb_poll_searches.
+        void add_nb_poll_searches ( void ) { ++_nb_poll_searches; }
+        
+        /// Add \c 1 to stat \c _poll_success.
+        void add_poll_success ( void ) { ++_poll_success; }
+        
+        /// Add \c 1 to stat \c _nb_ext_polls.
+        void add_nb_ext_polls ( void ) { ++_nb_ext_polls; }
+        
+        /// Add \c 1 to stat \c _ext_poll_succ.
+        void add_ext_poll_succ ( void ) { ++_ext_poll_succ; }
+        
+        /// Add \c 1 to stat \c _ext_poll_descents.
+        void add_ext_poll_descent ( void ) { ++_ext_poll_descents; }
+        
+        /// Add \c 1 to stat \c _nb_spec_searches.
+        void add_nb_spec_searches ( void ) { ++_nb_spec_searches; }
+        
+        /// Add \c 1 to stat \c _spec_success.
+        void add_spec_success ( void ) { ++_spec_success; }
+        
+        /// Add \c 1 to stat \c _LH_success.
+        void add_LH_success ( void ) { ++_LH_success; }
+        
+        /// Add \c 1 to stat \c _nb_cache_searches.
+        void add_nb_cache_searches ( void ) { ++_nb_cache_searches; }
+        
+        /// Add \c 1 to stat \c _nb_LH_searches.
+        void add_nb_LH_searches ( void ) { ++_nb_LH_searches; }
+        
+        /// Add \c 1 to stat \c _CS_success.
+        void add_CS_success ( void ) { ++_CS_success; }
+        
+        /// Add \c 1 to stat \c _nb_VNS_searches.
+        void add_nb_VNS_searches ( void ) { ++_nb_VNS_searches; }
+        
+        /// Add \c 1 to stat \c _VNS_success.
+        void add_VNS_success ( void ) { ++_VNS_success; }
+        
+        /// Add \c 1 to stat \c _nb_usr_searches.
+        void add_nb_usr_searches ( void ) { ++_nb_usr_searches; }
+        
+        /// Add \c 1 to stat \c _usr_srch_success.
+        void add_usr_srch_success ( void ) { ++_usr_srch_success; }
+        
+        
+        /// Add \c 1 to stat \c _nb_success_dyn_dir.
+        void add_nb_success_dyn_dir(void) {++_nb_success_dyn_dir;}
+        
+        /// Add an integer to stat \c _p1_iterations.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_p1_iterations ( int i ) { _p1_iterations += i; }
+        
+        /// Add an integer to stat \c _p1_bbe.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_p1_bbe ( int i ) { _p1_bbe += i; }
+        
+        /// Add an integer to stat \c _poll_pts.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_poll_pts ( int i ) { _poll_pts += i; }
+        
+        /// Add an integer to stat \c _ext_poll_pts.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_ext_poll_pts ( int i ) { _ext_poll_pts += i; }
+        
+        /// Add an integer to stat \c _ext_poll_bb_eval.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_ext_poll_bb_eval ( int i ) { _ext_poll_bb_eval += i;}
+        
+        /// Add an integer to stat \c _spec_pts.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_spec_pts ( int i ) { _spec_pts += i; }
+        
+        /// Add an integer to stat \c _LH_pts.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_LH_pts ( int i ) { _LH_pts += i; }
+        
+        /// Add an integer to stat \c _CS_pts.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_CS_pts ( int i ) { _CS_pts += i; }
+        
+        /// Update model stats.
+        void update_model_stats ( const NOMAD::Model_Stats & ms )
+        {
+            _model_stats.update ( ms );
+        }
+        
+        /// Add an integer to stat \c _VNS_pts.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_VNS_pts ( int i ) { _VNS_pts += i; }
+        
+        /// Add an integer to stat \c _VNS_bb_eval.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_VNS_bb_eval ( int i ) { _VNS_bb_eval += i; }
+        
+        /// Add an integer to stat \c _VNS_sgte_eval.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_VNS_sgte_eval ( int i ) { _VNS_sgte_eval += i; }
+        
+        /// Add an integer to stat \c _usr_srch_pts.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void add_usr_srch_pts ( int i ) { _usr_srch_pts += i; }
+        
 #ifdef USE_MPI
-
-    /// Add \c 1 to stat \c _asynchronous_success.
-    void add_asynchronous_success ( void ) { ++_asynchronous_success; }
-
-    /// Add an integer to stat \c _MPI_data_size.
-    /**
-       \param i The integer -- \b IN.
-    */
-    void set_MPI_data_size ( int i ) { _MPI_data_size = i; }
+        
+        /// Add \c 1 to stat \c _asynchronous_success.
+        void add_asynchronous_success ( void ) { ++_asynchronous_success; }
+        
+        /// Add an integer to stat \c _MPI_data_size.
+        /**
+         \param i The integer -- \b IN.
+         */
+        void set_MPI_data_size ( int i ) { _MPI_data_size = i; }
 #endif
-
-    /// Access to the stat \c _eval.
-    /**
-       \return The stat \c _eval.
-    */
-    int get_eval ( void ) const { return _eval; }
-
-    /// Access to the stat \c _sim_bb_eval.
-    /**
-       \return The stat \c _sim_bb_eval.
-    */
-    int get_sim_bb_eval ( void ) const { return _sim_bb_eval; }
-
-    /// Access to the stat \c _sgte_eval.
-    /**
-       \return The stat \c _sgte_eval.
-    */
-    int get_sgte_eval ( void ) const { return _sgte_eval; }
-
-    /// Access to the real time stat.
-    /**
-       \return The real time stat.
-    */
-    int get_real_time ( void ) const { return _clock.get_real_time(); }
-
-    /// Access to the stat \c _iterations.
-    /**
-       \return The stat \c _iterations.
-    */
-    int get_iterations ( void ) const { return _iterations; }
-
-    /// Access to the stat \c _failed_eval.
-    /**
-       \return The stat \c _failed_eval.
-    */
-    int get_failed_eval ( void ) const { return _failed_eval; }
-
-    /// Access to the stat \c _mads_runs.
-    /**
-       \return The stat \c _mads_runs.
-    */
-    int get_mads_runs ( void ) const { return _mads_runs; }
-
-    /// Access to the stat \c _LH_pts.
-    /**
-       \return The stat \c _LH_pts.
-    */
-    int get_LH_pts ( void ) const { return _LH_pts; }
-
-    /// Access to the stat \c _CS_pts.
-    /**
-       \return The stat \c _CS_pts.
-    */
-    int get_CS_pts ( void ) const { return _CS_pts; }
-
-    /// Access to the stat \c _VNS_bb_eval.
-    /**
-       \return The stat \c _VNS_bb_eval.
-    */
-    int get_VNS_bb_eval ( void ) const { return _VNS_bb_eval; }
-
-    /// Access to the stat \c _VNS_sgte_eval.
-    /**
-       \return The stat \c _VNS_sgte_eval.
-    */
-    int get_VNS_sgte_eval ( void ) const { return _VNS_sgte_eval; }
-
-    /// Access to the number of cache hits.
-    /**
-       \return The number of cache hits.
-    */
-    int get_cache_hits ( void ) const { return _cache_hits; }
-
-    /// Access to the number of blackbox evaluations (includes surrogate cost).
-    /**
-       \return The number of blackbox evaluations.
-    */
-    int get_bb_eval ( void ) const
-    {
-      return ( _sgte_cost > 0 ) ? _bb_eval + _sgte_eval / _sgte_cost : _bb_eval;
-    }
-
-		
-		/// Access to the number of block of evaluations (includes bb and surrogates).
-		/**
-		 \return The number of blackbox evaluations.
-		 */
-		int get_block_eval ( void ) const
-		{
-			return _block_eval;
-		}
-		
-    /// Access to the \c sum stat.
-    /**
-       \return The \c sum stat.
-    */
-    NOMAD::Double get_stat_sum ( void ) const { return _stat_sum; }
-
-    /// Access to the \c avg stat.
-    /**
-       \return The \c avg stat.
-    */
-    NOMAD::Double get_stat_avg ( void ) const
-    {
-      return ( _cnt_avg > 0 ) ? _stat_avg/_cnt_avg : NOMAD::Double();
-    }
-
-    /// Access to the model stats.
-    /**
-       \return The model stats.
-    */
-    const NOMAD::Model_Stats & get_model_stats ( void ) const { return _model_stats; }
-
-    /// Display.
+        
+        /// Access to the stat \c _eval.
+        /**
+         \return The stat \c _eval.
+         */
+        int get_eval ( void ) const { return _eval; }
+        
+        /// Access to the stat \c _sim_bb_eval.
+        /**
+         \return The stat \c _sim_bb_eval.
+         */
+        int get_sim_bb_eval ( void ) const { return _sim_bb_eval; }
+        
+        /// Access to the stat \c _sgte_eval.
+        /**
+         \return The stat \c _sgte_eval.
+         */
+        int get_sgte_eval ( void ) const { return _sgte_eval; }
+        
+        /// Access to the real time stat.
+        /**
+         \return The real time stat.
+         */
+        int get_real_time ( void ) const { return _clock.get_real_time(); }
+        
+        /// Access to the stat \c _iterations.
+        /**
+         \return The stat \c _iterations.
+         */
+        int get_iterations ( void ) const { return _iterations; }
+        
+        /// Access to the stat \c _failed_eval.
+        /**
+         \return The stat \c _failed_eval.
+         */
+        int get_failed_eval ( void ) const { return _failed_eval; }
+        
+        /// Access to the stat \c _mads_runs.
+        /**
+         \return The stat \c _mads_runs.
+         */
+        int get_mads_runs ( void ) const { return _mads_runs; }
+        
+        /// Access to the stat \c _LH_pts.
+        /**
+         \return The stat \c _LH_pts.
+         */
+        int get_LH_pts ( void ) const { return _LH_pts; }
+        
+        /// Access to the stat \c _CS_pts.
+        /**
+         \return The stat \c _CS_pts.
+         */
+        int get_CS_pts ( void ) const { return _CS_pts; }
+        
+        /// Access to the stat \c _VNS_bb_eval.
+        /**
+         \return The stat \c _VNS_bb_eval.
+         */
+        int get_VNS_bb_eval ( void ) const { return _VNS_bb_eval; }
+        
+        /// Access to the stat \c _VNS_sgte_eval.
+        /**
+         \return The stat \c _VNS_sgte_eval.
+         */
+        int get_VNS_sgte_eval ( void ) const { return _VNS_sgte_eval; }
+        
+        /// Access to the number of cache hits.
+        /**
+         \return The number of cache hits.
+         */
+        int get_cache_hits ( void ) const { return _cache_hits; }
+        
+        /// Access to the number of blackbox evaluations (includes surrogate cost).
+        /**
+         \return The number of blackbox evaluations.
+         */
+        int get_bb_eval ( void ) const
+        {
+            return ( _sgte_cost > 0 ) ? _bb_eval + _sgte_eval / _sgte_cost : _bb_eval;
+        }
+        
+        
+        /// Access to the number of block of evaluations (includes bb and surrogates).
+        /**
+         \return The number of blackbox evaluations.
+         */
+        int get_block_eval ( void ) const
+        {
+            return _block_eval;
+        }
+        
+        /// Access to the \c sum stat.
+        /**
+         \return The \c sum stat.
+         */
+        NOMAD::Double get_stat_sum ( void ) const { return _stat_sum; }
+        
+        /// Access to the \c avg stat.
+        /**
+         \return The \c avg stat.
+         */
+        NOMAD::Double get_stat_avg ( void ) const
+        {
+            return ( _cnt_avg > 0 ) ? _stat_avg/_cnt_avg : NOMAD::Double();
+        }
+        
+        /// Access to the model stats.
+        /**
+         \return The model stats.
+         */
+        const NOMAD::Model_Stats & get_model_stats ( void ) const { return _model_stats; }
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+    };
+    
+    /// Display a NOMAD::Stats object.
     /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    void display ( const NOMAD::Display & out ) const;
-  };
-
-  /// Display a NOMAD::Stats object.
-  /**
      \param out The NOMAD::Display object               -- \b IN.
      \param s   The NOMAD::Stats object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
-					      const NOMAD::Stats   & s     ) {
-    s.display ( out );
-    return out;
-  }
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
+                                               const NOMAD::Stats   & s     )
+    {
+        s.display ( out );
+        return out;
+    }
 }
 
 #endif
diff --git a/src/TGP_Model.cpp b/src/TGP_Model.cpp
deleted file mode 100644
index b5005f6..0000000
--- a/src/TGP_Model.cpp
+++ /dev/null
@@ -1,1551 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
-/*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
-/*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
-/*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
-/*                                                                                     */
-/*  Contact information:                                                               */
-/*    Ecole Polytechnique de Montreal - GERAD                                          */
-/*    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  */
-/*    e-mail: nomad@gerad.ca                                                           */
-/*    phone : 1-514-340-6053 #6928                                                     */
-/*    fax   : 1-514-340-5665                                                           */
-/*                                                                                     */
-/*  This program is free software: you can redistribute it and/or modify it under the  */
-/*  terms of the GNU Lesser General Public License as published by the Free Software   */
-/*  Foundation, either version 3 of the License, or (at your option) any later         */
-/*  version.                                                                           */
-/*                                                                                     */
-/*  This program is distributed in the hope that it will be useful, but WITHOUT ANY    */
-/*  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    */
-/*  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   */
-/*                                                                                     */
-/*  You should have received a copy of the GNU Lesser General Public License along     */
-/*  with this program. If not, see <http://www.gnu.org/licenses/>.                     */
-/*                                                                                     */
-/*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
-/*-------------------------------------------------------------------------------------*/
-/**
-  \file   TGP_Model.cpp
-  \brief  TGP (Bayesian treed Gaussian process) model for all outputs (implementation)
-  \author Sebastien Le Digabel
-  \date   2011-02-07
-  \see    TGP_Model.hpp
-*/
-
-#ifndef USE_TGP
-
-int TGP_DUMMY; // avoids that TGP_Model.o has no symbols with ranlib
-
-#else
-
-#include "TGP_Model.hpp"
-
-/*-----------------------------------*/
-/*          constructor 1/2          */
-/*-----------------------------------*/
-NOMAD::TGP_Model::TGP_Model ( int                                        n0   ,
-			      const std::vector<NOMAD::bb_output_type> & bbot ,
-			      const NOMAD::Display                     & out  ,
-			      NOMAD::TGP_mode_type                       mode   )
-  : _out            ( out     ) ,
-    _bbot           ( bbot    ) ,
-    _p              ( 0       ) ,
-    _n0             ( n0      ) ,
-    _n              ( 0       ) ,
-    _n_XX           ( 0       ) ,
-    _av_index       ( NULL    ) ,
-    _fv_index       ( NULL    ) ,
-    _X              ( NULL    ) ,
-    _XX             ( NULL    ) ,
-    _Ds2x           ( NULL    ) ,
-    _improv         ( NULL    ) ,
-    _model_computed ( false   ) ,
-    _nep_flag       ( false   ) ,
-    _tgp_mode       ( mode    ) ,
-    _tgp_models     ( NULL    ) ,
-    _tgp_rect       ( NULL    ) ,
-    _tgp_linburn    ( true    ) ,
-    _usr_pmax       ( -1      ) ,
-    _tgp_verb       ( false   )
-{
-  _usr_BTE[0] = _usr_BTE[1] = _usr_BTE[2] = -1;
-
-  // user mode: this is not the good constructor to call:
-  if ( mode == NOMAD::TGP_USER )
-    throw NOMAD::Exception ( "TGP_Model.cpp" , __LINE__ ,
-	  "this constructor only accepts fast or precise TGP modes" );
-
-  _error_str = "NOMAD::TGP_Model::set_X() has not been called";
-}
-
-/*--------------------------------------------------------*/
-/*  constructor 2/2 (with user BTE and pmax and no bbot)  */
-/*--------------------------------------------------------*/
-NOMAD::TGP_Model::TGP_Model ( int                    n0      ,
-			      const NOMAD::Display & out     ,
-			      int                    BTE[3]  ,
-			      bool                   linburn ,
-			      int                    pmax    ,
-			      bool                   verb      )
-  : _out            ( out             ) ,
-    _p              ( 0               ) ,
-    _n0             ( n0              ) ,
-    _n              ( 0               ) ,
-    _n_XX           ( 0               ) ,
-    _av_index       ( NULL            ) ,
-    _fv_index       ( NULL            ) ,
-    _X              ( NULL            ) ,
-    _XX             ( NULL            ) ,
-    _Ds2x           ( NULL            ) ,
-    _improv         ( NULL            ) ,
-    _model_computed ( false           ) ,
-    _nep_flag       ( false           ) ,
-    _tgp_mode       ( NOMAD::TGP_USER ) ,
-    _tgp_models     ( NULL            ) ,
-    _tgp_rect       ( NULL            ) ,
-    _tgp_linburn    ( linburn         ) ,
-    _usr_pmax       ( pmax            ) ,
-    _tgp_verb       ( verb            )
-{
-
-  // user BTE parameters:
-  _usr_BTE[0] = BTE[0];
-  _usr_BTE[1] = BTE[1];
-  _usr_BTE[2] = BTE[2];
-
-  // default bbot: just one objective output:
-  _bbot.push_back ( NOMAD::OBJ );
-
-  _error_str  = "NOMAD::TGP_Model::set_X() has not been called";
-}
-
-/*--------------------------------------------*/
-/*                 destructor                 */
-/*--------------------------------------------*/
-NOMAD::TGP_Model::~TGP_Model ( void )
-{
-  clear();
-
-  if ( _Ds2x ) {
-    int i , m = _bbot.size();
-    for ( i = 0 ; i < m ; ++i )
-      if ( _Ds2x[i] )
-	delete [] _Ds2x[i];
-    delete [] _Ds2x;
-  }
-
-  if ( _improv )
-    delete [] _improv;
-}
-
-/*--------------------------------------------*/
-/*           clear memory (private)           */
-/*--------------------------------------------*/
-/*  members that depend only on constructor   */
-/*  arguments are not reseted here            */
-/*--------------------------------------------*/
-void NOMAD::TGP_Model::clear ( void )
-{
-  int i;
-
-  if ( _av_index ) {
-    delete [] _av_index;
-    _av_index = NULL;
-  }
-
-  if ( _fv_index ) {
-    delete [] _fv_index;
-    _fv_index = NULL;
-  }
-
-  if ( _X ) {
-    for ( i = 0 ; i < _p ; ++i )
-      delete [] _X[i];
-    delete [] _X;
-    _X = NULL;
-  }
-
-  if ( _XX ) {
-    for ( i = 0 ; i < _n_XX ; ++i )
-      delete [] _XX[i];
-    delete [] _XX;
-    _XX = NULL;
-  }
-
-  if ( _tgp_models ) {
-    int m = _bbot.size();
-    for ( i = 0 ; i < m ; ++i )
-      if ( _tgp_models[i] ) {
-	delete _tgp_models[i];
-      }
-    delete [] _tgp_models;
-    _tgp_models = NULL;
-  }
-
-  if ( _tgp_rect ) {
-    delete_matrix ( _tgp_rect );
-    _tgp_rect = NULL;
-  }
-
-  _error_str.clear();
-  _lb.clear();
-  _ub.clear();
-  _fv.clear();
-  
-  _p = _n = _n_XX = 0;
-
-  _model_computed = false;
-}
-
-/*--------------------------------------------*/
-/*      set the interpolation set X (1/2)     */
-/*--------------------------------------------*/
-bool NOMAD::TGP_Model::set_X ( const NOMAD::Cache & cache     , // only truth evals
-			       const NOMAD::Point * center    , // the incumbent
-			       int                  seed      ,
-			       bool                 remove_fv   )
-{
-  std::vector<const NOMAD::Eval_Point *> X;
-  
-  const NOMAD::Eval_Point * cur = cache.begin();
-  while ( cur ) {
-    X.push_back ( cur );
-    cur = cache.next();
-  }
-
-  return set_X ( X , center , seed , remove_fv );
-}
-
-/*--------------------------------------------*/
-/*      set the interpolation set X (2/2)     */
-/*--------------------------------------------*/
-bool NOMAD::TGP_Model::set_X
-( const std::vector<const NOMAD::Eval_Point *> & X         ,
-  const NOMAD::Point                           * center    ,
-  int                                            seed      ,
-  bool                                           remove_fv   )
-{
-  clear();
-  _nep_flag = false;
-
-  if ( X.size() <= 1 ) {
-    _error_str = ( X.empty() ) ?
-      "interpolation set X is empty" : "only one point in interpolation set X";
-    _nep_flag = true;
-    return false;
-  }
-
-  // filter and sort X:
-  std::list<const NOMAD::Eval_Point *> filtered_X;
-  _p = filter_and_sort_X ( X , center , filtered_X );
-
-  if ( _p == 0 ) {
-    _error_str = "no valid interpolation point";
-    _nep_flag  = true;
-    return false;
-  }
-
-  int  pmin , pmax;
-  bool valid = false;
-
-  while ( !valid ) {
-
-    _n = check_fixed_variables ( filtered_X , remove_fv );
-
-    if ( _n <= 1 ) {
-      _error_str = ( _n == 0 ) ?
-	"only fixed variables" : "interpolation set of dimension 1";
-      return false;
-    }
-
-    // get the limits pmin <= p <= pmax:
-    if ( !get_p_limits ( _n , pmin , pmax ) )
-      return false;
-
-    if ( _p < pmin ) {
-      std::ostringstream oss;
-      oss << "not enough interpolation points ("
-	  << _p << "<=" << pmin << ")";
-      _error_str = oss.str();
-      _nep_flag  = true;
-      return false;
-    }
-
-    // reduce the number of interpolation points:
-    if ( _p > pmax ) {
-      filtered_X.resize ( pmax );
-      _p    = pmax;
-      valid = false;
-    }
-
-    // the interpolation set has a valid size:
-    else
-      valid = true;
-  }
-
-  // display limits on p:
-#ifdef TGP_DEBUG
-  _out << std::endl
-       << "number of interpolation points: "
-       << pmin << " <= p=" << _p << " <= " << pmax
-       << std::endl;
-#endif
-
-  // create interpolation matrix X:
-  int i = 0 , j;
-  _X = new double * [_p];
-
-  std::list<const NOMAD::Eval_Point *>::const_iterator
-    it , end = filtered_X.end();
-  for ( it = filtered_X.begin() ; it != end ; ++it , ++i ) {
-    _X[i] = new double[_n];
-    for ( j = 0 ; j < _n ; ++j )
-      _X[i][j] = (**it)[_fv_index[j]].value();
-  }
-
-  // check that X is of full rank:
-  if ( !NOMAD::TGP_Model::check_full_rank ( _X , _p , _n ) ) {
-    _error_str = "X is not of full rank";
-    return false;
-  }
-   
-  // construct individual TGP models (one for each output):
-  int m = _bbot.size();
-  _tgp_models = new NOMAD::TGP_Output_Model * [m];
-  for ( i = 0 ; i < m ; ++i ) {
-    _tgp_models[i] = NULL;
-    if ( _bbot[i] == NOMAD::OBJ || NOMAD::bbot_is_constraint(_bbot[i]) )
-      _tgp_models[i] = new NOMAD::TGP_Output_Model ( filtered_X ,
-						     i          ,
-						     seed       ,
-						     _out         );
-  }
-
-  return _error_str.empty();
-}
-
-/*----------------------------------------------------*/
-/*     get the limits pmin <= p <= pmax (private)     */
-/*----------------------------------------------------*/
-bool NOMAD::TGP_Model::get_p_limits ( int n , int & pmin , int & pmax )
-{
-  if ( n <= 0 ) {
-    _error_str = "bad value of n for the computation of pmin and pmax";
-    return false;
-  }
-
-  // TGP fast mode:
-  // --------------
-  //
-  // example of some values for pmin and pmax:
-  //
-  //   n pmin pmax
-  //
-  //   2    7   30
-  //   3    8   30
-  //   4    9   30
-  //   5   10   30
-  //   6   11   32
-  //   7   12   35
-  //   8   13   37
-  //   9   14   40
-  //  10   15   42
-  //  20   25   60
-  //  50   55   94
-  //  55   60   99
-  //  56   61  100
-  //  57   62  100
-  //  95  100  100
-  //  96  101  101
-  // 100  105  105
-
-  if ( _tgp_mode == NOMAD::TGP_FAST ) {
-    pmin = n+5;
-    
-    pmax = static_cast<int> ( floor ( sqrt(180.0*n) ) );
-
-    if ( pmax > 100 )
-      pmax = 100;
-    
-    if ( pmax < 30 )
-      pmax = 30;
-
-    if ( pmax < pmin )
-      pmax = pmin;
-  
-    return true;
-  }
-
-  // TGP precise mode: pmin=n+1 and pmax=100
-  // -----------------
-  if ( _tgp_mode == NOMAD::TGP_PRECISE ) {
-    pmin = n+1;
-    pmax = 100;
-    return true;
-  }
-
-  // TGP user mode: pmin=n+1 and pmax is user decided with constructor 2/2
-  // --------------
-  if ( _tgp_mode == NOMAD::TGP_USER ) {
-    pmin = n+1;
-    pmax = _usr_pmax;
-    if ( pmax < pmin ) {
-      std::ostringstream oss;
-      oss << "user pmax value must be > " << n;
-      _error_str = oss.str();
-      return false;
-    }
-    return true;
-  }
-
-  return true;
-}
-
-/*----------------------------------------------*/
-/*     get the TGP BTE parameters (private)     */
-/*----------------------------------------------*/
-bool NOMAD::TGP_Model::get_BTE ( int BTE[3] )
-{
-  // fast TGP mode:
-  // --------------
-  // . if p=pmin, then B=2000
-  // . if p=pmax, then B=1000
-  // . if pmin<p<pmax, a linear relation is used
-  // . B is rounded so that 10 divides it
-  // . T=3B
-  // . E=10 (E divides T-B)
-  if ( _tgp_mode == NOMAD::TGP_FAST ) {
-
-    int pmin , pmax;
-    get_p_limits ( _n , pmin , pmax );
-    
-    double a = 1000.0 / (pmin-pmax);
-    double b = 2000 - a * pmin;
-
-    BTE[0] = static_cast<int> ( 10.0 * floor ( (a * _p + b) / 10.0 ) );
-    BTE[1] = 3*BTE[0];
-    BTE[2] = 10;
-  }
-
-  // precise TGP mode:
-  // -----------------
-  else if ( _tgp_mode == NOMAD::TGP_PRECISE ) {
-    BTE[0] = 2000;
-    BTE[1] = 7000;
-    BTE[2] = 2;
-  }
-
-  // user mode:
-  // ----------
-  else {
-    BTE[0] = _usr_BTE[0];
-    BTE[1] = _usr_BTE[1];
-    BTE[2] = _usr_BTE[2];
-   
-    // check the user BTE parameters:
-    if ( BTE[0] <= 0      ||
-	 BTE[1] <= 0      ||
-	 BTE[2] <= 0      ||
-	 BTE[1] <= BTE[0]    ) {
-      _error_str = "error with user BTE";
-      return false;
-    }
-  }
-
-  return true;
-}
-
-/*--------------------------------------------------------------*/
-/*  compute the ranges, check the fixed variables, set the      */
-/*  different indexes, and return the number of free variables  */
-/*  (private)                                                   */
-/*--------------------------------------------------------------*/
-int NOMAD::TGP_Model::check_fixed_variables
-( const std::list<const NOMAD::Eval_Point *> & X          ,
-  bool                                         remove_fv    )
-{
-
-  int i;
-
-  if ( !_av_index ) {
-    _av_index = new int [_n0];
-    for ( i = 0 ; i < _n0 ; ++i )
-      _av_index[i] = -1;
-  }
-
-  _lb = NOMAD::Point ( _n0 );
-  _ub = NOMAD::Point ( _n0 );
-  _fv = NOMAD::Point ( _n0 );
-
-  // compute ranges:
-  std::list<const NOMAD::Eval_Point *>::const_iterator it , end = X.end();
-  for ( it = X.begin() ; it != end ; ++it ) {
-    for ( i = 0 ; i < _n0 ; ++i ) {
-      if ( !_lb[i].is_defined() || (**it)[i] < _lb[i] )
-	_lb[i] = (**it)[i];
-      if ( !_ub[i].is_defined() || (**it)[i] > _ub[i] )
-	_ub[i] = (**it)[i];
-    }
-  }
-
-  // compute n (number of free variables), the fixed variables, and the indexes:
-  int n = 0;
-
-  std::vector<int> fv_index_tmp;
-  for ( i = 0 ; i < _n0 ; ++i ) {
-    if ( remove_fv && _lb[i] == _ub[i] ) {
-      _fv      [i] = _lb[i];
-      _av_index[i] = -1;
-    }
-    else {
-      fv_index_tmp.push_back ( i );
-      _av_index[i] = n++;
-    }
-  }
-
-  // complete the fixed var index construction:
-  if ( _fv_index )
-    delete [] _fv_index;
-  _fv_index = NULL;
-  
-  if ( n > 0 ) {
-    _fv_index = new int[n];
-    for ( i = 0 ; i < n ; ++i )
-      _fv_index[i] = fv_index_tmp[i];
-  }
-
-  return n;
-}
-
-/*--------------------------------------------------------*/
-/*  filter and sort an interpolation set X (private)      */
-/*    . the points are sorted relatively to the distance  */
-/*      from the center                                   */
-/*    . if the center is not defined (equal to NULL),     */
-/*      an alternate center is constructed                */
-/*--------------------------------------------------------*/
-int NOMAD::TGP_Model::filter_and_sort_X
-( const std::vector<const NOMAD::Eval_Point *> & X          ,
-  const NOMAD::Point                           * center     ,
-  std::list<const NOMAD::Eval_Point *>         & filtered_X   ) const
-{
-  NOMAD::Point              alt_center;
-  const NOMAD::Eval_Point * cur = NULL;
-  int                       p0  = X.size() , i;
-
-  // alternate center if center==NULL:
-  if ( !center ) {
-    int          j;
-    NOMAD::Point lb(_n0) , ub(_n0);
-    for ( i = 0 ; i < p0 ; ++i ) {  
-      cur = X[i];
-      if ( test_interpolation_point ( cur ) ) {
-	for ( j = 0 ; j < _n0 ; ++j ) {	  
-	  if ( !lb[j].is_defined() || (*cur)[j] < lb[j] )
-	    lb[j] = (*cur)[j];
-	  if ( !ub[j].is_defined() || (*cur)[j] > ub[j] )
-	    ub[j] = (*cur)[j];
-	}
-      }
-    }
-    alt_center = NOMAD::Point(_n0);
-    for ( j = 0 ; j < _n0 ; ++j )
-      alt_center[j] = ( lb[j] + ub[j] ) / 2.0;
-  }
-
-  // X_tmp is used to sort the points:
-  std::multiset<NOMAD::Model_Sorted_Point> tmp_X;
-
-  for ( i = 0 ; i < p0 ; ++i ) {
-
-    cur = X[i];
-
-    // test if the interpolation point is valid for interpolation:
-    if ( test_interpolation_point ( cur ) ) {
-
-      NOMAD::Model_Sorted_Point sorted_pt
-	( &NOMAD::Cache::get_modifiable_point (*cur) ,
-	  (center) ? *center : alt_center );
-
-      tmp_X.insert ( sorted_pt );
-    }
-  }
-
-  // copy the set X_tmp to filtered_X:
-  std::multiset<NOMAD::Model_Sorted_Point>::const_iterator it , end = tmp_X.end();
-  for ( it = tmp_X.begin() ; it != end ; ++it )
-    filtered_X.push_back ( static_cast<NOMAD::Eval_Point *> ( it->get_point() ) );
-
-  return filtered_X.size();
-}
-
-/*-----------------------------------------------------*/
-/*  tests to check if an interpolation point is valid  */
-/*  (private)                                          */
-/*-----------------------------------------------------*/
-bool NOMAD::TGP_Model::test_interpolation_point ( const NOMAD::Eval_Point * x ) const
-{
-  if ( !x || x->size() != _n0 || !x->is_eval_ok() )
-    return false;
-
-  int                  m   = _bbot.size();
-  const NOMAD::Point & bbo = x->get_bb_outputs();
-
-  if ( bbo.size() != m )
-    return false;
-
-  for ( int j = 0 ; j < m ; ++j )
-    if ( ( _bbot[j] == NOMAD::OBJ || NOMAD::bbot_is_constraint(_bbot[j])    ) &&
-	 ( !bbo[j].is_defined()   || bbo[j].abs() > NOMAD::MODEL_MAX_OUTPUT )    )
-      return false;
-
-  // point is valid:
-  return true;
-}
-
-/*--------------------------------------------*/
-/*  compute the models (one for each output)  */
-/*--------------------------------------------*/
-bool NOMAD::TGP_Model::compute
-( std::vector<NOMAD::Eval_Point *> & XX_pts            ,   // IN/OUT
-  bool                               compute_Ds2x      ,   // IN
-  bool                               compute_improv    ,   // IN
-  bool                               pred_outside_bnds   ) // IN
-{
-  _model_computed = false;
-
-  if ( !_error_str.empty() )
-    return false;
-
-  int i , j , index_obj = -1 , n_XX0 = XX_pts.size() , m = _bbot.size();
-
-  // check bbot: there must be exactly one objective:
-  for ( i = 0 ; i < m ; ++i ) {
-    if ( _bbot[i] == NOMAD::OBJ ) {    
-      if ( index_obj < 0 )
-	index_obj = i;
-      else {
-	_error_str = "more than one objective";
-	return false;
-      }
-    }
-  }
-  if ( index_obj < 0 ) {
-    _error_str = "no objective";
-    return false;
-  }
-
-  // check n_XX0:
-  if ( n_XX0 == 0 ) {
-    _error_str = "no user-provided prediction point";
-    return false;
-  }
-
-  // reset XX_pts outputs:
-  for ( i = 0 ; i < n_XX0 ; ++i ) {
-    for ( j = 0 ; j < m ; ++j )
-      XX_pts[i]->set_bb_output ( j , NOMAD::Double() );
-    XX_pts[i]->set_eval_status ( NOMAD::EVAL_FAIL );
-  }
-    
-  // create the XX matrix (prediction points):
-  std::vector<NOMAD::Eval_Point *> XX_filtered_pts;
-  NOMAD::Eval_Point              * cur2;
-
-  // the list of points has to be filtered:
-  NOMAD::Double tmp;
-  bool          chk;
-
-  for ( i = 0 ; i < n_XX0 ; ++i ) {
-    if ( XX_pts[i]->size() == _n0 ) {
-      cur2 = XX_pts[i];
-      chk  = true;      
-      for ( j = 0 ; j < _n0 ; ++j ) {
-	tmp = (*cur2)[j];
-	if ( !pred_outside_bnds && ( tmp < _lb[j] || tmp > _ub[j] ) ) {
-	  chk = false;
-	  break;
-	}
-      }
-      if ( chk )
-	XX_filtered_pts.push_back ( cur2 );
-    }
-  }
-
-  if ( _XX ) {
-    for ( i = 0 ; i < _n_XX ; ++i )
-      delete [] _XX[i];
-    delete [] _XX;
-  }
-
-  _n_XX = XX_filtered_pts.size();
-
-  if ( _n_XX == 0 ) {
-    _error_str = "no prediction point after filtering";
-    return false;
-  }
-
-  _XX = new double * [_n_XX];
-  for ( i = 0 ; i < _n_XX ; ++i ) {
-    _XX[i] = new double[_n];
-    for ( j = 0 ; j < _n ; ++j )
-      _XX[i][j] = (*XX_filtered_pts[i])[_fv_index[j]].value();
-  }
-
-  // Xsplit: X+XX: size = nsplit x n:
-  int       nsplit = _p + _n_XX;
-  double ** Xsplit = new double * [nsplit];
-  
-  for ( i = 0 ; i < _p ; ++i ) {
-    Xsplit[i] = new double [_n];
-    for ( j = 0 ; j < _n ; ++j )
-      Xsplit[i][j] = _X[i][j];  
-  }
-
-  for ( i = _p ; i < nsplit ; ++i ) {
-    Xsplit[i] = new double [_n];
-    for ( j = 0 ; j < _n ; ++j )
-      Xsplit[i][j] = _XX[i-_p][j]; 
-  }
-
-  // get the rectangle:
-  if ( _tgp_rect )
-    delete_matrix ( _tgp_rect );
-  _tgp_rect = get_data_rect ( Xsplit , nsplit , _n );
-
-  // TGP parameters:
-  Params   tgp_params ( _n );
-  double * dparams = NOMAD::TGP_Model::get_TGP_dparams ( _n );
-  tgp_params.read_double ( dparams );
-  delete [] dparams;
-
-  int BTE[3];
-  if ( !get_BTE ( BTE ) ) {
-    for ( i = 0 ; i < nsplit ; ++i )
-      delete [] Xsplit[i];
-    delete [] Xsplit;
-    return false;
-  }
-  
-  // display BTE:
-#ifdef TGP_DEBUG
-  _out << std::endl
-       << "BTE={" << BTE[0] << ", " << BTE[1] << ", " << BTE[2] << "}"
-       << std::endl;
-#endif
-
-  // compute the individual TGP models (one for each output):
-  double * ZZ = new double [_n_XX];
-
-  // Ds2x, expected reduction in predictive variance:
-  if ( _Ds2x == NULL ) {
-    _Ds2x = new double * [m];
-    for ( i = 0 ; i < m ; ++i )
-      _Ds2x[i] = NULL;
-  }
-  else {
-    for ( i = 0 ; i < m ; ++i )
-      if ( _Ds2x[i] ) {
-	delete [] _Ds2x[i];
-	_Ds2x[i] = NULL;
-      }
-  }
-
-  // improv, expected improvement of the objective (ranks):
-  if ( _improv ) {
-    delete [] _improv;
-    _improv = NULL;
-  }
-  if ( compute_improv )
-    _improv = new int [_n_XX];
-
-  for ( i = 0 ; i < m ; ++i ) {
-
-    if ( _tgp_models[i] ) {
-
-      _Ds2x[i] = ( compute_Ds2x ) ? new double [_n_XX] : NULL;
-
-      _tgp_models[i]->compute ( _X                              ,
-				_XX                             ,
-				Xsplit                          ,
-				_n                              ,
-				_n_XX                           ,
-				nsplit                          ,
-				&tgp_params                     ,
-				_tgp_rect                       ,
-				BTE                             ,
-				_tgp_linburn                    ,
-				_tgp_verb                       ,
-				ZZ                              ,
-				_Ds2x[i]                        ,
-				(i==index_obj) ? _improv : NULL   );
-
-      // set XX_pts outputs #i:
-      for ( j = 0 ; j < _n_XX ; ++j ) {
-	XX_filtered_pts[j]->set_bb_output   ( i , ZZ[j]      );
-	XX_filtered_pts[j]->set_eval_status ( NOMAD::EVAL_OK );
-      }
-
-      // check if TGP has been interrupted:
-      if ( NOMAD::TGP_Output_Model::get_force_quit() ) {
-	_error_str = "TGP has been interrupted with ctrl-c";
-	break;
-      }
-    }
-  }
-
-  // clear memory:
-  for ( i = 0 ; i < nsplit ; ++i )
-    delete [] Xsplit[i];
-  delete [] Xsplit;
-  delete [] ZZ;
-
-  _model_computed = _error_str.empty();
-
-  return _model_computed;
-}
-
-/*--------------------------------------------*/
-/*           prediction at one point          */
-/*         (x can be of size _n or _n0)       */
-/*--------------------------------------------*/
-bool NOMAD::TGP_Model::predict ( NOMAD::Eval_Point & x , bool pred_outside_bnds )
-{
-  if ( !_error_str.empty() )
-    return false;
-
-  if ( !_model_computed ) {
-    _error_str = "NOMAD::TGP_Model::compute() has not been called";
-    return false;
-  }
-
-  int i , i0 , ix , m = x.get_m() , nx = x.size();
-
-  // reset point outputs:
-  x.set_eval_status ( NOMAD::EVAL_FAIL );
-  for ( i = 0 ; i < m ; ++i )
-    x.set_bb_output ( i , NOMAD::Double() );
-  
-  // check dimensions:
-  if ( m != static_cast<int>(_bbot.size()) ||
-       ( nx != _n0 && nx != _n ) ) {
-    _error_str = "predict error: bad x dimensions";
-    return false;
-  }
-
-  double ZZ , * XX = new double[_n];
-
-  // set the coordinates and check the bounds:
-  for ( i = 0 ; i < _n ; ++i ) {
-   
-    ix = ( nx == _n0 ) ? _fv_index[i] : i;
-
-    if ( !pred_outside_bnds ) {
-      i0 = _fv_index[i];
-      if ( x[ix] < _lb[i0] || x[ix] > _ub[i0] ) {
-	delete [] XX;
-	return false; // this is not an error
-      }
-    }
-
-    XX[i] = x[ix].value();
-  }
-
-  // predictions (one for each output):
-  for ( i = 0 ; i < m ; ++i )
-    if ( _tgp_models[i] ) {
-      if ( !_tgp_models[i]->predict ( XX        ,
-				      _n        ,
-				      ZZ        ,
-				      _tgp_rect   ) ) {
-	std::ostringstream oss;
-	oss << "predict error: problem with model #" << i;
-	_error_str = oss.str();
-	break;
-      }
-      x.set_bb_output ( i , ZZ );
-    }
-
-  delete [] XX;
-
-  if ( !_error_str.empty() ) {
-    x.set_eval_status ( NOMAD::EVAL_FAIL );
-    return false;
-  }
-
-  x.set_eval_status ( NOMAD::EVAL_OK );
-  return true; 
-}
-
-/*-----------------------------------------------------------------*/
-/*  this function checks if the p x n matrix X is of full rank by  */
-/*  applying the Cholesky decomposition to the sym. def. pos.      */
-/*  nxn matrix X'X                                                 */
-/*  (static, private)                                              */
-/*-----------------------------------------------------------------*/
-bool NOMAD::TGP_Model::check_full_rank ( double ** X , int p , int n ) {
-
-  int i , j , k , ki , kii , kij , kj , kji , nn12 = n*(n+1)/2;
-
-  // create XTX (X'X):
-  double * XTX = new double [nn12];
-  for ( i = 0 ; i < n ; ++i ) {
-    ki = i*(i+1)/2;
-    for ( j = 0 ; j <= i ; ++j ) {
-      kij = ki + j;
-      XTX[kij] = 0.0;
-      for ( k = 0 ; k < p ; ++k )
-	XTX[kij] += X[k][i] * X[k][j];
-    }
-  }
-
-  // create chol:
-  double * chol = new double [nn12] , tmp1 , tmp2 , eps = 1e-10;
-  
-  // Choleski decomposition:
-  for ( i = 0 ; i < n ; ++i ) {
-
-    ki   = i*(i+1)/2;
-    kii  = ki+i;
-    tmp1 = XTX[kii];
-    for ( k = 0 ; k < i ; ++k )
-      tmp1 -= pow(chol[ki+k],2.0);
-    if ( fabs ( tmp1 ) <= eps ) {
-      delete [] XTX;
-      delete [] chol;
-      return false;
-    }
-
-    if ( i == n-1 )
-      break;
-
-    tmp1 = sqrt(tmp1);
-    chol[kii] = tmp1;
-    
-    for ( j = i+1 ; j < n ; ++j ) {
-      kj   = j*(j+1)/2;
-      kji  = kj+i;     
-      tmp2 = XTX[kji];
-      for ( k = 0 ; k < i ; ++k )
-	tmp2 -= chol[ki+k]*chol[kj+k];
-      chol[kji] = tmp2/tmp1;
-    }
-  }
-    
-  delete [] XTX;
-  delete [] chol;
-
-  return true;
-}
-
-/*----------------------------------------------------------------*/
-/*     compute model h and f values given one blackbox output     */
-/*----------------------------------------------------------------*/
-void NOMAD::TGP_Model::eval_hf ( const NOMAD::Point  & bbo    ,
-				 const NOMAD::Double & h_min  ,
-				 NOMAD::hnorm_type     h_norm ,
-				 NOMAD::Double       & h      ,
-				 NOMAD::Double       & f        ) const
-{
-  f.clear();
-  h = 0.0;
-
-  int m = bbo.size();
-
-  if ( m != static_cast<int>(_bbot.size()) )
-    throw NOMAD::Exception ( "TGP_Model.cpp" , __LINE__ ,
-	  "TGP_Model::eval_hf() called with an invalid bbo argument" );
-  
-  NOMAD::Double bboi;
-
-  for ( int i = 0 ; i < m ; ++i ) {
-    
-    bboi = bbo[i];
-
-    if ( bboi.is_defined() ) {
-      
-      if ( _bbot[i] == NOMAD::EB || _bbot[i] == NOMAD::PEB_E ) {
-	  
-	if ( bboi > h_min ) {
-	  h.clear();
-	  return;
-	}
-      }
-	
-      else if ( ( _bbot[i] == NOMAD::FILTER ||
-		  _bbot[i] == NOMAD::PB     ||
-		  _bbot[i] == NOMAD::PEB_P     ) ) {
-	if ( bboi > h_min ) {
-	  switch ( h_norm ) {
-	  case NOMAD::L1:
-	    h += bboi;
-	    break;
-	  case NOMAD::L2:
-	    h += bboi * bboi;
-	    break;
-	  case NOMAD::LINF:
-	    if ( bboi > h )
-	      h = bboi;
-	    break;
-	  }
-	}
-      }
-	
-      else if ( _bbot[i] == NOMAD::OBJ )
-	f = bboi;
-    }
-   
-  }
-
-  if ( h_norm == NOMAD::L2 )
-    h = h.sqrt();
-}
-
-/*---------------------------------------*/
-/*      compute the TGP dparam array     */
-/*      (static, private)                */
-/*---------------------------------------*/
-double * NOMAD::TGP_Model::get_TGP_dparams ( int n ) {
-
-  double * dparams  = new double [n*(n+3)+41];
-  int      i , j , k;
-
-  // tree (p <- c(as.numeric(params$tree))):
-  dparams[0] = 0.5;
-  dparams[1] = 2.0;
-  dparams[2] = n+2;
-  if ( dparams[2] < 10 )
-    dparams[2] = 10;
-  dparams[3] = 1.0;
-  dparams[4] = n;
-  
-  // params$meanfn == "linear" :
-  dparams[5] = 0.0;
-
-  // params$bprior == "bflat" :
-  dparams[6] = 2.0;
-
-  // p <- c(p, as.numeric(params$beta)) : n+1 zeros
-  k = 6;
-  for ( i = 0 ; i <= n ; ++i )
-    dparams[++k] = 0.0;
-
-  // p <- c(p, as.numeric(params$Wi)) : I_{n+1}
-  for ( i = 0 ; i <= n ; ++i )
-    for ( j = 0 ; j <= n ; ++j )
-      dparams[++k] = (i!=j) ? 0.0 : 1.0;
-
-  // p <- c(p, as.numeric(params$s2tau2)):
-  dparams[++k] = 1.0;
-  dparams[++k] = 1.0;
-
-  // p <- c(p, as.numeric(params$s2.p)):
-  dparams[++k] =  5.0;
-  dparams[++k] = 10.0;
-
-  // p <- c(p, as.numeric(params$s2.lam)):
-  dparams[++k] =  0.2;
-  dparams[++k] = 10.0;
-
-  // p <- c(p, as.numeric(params$tau2.p)):
-  dparams[++k] =  5.0;
-  dparams[++k] = 10.0;
-
-  // p <- c(p, as.numeric(params$tau2.lam)):
-  dparams[++k] = 0.2;
-  dparams[++k] = 0.1;
-
-  // params$corr == "expsep" :
-  dparams[++k] = 1.0;
-
-  // p <- c(p, as.numeric(params$gd)):
-  dparams[++k] = 0.1;
-  dparams[++k] = 0.5;
-
-  // p <- c(p, as.numeric(params$nug.p)):
-  dparams[++k] = 1.0;
-  dparams[++k] = 1.0;
-  dparams[++k] = 1.0;
-  dparams[++k] = 1.0;
-
-  // if (params$nug.lam[1] == "fixed"), p <- c(p, rep(-1, 4)) :
-  dparams[++k] = -1.0;
-  dparams[++k] = -1.0;
-  dparams[++k] = -1.0;
-  dparams[++k] = -1.0;
-
-  // p <- c(p, as.numeric(params$gamma)):
-  dparams[++k] = 0.0;
-  dparams[++k] = 0.2;
-  dparams[++k] = 0.7;
-
-  // p <- c(p, as.numeric(params$d.p)):
-  dparams[++k] =  1.0;
-  dparams[++k] = 20.0;
-  dparams[++k] = 10.0;
-  dparams[++k] = 10.0;
-
-  // if (params$d.lam[1] == "fixed"), p <- c(p, rep(-1, 4)):
-  dparams[++k] = -1.0;
-  dparams[++k] = -1.0;
-  dparams[++k] = -1.0;
-  dparams[++k] = -1.0;
-
-  return dparams;
-}
-
-/*--------------------------------------------*/
-/*       display the interpolation set X      */
-/*--------------------------------------------*/
-void NOMAD::TGP_Model::display_X ( const NOMAD::Display & out           ,
-				   int                    display_limit   ) const
-{
-  if ( _p == 0 || !_X ) {
-    out << "no interpolation points" << std::endl;
-    return;
-  }
-
-  int i , j;
-  int m  = _bbot.size();
-  int i0 = ( display_limit > 0 ) ? _p - display_limit : 0;
-  NOMAD::Point x(_n) , bbo(m);
-
-  out << NOMAD::open_block ( "interpolation points (X)");
-
-  if ( i0 > 0 )
-    out << "..." << std::endl;
-  else if ( i0 < 0 )
-    i0 = 0;
-
-  for ( i = i0 ; i < _p ; ++i ) {
-
-    for ( j = 0 ; j < _n ; ++j )
-      x[j] = _X[i][j];
-
-    bbo = NOMAD::Point(m);
-    if ( _tgp_models )
-      for ( j = 0 ; j < m ; ++j )
-	if ( _tgp_models[j] )
-	  bbo[j] = (_tgp_models[j]->get_Z())[i];
- 
-    out << "#";
-    out.display_int_w ( i , _p );
-    out << " x=(";
-    x.display ( out , " " , 15 , -1 );
-    out << " ) f(x)=[";
-    bbo.display ( out , " " , 15 , -1 );
-    out << " ]" << std::endl;
-  }
-  
-  std::ostringstream oss;
-  oss << "(size=" << _p << ")";
-  out << NOMAD::close_block ( oss.str() ) << std::endl;
-}
-
-/*---------------------------------------------------------*/
-/*  get the XX points with the largest expected reduction  */
-/*  in predictive variance, for each output                */
-/*  (no duplicates)                                        */
-/*---------------------------------------------------------*/
-void NOMAD::TGP_Model::get_Ds2x_points ( std::set<int> & pts_indexes ) const
-{
-  pts_indexes.clear();
-  if ( !_Ds2x || _n_XX == 0 )
-    return;
-
-  int i , j , k , m = _bbot.size();
-
-  for ( i = 0 ; i < m ; ++i )
-    if ( _Ds2x[i] ) {
-
-      NOMAD::Double max;
-      k = -1;
-      for ( j = 0 ; j < _n_XX ; ++j )
-	if ( !max.is_defined() || _Ds2x[i][j] > max ) {
-	  max = _Ds2x[i][j];
-	  k   = j;
-	}
-
-      if ( k >= 0 )
-	pts_indexes.insert ( k );
-    }
-}
-
-/*----------------------------------------------------------------------------*/
-/*  get the XX points with the largest expected improvement of the objective  */
-/*----------------------------------------------------------------------------*/
-void NOMAD::TGP_Model::get_improv_points ( std::list<int> & pts_indexes ) const
-{
-  pts_indexes.clear();
-  if ( !_improv || _n_XX == 0 )
-    return;
-
-  int            j;
-  NOMAD::Point * XX_pt;
-  std::multiset<NOMAD::Model_Sorted_Point> pts;
-  std::multiset<NOMAD::Model_Sorted_Point>::const_iterator it , end;
-
-  // 1. sort:
-  for ( j = 0 ; j < _n_XX ; ++j ) {   
-    XX_pt = new NOMAD::Point ( 1 );
-    (*XX_pt)[0] = j;
-    pts.insert ( NOMAD::Model_Sorted_Point ( XX_pt , _improv[j] ) );
-  }
-
-  // 2. construct pts_indexes (exclude points with improv >= n_XX):
-  end = pts.end();
-  for ( it = pts.begin() ; it != end ; ++it ) {
-    if ( it->get_dist() < _n_XX )
-      pts_indexes.push_back ( static_cast<int> ( (*it->get_point())[0].value() ) );
-    delete it->get_point();
-  }
-}
-
-/*--------------------------------------------------------------*/
-/*  display the expected improvement of the objective (improv)  */
-/*  (better ranks are displayed first)                          */
-/*--------------------------------------------------------------*/
-void NOMAD::TGP_Model::display_improv ( const NOMAD::Display & out ,
-					int          display_limit   ) const
-{
-  if ( !_improv || _n_XX == 0 ) {
-    out << "improv has not been computed" << std::endl;
-    return;
-  }
-
-  int            j , k;
-  NOMAD::Point * XX_pt;
-  std::multiset<NOMAD::Model_Sorted_Point> pts;
-  std::multiset<NOMAD::Model_Sorted_Point>::const_iterator it , end;
-
-  // 1. sort:
-  for ( j = 0 ; j < _n_XX ; ++j ) {
-    
-    // construct a NOMAD::Point from matrix _XX:
-    XX_pt = new NOMAD::Point ( _fv );
-    for ( k = 0 ; k < _n0 ; ++k )
-      if ( _av_index[k] >= 0 )
-	(*XX_pt)[k] = _XX[j][_av_index[k]];
-    
-    // insert this point in the sorted list:
-    pts.insert ( NOMAD::Model_Sorted_Point ( XX_pt , _improv[j] ) );
-  }
-
-  // 2. display:
-  end = pts.end();
-  for ( j = 0 , it = pts.begin() ; it != end ; ++it , ++j ) {
-    
-    if ( display_limit <= 0 || j < display_limit ) {
-      out << "x=( ";
-      it->get_point()->display ( out , " " , 6 , -1 );
-      out << " ) improv=" << it->get_dist() << std::endl;
-    }
-
-    else if ( j == display_limit )
-      out << "..." << std::endl;
-
-    delete it->get_point();
-  }
-}
-
-/*----------------------------------------------------------------*/
-/*  display the expected reduction in predictive variance (Ds2x)  */
-/*  (larger values are displayed first)                           */
-/*----------------------------------------------------------------*/
-void NOMAD::TGP_Model::display_Ds2x ( const NOMAD::Display & out ,
-				      int          display_limit   ) const
-{
-  if ( !_Ds2x || _n_XX == 0 ) {
-    out << "matrix Ds2x has not been computed" << std::endl;
-    return;
-  }
-    
-  int            i , j , k , m = _bbot.size();
-  NOMAD::Point * XX_pt;
-  std::multiset<NOMAD::Model_Sorted_Point> pts;
-  std::multiset<NOMAD::Model_Sorted_Point>::const_iterator it , end;
-
-  for ( i = 0 ; i < m ; ++i ) {
-
-    if ( m > 1 ) {
-      std::ostringstream oss;
-      oss << "output #" << i;
-      out << NOMAD::open_block ( oss.str() );
-    }
-
-    if ( _Ds2x[i] ) {
-
-      // 1. sort:
-      for ( j = 0 ; j < _n_XX ; ++j ) {
-
-	// construct a NOMAD::Point from matrix _XX:
-	XX_pt = new NOMAD::Point ( _fv );
-	for ( k = 0 ; k < _n0 ; ++k )
-	  if ( _av_index[k] >= 0 )
-	    (*XX_pt)[k] = _XX[j][_av_index[k]];
-	
-	// insert this point in the sorted list:
-	pts.insert ( NOMAD::Model_Sorted_Point ( XX_pt , -_Ds2x[i][j] ) );
-      }
-
-      // 2. display:
-      end = pts.end();
-      for ( j = 0 , it = pts.begin() ; it != end ; ++it , ++j ) {
-    
-	if ( display_limit <= 0 || j < display_limit ) {
-	  out << "x=( ";
-	  it->get_point()->display ( out , " " , 6 , -1 );
-	  out << " ) Ds2x=" << it->get_dist()*-1.0 << std::endl;
-	}
-
-	else if ( j == display_limit )
-	  out << "..." << std::endl;
-
-	delete it->get_point();
-      }
-
-      pts.clear();
-    }
-    else
-      out << "NULL" << std::endl;
-
-    if ( m > 1 )
-      out.close_block();
-  }
-}
-
-/*-------------------------------------------------------*/
-/*  display the error stats for the interpolation set X  */
-/*-------------------------------------------------------*/
-void NOMAD::TGP_Model::display_X_errors ( const NOMAD::Display & out )
-{
-  if ( _p == 0 || !_X ) {
-    out << "no interpolation points" << std::endl;
-    return;
-  }
-
-  int               i , j , m = _bbot.size();
-  NOMAD::Point      min_err(m) , max_err(m) , avg_err(m,0.0) , sd_err(m,0.0);
-  NOMAD::Eval_Point x ( _n , m );
-  double         ** err = new double * [_p];
-
-  for ( i = 0 ; i < _p ; ++i ) {
-
-    err[i] = new double[m];
-
-    for ( j = 0 ; j < _n ; ++j )
-      x[j] = _X[i][j];
-
-    if ( predict ( x , true ) ) {
-
-      for ( j = 0 ; j < m ; ++j )
-	if ( _tgp_models[j] ) {
-
-	  // relative error (in %) for point #i and output #j:
-	  err[i][j] = ( x.get_bb_outputs()[j].rel_err((_tgp_models[j]->get_Z())[i])
-			* 100.0).value();
-
-	  // out << "f=" << (_tgp_models[j]->get_Z())[i] << " "
-	  //     << "m=" << x.get_bb_outputs()[j] << " err=" << err[i][j]
-	  //     << std::endl;
-
-	  if ( !min_err[j].is_defined() || err[i][j] < min_err[j].value() )
-	    min_err[j] = err[i][j];
-	  
-	  if ( !max_err[j].is_defined() || err[i][j] > max_err[j].value() )
-	    max_err[j] = err[i][j];
-	  
-	  avg_err[j] += err[i][j];
-	}
-    }
-    else {
-      for ( j = 0 ; j <= i ; ++j )
-	delete [] err[j];
-      delete [] err;
-      out << "cannot predict interpolation errors ("
-	  << _error_str << ")" << std::endl;
-      return;
-    }
-  }
-
-  for ( j = 0 ; j < m ; ++j )
-    if ( _tgp_models[j] ) {
-
-      // compute the median error:
-      NOMAD::Double med_err;
-      {	
-	if ( _p == 1 )
-	  med_err = err[0][j];
-	else if ( _p == 2 )
-	  med_err = ( err[0][j] + err[1][j] ) / 2.0;
-
-	else {
-	  std::multiset<double> sorted_errors;
-	  for ( i = 0 ; i < _p ; ++i )
-	    sorted_errors.insert ( err[i][j] );
-	  std::multiset<double>::const_iterator it , end = sorted_errors.end();
-	  --end;
-	  for ( it = sorted_errors.begin() , i = 0 ; it != end ; ++it , ++i ) {
-	    if ( i == (_p+1)/2-1 ) {
-	      med_err = *it;
-	      if ( _p%2==0 ) {
-		++it;
-		med_err = ( med_err + *it ) / 2.0;
-	      }
-	      break;
-	    }
-	  }
-	}
-      }
-
-      // compute the mean and the standard deviation:
-      avg_err[j] /= _p;
-      for ( i = 0 ; i < _p ; ++i )
-	sd_err[j] += ( avg_err[j] - err[i][j] ).pow2();
-      sd_err[j] = (sd_err[j] / _p).sqrt();
-
-      // display:
-      if ( m > 1 ) {
-	std::ostringstream oss;
-	oss << "output #" << j;
-	if ( _tgp_models[j]->is_fixed() )
-	  oss << " (fixed)";
-	else if ( _tgp_models[j]->is_binary() )
-	  oss << " (binary)";
-	out << NOMAD::open_block ( oss.str() );
-      }
-
-      out << "min   : ";
-      min_err[j].display ( out , "%6.2f" );
-      out << std::endl << "max   : ";
-      max_err[j].display ( out , "%6.2f" );
-      out << std::endl << "median: ";
-      med_err.display ( out , "%6.2f" );
-      out << std::endl << "mean  : ";
-      avg_err[j].display ( out , "%6.2f" );
-      out << std::endl << "sd    : ";
-      sd_err[j].display ( out , "%6.2f" );
-      out << std::endl;
-
-      if ( m > 1 )
-	out.close_block();
-    }
-
-  for ( i = 0 ; i < _p ; ++i )
-    delete [] err[i];
-  delete [] err;
-}
-
-/*--------------------------------------------*/
-/*                    display                 */
-/*--------------------------------------------*/
-void NOMAD::TGP_Model::display ( const NOMAD::Display & out ) const
-{
-  if ( !_error_str.empty() ) {
-    out << "error with model" << std::endl;
-    return;
-  }
-
-  int i , j;
-
-  // fixed variables:
-  out << "fixed_var = [ " << _fv << "]" << std::endl;
-  out << "av_index  = ";
-  if ( _av_index ) {
-    out << "[ ";
-    for ( i = 0 ; i < _n0 ; ++i )
-      out << _av_index[i] << " ";
-    out << "]" << std::endl;
-  }
-  else
-    out << "NULL" << std::endl;
-  out << "fv_index  = ";
-  if ( _fv_index ) {
-    out << "[ ";
-    for ( i = 0 ; i < _n ; ++i )
-      out << _fv_index[i] << " ";
-    out << "]" << std::endl;
-  }
-  else
-    out << "NULL" << std::endl;
-
-  // bounds:
-  out << "lb        = [ " << _lb << "]" << std::endl
-      << "ub        = [ " << _ub << "]" << std::endl
-      << std::endl;
-
-  // display X:
-  if ( !_X )
-    out << "X = NULL" << std::endl;
-  else {
-    out << "X = [";
-    for ( i = 0 ; i < _p ; ++i ) {
-      out << "\t";
-      for ( j = 0 ; j < _n ; ++j )
-	out << std::setw(15) << _X[i][j] << " ";
-      out << ( (i==_p-1) ? "]" : ";" ) << std::endl;
-    }
-    out << "size(X)=" << _p << "x" << _n << std::endl << std::endl;
-  }
-
-  // display XX:
-  if ( !_XX )
-    out << "XX = NULL" << std::endl;
-  else {
-    out << "XX = [";
-    for ( i = 0 ; i < _n_XX ; ++i ) {
-      out << "\t";
-      for ( j = 0 ; j < _n ; ++j )
-	out << std::setw(15) << _XX[i][j] << " ";
-      out << ( (i==_n_XX-1) ? "]" : ";" ) << std::endl;
-    }
-    out << "size(XX)=" << _n_XX << "x" << _n << std::endl << std::endl;
-  }
-
-  // display models:
-  out << std::endl;
-  if ( _tgp_models ) {
-    int m = _bbot.size();
-    for ( i = 0 ; i < m ; ++i ) {
-      if ( _tgp_models[i] ) {
-	std::ostringstream oss;
-	oss << "model #" << i;
-	out.open_block ( oss.str() );
-	_tgp_models[i]->display ( out );
-	out.close_block();
-      }
-      else
-	out << "model #" << i << ": NULL" << std::endl;
-      out << std::endl;
-    }
-  }
-  else
-    out << "no models" << std::endl << std::endl;
-}
-
-/*----------------------------------------------------------------*/
-/*           access to the width of the interpolation set         */
-/*----------------------------------------------------------------*/
-#ifdef MODEL_STATS
-NOMAD::Double NOMAD::TGP_Model::get_Yw ( void ) const
-{
-  NOMAD::Double Yw , tmp;
-  for ( int i = 0 ; i < _n0 ; ++i ) {
-    tmp = _ub[i]-_lb[i];
-    if ( !Yw.is_defined() || tmp > Yw )
-      Yw = tmp;
-  }
-  return Yw;
-}
-#endif
-
-#endif
diff --git a/src/TGP_Model.hpp b/src/TGP_Model.hpp
deleted file mode 100644
index 78cf20c..0000000
--- a/src/TGP_Model.hpp
+++ /dev/null
@@ -1,397 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
-/*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
-/*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
-/*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
-/*                                                                                     */
-/*  Contact information:                                                               */
-/*    Ecole Polytechnique de Montreal - GERAD                                          */
-/*    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  */
-/*    e-mail: nomad@gerad.ca                                                           */
-/*    phone : 1-514-340-6053 #6928                                                     */
-/*    fax   : 1-514-340-5665                                                           */
-/*                                                                                     */
-/*  This program is free software: you can redistribute it and/or modify it under the  */
-/*  terms of the GNU Lesser General Public License as published by the Free Software   */
-/*  Foundation, either version 3 of the License, or (at your option) any later         */
-/*  version.                                                                           */
-/*                                                                                     */
-/*  This program is distributed in the hope that it will be useful, but WITHOUT ANY    */
-/*  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    */
-/*  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   */
-/*                                                                                     */
-/*  You should have received a copy of the GNU Lesser General Public License along     */
-/*  with this program. If not, see <http://www.gnu.org/licenses/>.                     */
-/*                                                                                     */
-/*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
-/*-------------------------------------------------------------------------------------*/
-/**
-  \file   TGP_Model.hpp
-  \brief  TGP (Bayesian treed Gaussian process) model for all outputs (headers)
-  \author Sebastien Le Digabel
-  \date   2011-02-07
-  \see    TGP_Model.cpp
-*/
-#ifdef USE_TGP
-
-#ifndef __TGP_MODEL__
-#define __TGP_MODEL__
-
-#include "TGP_Output_Model.hpp"
-#include "Model_Sorted_Point.hpp"
-#include "Cache.hpp"
-
-namespace NOMAD {
-
-  /// TGP models for all outputs.
-  class TGP_Model : private NOMAD::Uncopyable {
-
-  private:
-
-    const NOMAD::Display & _out;  ///< Display.
-
-    std::vector<NOMAD::bb_output_type> _bbot; ///< Blackbox output types.
-
-    std::string  _error_str; ///< Error string.
-
-    int          _p;    ///< Number of interpolation points.
-    
-    int          _n0;   ///< Original dimension (all variables).
-    int          _n;    ///< Number of free variables (\c n \c <= \c n0).
-
-    int          _n_XX; ///< Number of points (rows) in \c XX.
-
-    NOMAD::Point _lb;   ///< Lower bounds for \c X    (size=\c n0).
-    NOMAD::Point _ub;   ///< Upper bounds for \c X    (size=\c n0).
-    NOMAD::Point _fv;   ///< Fixed variables for \c X (size=\c n0).
-
-    int   * _av_index; ///< All variables index.
-    int   * _fv_index; ///< Free variables index.
-    //
-    // avi[j] in [0;n -1], j in [0;n0-1]; avi[j]=-1: var j fixed
-    // fvi[j] in [0;n0-1], j in [0;n-1]
-    //
-    // example with n0=3 and n=2 (second variable is fixed):
-    //   _av_index: [ 0 -1 1 ]
-    //   _fv_index: [ 0 2 ]
-
-    double ** _X;      ///< Interpolation matrix \c X (size = \c p \c x \c n).
-    
-    double ** _XX;     ///< Points at which evaluate the model (prediction points).
-    
-    double ** _Ds2x;   ///< Expected reduction in predictive variance (\c Ds2x).
-
-    int     * _improv; ///< Expected improvement (ranks).
-
-    bool _model_computed;            ///< Flag to check if the model has been computed.
-    bool _nep_flag;                  ///< 'Not enought points' (nep) flag.
-
-    NOMAD::TGP_mode_type       _tgp_mode;   ///< TGP mode (fast, precise, or user).
-
-    NOMAD::TGP_Output_Model ** _tgp_models; ///< TGP models (one for each output).
-    //
-    // tgp_models[i] may be NULL if bbot[i]
-    // is not an objective or a constraint
-
-    double ** _tgp_rect;       ///< TGP rectangle (bounds).
-
-    int       _usr_BTE[3];     ///< User \c BTE parameters (TGP default: 2000,7000,2).
-
-    bool      _tgp_linburn;    ///< TGP \c linburn parameter.
-
-    int       _usr_pmax;       ///< User max number of interpolation points in \c X.
-
-    bool      _tgp_verb;       ///< Display (\c verb) parameter.
-
-    /// Clear memory.
-    void clear ( void );
-
-    /// Filter and sort the intepolation set \c X.
-    /**
-       \param  X          Original interpolation set (typically the cache) -- \b IN.
-       \param  center     Center of the model (may be NULL)                -- \b IN.
-       \param  filtered_X Filtered and sorted interpolation set            -- \b OUT.
-       \return The number of filtered interpolation points.
-    */
-    int filter_and_sort_X
-    ( const std::vector<const NOMAD::Eval_Point *> & X          ,
-      const NOMAD::Point                           * center     ,
-      std::list<const NOMAD::Eval_Point *>         & filtered_X   ) const;
-
-    /**
-       Compute the ranges, check the fixed variables, set the
-       different indexes, and return the number of free variables.
-       \param  X          Filtered and sorted interpolation set       -- \b IN.
-       \param  remove_fv  Set to \c true to eliminate fixed variables -- \b IN.
-       \return The number of free variables (member \c _n).
-    */
-    int check_fixed_variables ( const std::list<const NOMAD::Eval_Point *> & X         ,
-				bool                                         remove_fv   );
-
-    /// Tests to check if an interpolation point is valid for interpolation.
-    /**
-       \param  x The interpolation point -- \b IN.
-       \return A boolean equal to \c true if \c x is valid.
-    */
-    bool test_interpolation_point ( const NOMAD::Eval_Point * x ) const;
-
-    /// Get the limits on the interpolation set size \c p.
-    /**
-       \param  n     Number of free variables                              -- \b IN.
-       \param  pmin  Inf limit on \c p the number of interpolation points  -- \b OUT.
-       \param  pmax  Sup limit on \c p                                     -- \b OUT.
-       \return A boolean equal to \c true if the limits are valid.
-    */
-    bool get_p_limits ( int n , int & pmin , int & pmax );
-
-    /// Get the TGP \c BTE parameters.
-    /**
-       \param  BTE The BTE parameters -- \b OUT.
-       \return A boolean equal to \c true if the BTE parameters are valid.
-    */
-    bool get_BTE ( int BTE[3] );
-
-    /// Compute the TGP \c dparam array.
-    /**
-       \param  n Dimension -- \b IN.
-       \return A pointer to the \c dparam array.
-    */
-    static double * get_TGP_dparams ( int n );
-
-    /// Check if the interpolation matrix is of full rank.
-    /**
-       \param  X The \c X matrix    -- \b IN.
-       \param  p Number of rows     -- \b IN.
-       \param  n Number of columns  -- \b IN.
-       \return A boolean equal to \c true if \c X is of full rank.
-    */
-    static bool check_full_rank ( double ** X , int p , int n );
-
-  public:
-
-    /// Constructor 1/2.
-    /**
-       \param n0         Dimension including fixed variables -- \b IN.
-       \param bbot       Blackbox output types               -- \b IN.
-       \param out        Display object                      -- \b IN.
-       \param mode       TGP mode (fast or precise only)     -- \b IN.
-    */
-    explicit TGP_Model ( int                                        n0   ,
-			 const std::vector<NOMAD::bb_output_type> & bbot ,
-			 const NOMAD::Display                     & out  ,
-			 NOMAD::TGP_mode_type                       mode   );
-
-    /// Constructor 2/2 (with no blackbox output types; a value of \c m=1 is taken).
-    /**
-       This is the user TGP mode.
-       \param n0         Dimension including fixed variables        -- \b IN.
-       \param out        Display object                             -- \b IN.
-       \param BTE        TGP \c B, \c T, and \c E parameters        -- \b IN.
-       \param linburn    TGP \c linburn parameter                   -- \b IN.
-       \param pmax       Max number of interpolation points in \c X -- \b IN.
-       \param verb       TGP \c verb parameter                      -- \b IN.
-    */
-    explicit TGP_Model ( int                    n0      ,
-			 const NOMAD::Display & out     ,
-			 int                    BTE[3]  ,
-			 bool                   linburn ,
-			 int                    pmax    ,
-			 bool                   verb      );
-
-    /// Destructor.
-    virtual ~TGP_Model ( void );
-
-    /// Set the interpolation set \c X from a cache.
-    /**
-       \param  cache      Cache of true evaluations                           -- \b IN.
-       \param  center     Center of the model (the incumbent; may be \c NULL) -- \b IN.
-       \param  seed       Random seed                                         -- \b IN.
-       \param  remove_fv  Set to \c true to eliminate fixed variables         -- \b IN.
-       \return A boolean equal to \c true if no error occured.
-    */
-    bool set_X ( const NOMAD::Cache & cache     ,
-		 const NOMAD::Point * center    ,
-		 int                  seed      ,
-		 bool                 remove_fv   );
-
-    /// Set the interpolation set \c X from a set of points.
-    /**
-       \param  X          The set of points                           -- \b IN.
-       \param  center     Center of the model ( may be \c NULL)       -- \b IN.
-       \param  seed       Random seed                                 -- \b IN.
-       \param  remove_fv  Set to \c true to eliminate fixed variables -- \b IN.
-       \return A boolean equal to \c true if no error occured.
-    */
-    bool set_X ( const std::vector<const NOMAD::Eval_Point *> & X         ,
-		 const NOMAD::Point                           * center    ,
-		 int                                            seed      ,
-		 bool                                           remove_fv   );
-
-    /// Compute the models (one for each output).
-    /**
-       \param  XX_pts            Prediction points                         -- \b IN/OUT.
-       \param  compute_Ds2x      Flag to activate the Ds2x computation     -- \b IN.
-       \param  compute_improv    Flag to activate the improv computation   -- \b IN.
-       \param  pred_outside_bnds If \c false, no prediction outside bounds -- \b IN.
-       \return A boolean equal to \c true if the model computation worked.
-    */
-    bool compute ( std::vector<NOMAD::Eval_Point *> & XX_pts            ,
-		   bool                               compute_Ds2x      ,
-		   bool                               compute_improv    ,
-		   bool                               pred_outside_bnds   );
-
-    /// Prediction at one point.
-    /**
-       \param  x                 The point (size \c _n or \c _n0)              -- \b IN.
-       \param  pred_outside_bnds Set to \c false to not predict outside bounds -- \b IN.
-       \return A boolean equal to \c true if the prediction worked.
-    */
-    bool predict ( NOMAD::Eval_Point & x , bool pred_outside_bnds );
-
-    /// Compute model \c h and \c f values given one blackbox output.
-    /**
-       \param  bbo    Blackbox output           -- \b IN.
-       \param  h_min  Value of \c h_min         -- \b IN..
-       \param  h_norm Norm used to compute \c h -- \b IN..
-       \param  h      Value of \c h             -- \b OUT.
-       \param  f      Value of \c f             -- \b OUT.
-    */
-    void eval_hf ( const NOMAD::Point  & bbo    ,
-		   const NOMAD::Double & h_min  ,
-		   NOMAD::hnorm_type     h_norm ,
-		   NOMAD::Double       & h      ,
-		   NOMAD::Double       & f        ) const;
-
-    /// Get the \c XX points with the largest expected improvement of the objective.
-    /**
-       \param pts_index The \c XX points indexes -- \b OUT.
-    */
-    void get_improv_points ( std::list<int> & pts_indexes ) const;
-
-    /// Get the \c XX points with the largest expected reduction in predictive variance.
-    /**
-       \param pts_index The \c XX points indexes -- \b OUT.
-    */
-    void get_Ds2x_points ( std::set<int> & pts_indexes ) const;
-
-    /// Get error string.
-    /**
-       \return The error string.
-    */
-    const std::string & get_error_str ( void ) const { return _error_str; }
-
-    /// Get \c nep flag (nep=not enough points).
-    /**
-       \return The nep flag.
-    */
-    bool get_nep_flag ( void ) const { return _nep_flag; }
-
-    /// Access to the number of interpolation points \c p.
-    /**
-       \return The number of interpolation points.
-    */
-    int get_p ( void ) const { return _p; }
-
-    /// Access to the number of free variables \c n.
-    /**
-       \return The number of free variables.
-    */
-    int get_n ( void ) const { return _n; }
-
-    /// Access to the total number of variables \c n0.
-    /**
-       \return The total number of variables.
-    */
-    int get_n0 ( void ) const { return _n0; }
-
-    /// Access to the lower bounds.
-    /**
-       \return The lower bounds.
-    */
-    const NOMAD::Point & get_lb ( void ) const { return _lb; }
-
-    /// Access to the upper bounds.
-    /**
-       \return The upper bounds.
-    */
-    const NOMAD::Point & get_ub ( void ) const { return _ub; }
-
-#ifdef MODEL_STATS
-    /// Access to the width of the interpolation set \c X (or \c Y).
-    /**
-       \return The width of the interpolation set.
-    */
-    NOMAD::Double get_Yw ( void ) const;
-#endif
-
-    /// Access to improv.
-    /**
-       \param  i Index in the \c XX matrix -- \b IN.
-       \return   The improv value of the ith point in \c XX.
-    */
-    int get_improv ( int i ) const
-    {
-      return ( _improv == NULL || i < 0 || i >= _n_XX ) ? -1 : _improv[i];
-    }
-
-    /// Display the expected reduction in predictive variance (\c Ds2x).
-    /**
-       \param out Display                                                 -- \b IN.
-       \param display_limit Max number of pts displayed (-1 for no limit) -- \b IN.
-    */
-    void display_Ds2x ( const NOMAD::Display & out , int display_limit = -1 ) const;
-
-    /// Display the expected improvement ranks (\c improv).
-    /**
-       \param out Display                                                 -- \b IN.
-       \param display_limit Max number of pts displayed (-1 for no limit) -- \b IN.
-    */
-    void display_improv ( const NOMAD::Display & out , int display_limit = -1 ) const;
-
-    /// Display error stats for the interpolation set \c X.
-    /**
-       \param out Display -- \b IN.
-    */
-    void display_X_errors ( const NOMAD::Display & out );
-
-    /// Display interpolation set \x X.
-    /**
-       \param out Display                                                 -- \b IN.
-       \param display_limit Max number of pts displayed (-1 for no limit) -- \b IN.
-    */
-    void display_X ( const NOMAD::Display & out , int display_limit = -1 ) const;
-
-    /// Default display.
-    void display ( void ) { display ( _out ); }
-
-    /// Display.
-    /**
-       \param out Display -- \b IN.
-    */
-    void display ( const NOMAD::Display & out ) const;   
-  };
-
-  /// Display a NOMAD::TGP_Model object.
-  /**
-     \param out The NOMAD::Display object                   -- \b IN.
-     \param s   The NOMAD::TGP_Model object to be displayed -- \b IN.
-     \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display   & out ,
-					      const NOMAD::TGP_Model & s     ) {
-    s.display ( out );
-    return out;
-  }
-}
-
-#endif
-
-#endif
diff --git a/src/TGP_Model_Evaluator.cpp b/src/TGP_Model_Evaluator.cpp
deleted file mode 100644
index 3edc7c6..0000000
--- a/src/TGP_Model_Evaluator.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
-/*                                                                                     */
-/*  Copyright (C) 2001-2015 Mark Abramson        - the Boeing Company, Seattle         */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
-/*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
-/*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
-/*                                                                                     */
-/*  Contact information:                                                               */
-/*    Ecole Polytechnique de Montreal - GERAD                                          */
-/*    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  */
-/*    e-mail: nomad@gerad.ca                                                           */
-/*    phone : 1-514-340-6053 #6928                                                     */
-/*    fax   : 1-514-340-5665                                                           */
-/*                                                                                     */
-/*  This program is free software: you can redistribute it and/or modify it under the  */
-/*  terms of the GNU Lesser General Public License as published by the Free Software   */
-/*  Foundation, either version 3 of the License, or (at your option) any later         */
-/*  version.                                                                           */
-/*                                                                                     */
-/*  This program is distributed in the hope that it will be useful, but WITHOUT ANY    */
-/*  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    */
-/*  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   */
-/*                                                                                     */
-/*  You should have received a copy of the GNU Lesser General Public License along     */
-/*  with this program. If not, see <http://www.gnu.org/licenses/>.                     */
-/*                                                                                     */
-/*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
-/*-------------------------------------------------------------------------------------*/
-/**
-  \file   TGP_Model_Evaluator.cpp
-  \brief  NOMAD::Evaluator subclass for TGP model optimization (implementation)
-  \author Sebastien Le Digabel
-  \date   2011-02-17
-  \see    TGP_Mopel_Evaluator.hpp
-*/
-
-#ifndef USE_TGP
-
-int TGP_MODEL_EVALUATOR_DUMMY; // avoids that TGP_Model_Evaluator.o has no symbols with ranlib
-
-#else
-
-#include "TGP_Model_Evaluator.hpp"
-
-/*------------------------------------------------------------------------*/
-/*                evaluate the TGP model at a given trial point           */
-/*------------------------------------------------------------------------*/
-bool NOMAD::TGP_Model_Evaluator::eval_x ( NOMAD::Eval_Point   & x          ,
-					  const NOMAD::Double & h_max      ,
-					  bool                & count_eval   ) const
-{
-  count_eval = true;
-  if ( !_model.predict ( x , true ) )
-    return false;
-  return true;
-}
-
-#endif
diff --git a/src/TGP_Model_Evaluator.hpp b/src/TGP_Model_Evaluator.hpp
deleted file mode 100644
index 2a378f2..0000000
--- a/src/TGP_Model_Evaluator.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
-/*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
-/*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
-/*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
-/*                                                                                     */
-/*  Contact information:                                                               */
-/*    Ecole Polytechnique de Montreal - GERAD                                          */
-/*    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  */
-/*    e-mail: nomad@gerad.ca                                                           */
-/*    phone : 1-514-340-6053 #6928                                                     */
-/*    fax   : 1-514-340-5665                                                           */
-/*                                                                                     */
-/*  This program is free software: you can redistribute it and/or modify it under the  */
-/*  terms of the GNU Lesser General Public License as published by the Free Software   */
-/*  Foundation, either version 3 of the License, or (at your option) any later         */
-/*  version.                                                                           */
-/*                                                                                     */
-/*  This program is distributed in the hope that it will be useful, but WITHOUT ANY    */
-/*  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    */
-/*  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   */
-/*                                                                                     */
-/*  You should have received a copy of the GNU Lesser General Public License along     */
-/*  with this program. If not, see <http://www.gnu.org/licenses/>.                     */
-/*                                                                                     */
-/*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
-/*-------------------------------------------------------------------------------------*/
-/**
-  \file   TGP_Model_Evaluator.hpp
-  \brief  NOMAD::Evaluator subclass for TGP model optimization (headers)
-  \author Sebastien Le Digabel
-  \date   2011-02-17
-  \see    TGP_Model_Evaluator.cpp
-*/
-#ifdef USE_TGP
-
-#ifndef __TGP_MODEL_EVALUATOR__
-#define __TGP_MODEL_EVALUATOR__
-
-#include "Search.hpp"
-#include "Evaluator.hpp"
-
-namespace NOMAD {
-
-  /// NOMAD::Evaluator subclass for quadratic model optimization.
-  class TGP_Model_Evaluator : public NOMAD::Evaluator {
-
-  private:
-
-//     int       _n;           ///< Number of variables.
-//     int       _nm1;         ///< Number of variables minus one.
-//     int       _m;           ///< Number of blackbox outputs.
-//     double  * _x;           ///< An evaluation point.
-//     double ** _alpha;       ///< Model parameters.
-//     bool      _model_ready; ///< \c true if model ready to evaluate.
-
-    NOMAD::TGP_Model & _model; ///< The TGP model.
-
-  public:
-
-    /// Constructor.
-    /**
-       \param p     Parameters -- \b IN.
-       \param model Model      -- \b IN.
-    */
-    TGP_Model_Evaluator ( const NOMAD::Parameters & p     ,
-			  NOMAD::TGP_Model        & model   )
-      : NOMAD::Evaluator ( p     ) ,        
-	_model           ( model )   {}
-
-    /// Destructor.
-    virtual ~TGP_Model_Evaluator ( void ) {}
-
-    /// Evaluate the blackboxes at a given trial point.
-    /**
-       \param x The trial point -- \b IN/OUT.
-       \param h_max      Maximal feasibility value \c h_max -- \b IN.
-       \param count_eval Flag indicating if the evaluation has to be counted
-                         or not -- \b OUT.
-       \return A boolean equal to \c false if the evaluation failed.
-     */
-    virtual bool eval_x ( NOMAD::Eval_Point   & x          ,
-			  const NOMAD::Double & h_max      ,
-			  bool                & count_eval   ) const;
-  };
-}
-
-#endif
-
-#endif
diff --git a/src/TGP_Model_Search.cpp b/src/TGP_Model_Search.cpp
deleted file mode 100644
index bf5b6bc..0000000
--- a/src/TGP_Model_Search.cpp
+++ /dev/null
@@ -1,1683 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
-/*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
-/*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
-/*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
-/*                                                                                     */
-/*  Contact information:                                                               */
-/*    Ecole Polytechnique de Montreal - GERAD                                          */
-/*    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  */
-/*    e-mail: nomad@gerad.ca                                                           */
-/*    phone : 1-514-340-6053 #6928                                                     */
-/*    fax   : 1-514-340-5665                                                           */
-/*                                                                                     */
-/*  This program is free software: you can redistribute it and/or modify it under the  */
-/*  terms of the GNU Lesser General Public License as published by the Free Software   */
-/*  Foundation, either version 3 of the License, or (at your option) any later         */
-/*  version.                                                                           */
-/*                                                                                     */
-/*  This program is distributed in the hope that it will be useful, but WITHOUT ANY    */
-/*  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    */
-/*  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   */
-/*                                                                                     */
-/*  You should have received a copy of the GNU Lesser General Public License along     */
-/*  with this program. If not, see <http://www.gnu.org/licenses/>.                     */
-/*                                                                                     */
-/*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
-/*-------------------------------------------------------------------------------------*/
-/**
-  \file   TGP_Model_Search.cpp
-  \brief  TGP Model search (implementation)
-  \author Sebastien Le Digabel
-  \date   2011-02-17
-  \see    TGP_Model_Search.hpp
-*/
-
-#ifndef USE_TGP
-
-int TGP_MODEL_SEARCH_DUMMY; // avoids that TGP_Model_Search.o has no symbols with ranlib
-
-#else
-
-#include "TGP_Model_Search.hpp"
-
-/*-----------------------------------*/
-/*           reset (virtual)         */
-/*-----------------------------------*/
-void NOMAD::TGP_Model_Search::reset ( void )
-{
-  if ( _model )
-    delete _model;
-  _model = NULL;
-}
-
-/*--------------------------------------------------------*/
-/*  delete a list of points: one version for points, and  */
-/*  one version for evaluation points (static, private)   */
-/*--------------------------------------------------------*/
-void NOMAD::TGP_Model_Search::clear_pts ( std::vector<NOMAD::Point *> & pts )
-{
-  size_t k , n = pts.size();
-  for ( k = 0 ; k < n ; ++k )
-    delete pts[k];
-  pts.clear();
-}
-
-void NOMAD::TGP_Model_Search::clear_pts ( std::vector<NOMAD::Eval_Point *> & pts )
-{
-  size_t k , n = pts.size();
-  for ( k = 0 ; k < n ; ++k )
-    delete pts[k];
-  pts.clear();
-}
-
-/*------------------------------------------------------------------*/
-/*                             the search                           */
-/*------------------------------------------------------------------*/
-/* Search parameters:                                               */
-/* ------------------                                               */
-/*                                                                  */
-/*  . MODEL_SEARCH: flag to activate the model search (MS)          */
-/*                  (here its value is NOMAD::TGP_MODEL)            */
-/*                                                                  */
-/*  . MODEL_SEARCH_OPTIMISTIC: if true, the direction from the      */
-/*                             model center to the trial point      */
-/*                             is computed and prossibly used       */
-/*                             in the speculative search            */
-/*                             default=yes                          */
-/*                                                                  */
-/*  . MODEL_SEARCH_PROJ_TO_MESH: project or not to mesh             */
-/*                               default=yes                        */
-/*                                                                  */
-/*  . MODEL_SEARCH_MAX_TRIAL_PTS: limit on the number of trial      */
-/*                                points for one search             */
-/*                                default=10                        */
-/*                                                                  */
-/*  . MODEL_TGP_MODE: TGP mode (FAST or PRECISE)                    */
-/*                    default=FAST                                  */
-/*                                                                  */
-/*------------------------------------------------------------------*/
-void NOMAD::TGP_Model_Search::search ( NOMAD::Mads              & mads           ,
-				       int                      & nb_search_pts  ,
-				       bool                     & stop           ,
-				       NOMAD::stop_type         & stop_reason    ,
-				       NOMAD::success_type      & success        ,
-				       bool                     & count_search   ,
-				       const NOMAD::Eval_Point *& new_feas_inc   ,
-				       const NOMAD::Eval_Point *& new_infeas_inc   )
-{
-  new_feas_inc  = new_infeas_inc = NULL;
-  nb_search_pts = 0;
-  success       = NOMAD::UNSUCCESSFUL;
-  count_search  = false;
-
-  _one_search_stats.reset();
-
-  const NOMAD::Display    & out = _p.out();
-  NOMAD::dd_type display_degree = out.get_search_dd();
-  int               display_lim = 15;
- 
-  if ( stop ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "TGP_Model_Search::search(): not performed (stop flag is active)"
-	  << std::endl;
-    return;
-  }
-
-  // active cache (we accept only true function evaluations):
-  const NOMAD::Cache & cache = mads.get_cache();
-  if ( cache.get_eval_type() != NOMAD::TRUTH ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "TGP_Model_Search::search(): not performed on surrogates"
-	  << std::endl;
-    return;
-  }
-
-  // check that there is one objective exactly:
-  const std::list<int> & index_obj_list = _p.get_index_obj();
-
-  if ( index_obj_list.empty() ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "TGP_Model_Search::search(): not performed with no objective function"
-	  << std::endl;
-    return;
-  }
-  if ( index_obj_list.size() > 1 ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "TGP_Model_Search::search(): not performed with biobjective"
-	  << std::endl;
-    return;
-  }
-
-  // active barrier:
-  const NOMAD::Barrier & barrier = mads.get_true_barrier();
-
-  // get the incumbent:
-  const NOMAD::Eval_Point * incumbent = barrier.get_best_feasible();
-  if ( !incumbent )
-    incumbent = barrier.get_best_infeasible();
-  if ( !incumbent ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "TGP_Model_Search::search(): no incumbent"
-	  << std::endl;
-    return;
-  }
-
-  // get and check the signature, and compute the dimension:
-  NOMAD::Signature * signature = incumbent->get_signature();
-
-  if ( !signature ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "TGP_Model_Search::search(): no signature"
-	  << std::endl;
-    return;
-  }
-
-  int n = signature->get_n();
-
-  if ( n != incumbent->size() ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "TGP_Model_Search::search(): incompatible signature"
-	  << std::endl;
-    return;
-  }
-
-  // initial displays:
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    std::ostringstream oss;
-    oss << NOMAD::MODEL_SEARCH << " #"
- 	<< _all_searches_stats.get_MS_nb_searches();
-    out << std::endl << NOMAD::open_block ( oss.str() ) << std::endl;
-  }
-
-  // from this point the search is counted:
-  count_search = true;
-  _one_search_stats.add_MS_nb_searches();
-
-      NOMAD::Point delta_m;
-    signature->get_mesh()->get_delta(delta_m);
-
-  // initial displays:
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-#ifdef TGP_DEBUG
-    out << "seed                  : "
-	<< _p.get_seed() << std::endl;
-#endif
-    out << "number of cache points: "   << cache.size()    << std::endl
-	<< "mesh size parameter   : ( " << delta_m << " )" << std::endl
-	<< "incumbent             : ( ";
-    incumbent->NOMAD::Point::display
-      ( out , " " , 2 , NOMAD::Point::get_display_limit() );
-    out << " )" << std::endl;
-  }
-
-  // construct the model:
-  NOMAD::Stats                   & stats = mads.get_stats();
-  bool                             compute_Ds2x;
-  std::vector<NOMAD::Eval_Point *> XX;
-  std::string                      error_str;
-
-  if ( !model_construction ( cache          ,
-			     *incumbent     ,
-			     delta_m        ,
-			     out            ,
-			     display_degree ,
-			     display_lim    ,
-			     stats          ,
-			     compute_Ds2x   ,
-			     XX             ,
-			     stop           ,
-			     stop_reason    ,
-			     error_str        ) ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << NOMAD::close_block ( "failure: " + error_str )
-	  << std::endl; 
-    return;
-  }
-
-  // trial_pts = oracle_pts + Ds2x_pts + improv_pts
-  //
-  //  oracle_pts: given by the model optimization
-  //  Ds2x_pts  : XX points with the largest expected reduction in predictive variance
-  //  improv_pts: XX points with the largest expected improvement for the objective
-
-  int max_pts = _p.get_model_search_max_trial_pts();
-
-  /*-----------------------*/
-  /*  oracle points (1/3)  */
-  /*-----------------------*/
-  std::vector<NOMAD::Point *> oracle_pts;
-  if ( !create_oracle_pts ( cache          ,
-			    *incumbent     ,
-			    delta_m        ,
-			    out            ,
-			    display_degree ,
-			    display_lim    ,
-			    XX             ,
-			    oracle_pts     ,
-			    stop           ,
-			    stop_reason      ) && stop ) {
-    
-    // delete XX and oracle_pts:
-    NOMAD::TGP_Model_Search::clear_pts ( XX         );
-    NOMAD::TGP_Model_Search::clear_pts ( oracle_pts );
-
-    // quit:
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << NOMAD::close_block ( "algorithm stop" )
-	  << std::endl; 
-    return;
-  }
-
-  /*---------------------*/
-  /*  Ds2x points (2/3)  */
-  /*---------------------*/
-  std::vector<NOMAD::Point *> Ds2x_pts;
-  if ( compute_Ds2x )
-    create_Ds2x_pts ( XX , out , display_degree , display_lim , Ds2x_pts );
-
-  /*-----------------------*/
-  /*  improv points (3/3)  */
-  /*-----------------------*/
-  std::vector<NOMAD::Point *> improv_pts;
-  create_improv_pts ( XX             ,
-		      *incumbent     ,
-		      max_pts        ,
-		      out            ,
-		      display_degree ,
-		      display_lim    ,
-		      improv_pts       );
-
-  // create the complete list of trial points:
-  // -----------------------------------------
-  std::vector<NOMAD::Point *> trial_pts;
-  create_trial_pts ( oracle_pts     ,
-		     Ds2x_pts       ,
-		     improv_pts     ,
-		     *incumbent     ,
-		     max_pts        ,
-		     out            ,
-		     display_degree ,
-		     trial_pts        );
-
-  // evaluator control:
-  NOMAD::Evaluator_Control & ev_control = mads.get_evaluator_control();
-
-  // add the trial points to the evaluator control for evaluation:
-  int i , nop = trial_pts.size();
-  for ( i = 0 ; i < nop ; ++i )
-    register_point ( *trial_pts[i]  ,
-		     *signature     ,
-		     *incumbent     ,
-		     display_degree ,
-		     ev_control       );
-
-  // display the evaluator control list of points:
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    out << std::endl << NOMAD::open_block ( "list of trial points" );
-    const std::set<NOMAD::Priority_Eval_Point> & lop = ev_control.get_eval_lop();
-    std::set<NOMAD::Priority_Eval_Point>::const_iterator it , end = lop.end();
-    nop = lop.size();
-    for ( it = lop.begin() , i = 0 ; it != end ; ++it , ++i ) {
-      out << "#";
-      out.display_int_w ( i , nop );
-      out << " x=( ";
-      it->get_point()->NOMAD::Point::display ( out , " " , 15 , -1 );
-      out << " )" << std::endl;
-    }
-    out.close_block();
-  }
-
-  // delete XX and the trial points
-  // (do not delete Ds2x_pts and improv_pts because
-  //  they are XX points, contrary to oracle_pts):
-  NOMAD::TGP_Model_Search::clear_pts ( XX           );
-  NOMAD::TGP_Model_Search::clear_pts ( oracle_pts   );
-
-  nb_search_pts = ev_control.get_nb_eval_points();
-
-  if ( nb_search_pts == 0 ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << std::endl << "no trial point" << std::endl;
-  }
-
-  else {
-
-    _one_search_stats.update_MS_max_search_pts ( nb_search_pts );
-
-    // evaluate the trial points:
-    // --------------------------
-    int bbe        = stats.get_bb_eval();
-    int sgte_eval  = stats.get_sgte_eval ();
-    int cache_hits = stats.get_cache_hits();
-
-    new_feas_inc = new_infeas_inc = NULL;
-
-    ev_control.disable_model_eval_sort();
-
-    std::list<const NOMAD::Eval_Point *> * evaluated_pts = NULL;
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      evaluated_pts = new std::list<const NOMAD::Eval_Point *>;
-
-    ev_control.eval_list_of_points ( _type                   ,
-				     mads.get_true_barrier() ,
-				     mads.get_sgte_barrier() ,
-				     mads.get_pareto_front() ,
-				     stop                    ,
-				     stop_reason             ,
-				     new_feas_inc            ,
-				     new_infeas_inc          ,
-				     success                 ,
-				     evaluated_pts             );
-
-    // display the prediction error for the evaluated points:
-    if ( display_degree == NOMAD::FULL_DISPLAY ) {
-      display_eval_pred_errors ( *evaluated_pts , out );
-      delete evaluated_pts;
-    }
-
-    ev_control.enable_model_eval_sort();
-
-    // update stats:
-    _one_search_stats.add_MS_bb_eval    ( stats.get_bb_eval   () - bbe        );
-    _one_search_stats.add_MS_sgte_eval  ( stats.get_sgte_eval () - sgte_eval  );
-    _one_search_stats.add_MS_cache_hits ( stats.get_cache_hits() - cache_hits );
-
-    if ( success == NOMAD::FULL_SUCCESS )
-      _one_search_stats.add_MS_success();
-
-    _one_search_stats.add_MS_pts ( nb_search_pts );
-  }
-
-  // update stats objects:
-  stats.update_model_stats   ( _one_search_stats );
-  _all_searches_stats.update ( _one_search_stats );
-
-  // final display:
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    std::ostringstream oss;
-    oss << "end of " << NOMAD::MODEL_SEARCH << " (" << success << ")";
-    out << std::endl << NOMAD::close_block ( oss.str() ) << std::endl;
-  }
-}
-
-/*---------------------------------------------------------------*/
-/*         create XX a list of prediction points (private)       */
-/*---------------------------------------------------------------*/
-void NOMAD::TGP_Model_Search::set_XX
-( const NOMAD::Cache               & cache     ,
-  int                                n         ,
-  int                                m         ,
-  const NOMAD::Point               & incumbent ,
-  const NOMAD::Point               & delta_m   ,
-  std::vector<NOMAD::Eval_Point *> & XX          ) const
-{
-  // . we begin with 1999 points, filter them to remove points
-  //     that appear more than once or in the cache.
-  // . then we prune the list to 499 points.
-  // . we do not begin directly with 500 points because it
-  //    gives more flexibility with the projection.
-  // . we terminate by adding the incumbent.
-  // --> we obtain a list of at most 500 prediction points.
-
-  int  j , i = 0 , n_XX = 1999; // 2000-1
-  bool proj_to_mesh = _p.get_model_search_proj_to_mesh();
-  bool remove_pt;
-
-  // XX is made of n_XX-1 LH points inside the model bounds
-  // (and the incumbent will be added at the end):
-  NOMAD::LH_Search::LH_points ( n, m, n_XX, _model->get_lb(), _model->get_ub(), XX );
-
-  while ( i < n_XX ) {
-
-    remove_pt = false;   
-
-    // project to the mesh:
-    if ( proj_to_mesh )
-      XX[i]->project_to_mesh ( incumbent , delta_m , _p.get_lb() , _p.get_ub() );
-
-    // remove if point is in cache:
-    if ( cache.find ( *XX[i] ) )
-      remove_pt = true;
-
-    // check if this point is already in XX
-    // (may occur only if the point has been projected):
-    if ( proj_to_mesh && !remove_pt ) {
-
-      if ( incumbent == (*XX[i]) )
-	remove_pt = true;
-      
-      else
-	for ( j = 0 ; j < i ; ++j )
-	  if ( XX[j]->NOMAD::Point::operator == ( *XX[i] ) ) {
-	    remove_pt = true;
-	    break;
-	  }
-    }
-
-    // remove the point:
-    if ( remove_pt ) {
-      delete XX[i];
-      --n_XX;
-      if ( i != n_XX )
-	XX[i] = XX[n_XX];
-      XX.resize ( n_XX );
-    }
-    else
-      ++i;
-  }
-
-  // reduce to 500-1 points (we eliminate randomly):
-  while ( n_XX >= 500 ) {
-
-    i = rand()%n_XX;
- 
-    delete XX[i];
-    --n_XX;
-    if ( i != n_XX )
-      XX[i] = XX[n_XX];
-    XX.resize(n_XX);
-  }
-
-  // add the incumbent as the last point of XX:
-  XX.push_back ( new NOMAD::Eval_Point ( n , m ) );
-  XX[n_XX]->NOMAD::Point::operator = ( incumbent );
-}
-
-/*---------------------------------------------------------------------*/
-/*  create the complete list of trial points (oracle + Ds2x + improv)  */
-/*  (private)                                                          */
-/*---------------------------------------------------------------------*/
-void NOMAD::TGP_Model_Search::create_trial_pts
-( const std::vector<NOMAD::Point *> & oracle_pts     ,         // IN
-  const std::vector<NOMAD::Point *> & Ds2x_pts       ,         // IN
-  const std::vector<NOMAD::Point *> & improv_pts     ,         // IN
-  const NOMAD::Point                & incumbent      ,         // IN
-  int                                 max_pts        ,         // IN
-  const NOMAD::Display              & out            ,         // IN
-  NOMAD::dd_type                      display_degree ,         // IN
-  std::vector<NOMAD::Point *>       & trial_pts        ) const // OUT
-{
-  bool   found;
-  size_t i , j ,
-    n1 = oracle_pts.size() ,
-    n2 = Ds2x_pts.size  () ,
-    n3 = improv_pts.size();
-
-  std::vector<NOMAD::Point *> l2 , l3;
-
-  // 1. remove duplicates:
-  // ---------------------
-  //
-  // . oracle_pts are not XX points
-  // . Ds2x_pts and improv_pts are XX points
-  // . there is no duplicate in each list separately
-  //
-  for ( i = 0 ; i < n2 ; ++i ) {
-    found = false;
-
-    if ( *Ds2x_pts[i] == incumbent )
-      found = true;
-    else {
-      for ( j = 0 ; j < n1 ; ++j )
-	if ( *Ds2x_pts[i] == *oracle_pts[j] ) {
-	  found = true;
-	  break;
-	}
-    }
-    if ( !found )
-      l2.push_back ( Ds2x_pts[i] );
-  }
-
-  n2 = l2.size();
-
-  for ( i = 0 ; i < n3 ; ++i ) {
-    found = false;
-    if ( *improv_pts[i] == incumbent )
-      found = true;
-    else {
-      for ( j = 0 ; j < n1 ; ++j )
-	if ( *improv_pts[i] == *oracle_pts[j] ) {
-	  found = true;
-	  break;
-	}
-    }
-    if ( !found ) {
-      for ( j = 0 ; j < n2 ; ++j )
-	if ( improv_pts[i] == l2[j] ) {
-	  found = true;
-	  break;
-	}
-    }
-    if ( !found )
-      l3.push_back ( improv_pts[i] );
-  }
-    
-  n3 = l3.size();
-
-  // 2. construct the list of trial points:
-  // ------------------------------------
-  trial_pts.clear();
-
-  int nb_pts = static_cast<int> ( n1 + n2 + n3 );
-
-  // no need to reduce the number of trial points:
-  if ( max_pts <= 0 || nb_pts <= max_pts ) {
-
-
-    // 1. oracle points:
-    for ( i = 0 ; i < n1 ; ++i )
-      trial_pts.push_back ( oracle_pts[i] );
-    
-    // 2, improv points:
-    for ( i = 0 ; i < n3 ; ++i )
-      trial_pts.push_back ( l3[i] );    
-
-    // 3. Ds2x points:
-    for ( i = 0 ; i < n2 ; ++i )
-      trial_pts.push_back ( l2[i] );
-    
-  }
-
-  // reduce the list to max_pts points:
-  else {
-
-    nb_pts = 0;
-
-    size_t i1 = 0 , i2 = 0 , i3 = 0;
-
-    while ( true ) {
-
-      // one point from the oracle points:
-      if ( i1 < n1 ) {
-	trial_pts.push_back ( oracle_pts[i1++] );
-	++nb_pts;
-	if ( nb_pts == max_pts )
-	  break;
-      }
-
-      // two from the improv points:
-      for ( i = 0 ; i < 2 ; ++i ) {
-	if ( i3 < n3 ) {
-	  trial_pts.push_back ( l3[i3++] );
-	  ++nb_pts;
-	  if ( nb_pts == max_pts )
-	    break;
-	}
-      }
-      if ( nb_pts == max_pts )
-	break;
-
-      // one from the Ds2x points:
-      if ( i2 < n2 ) {
-	trial_pts.push_back ( l2[i2++] );
-	++nb_pts;
-	if ( nb_pts == max_pts )
-	  break;
-      }
-    }
-  }
-
-  // 3. display the list of trial points:
-  // ------------------------------------
-  // if ( display_degree == NOMAD::FULL_DISPLAY ) {   
-  //   out.open_block ( "list of trial points (debug)" );
-  //   n1 = trial_pts.size();   
-  //   for ( i = 0 ; i < n1 ; ++i ) {
-  //     out << "#";
-  //     out.display_int_w ( i , n1 );
-  //     out << " x=( " << *trial_pts[i] << " )" << std::endl;
-  //   }
-  //   out.close_block();
-  // }
-}
-
-/*---------------------------------------------------------*/
-/*       create the list of improv points (private)        */
-/*---------------------------------------------------------*/
-void NOMAD::TGP_Model_Search::create_improv_pts
-( const std::vector<NOMAD::Eval_Point *> & XX             ,         // IN
-  const NOMAD::Point                     & incumbent      ,         // IN
-  int                                      max_pts        ,         // IN
-  const NOMAD::Display                   & out            ,         // IN
-  NOMAD::dd_type                           display_degree ,         // IN
-  int                                      display_lim    ,         // IN
-  std::vector<NOMAD::Point *>            & improv_pts       ) const // OUT
-{
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    out << NOMAD::open_block ( "improv points construction" )
-	<< std::endl;
-
-  // reset improv points:
-  improv_pts.clear();
-
-  // display improv points directly from the NOMAD::TGP_Model object:
-#ifdef TGP_DEBUG
-  out << NOMAD::open_block ( "expected improvement of the objective (improv)" );
-  _model->display_improv ( out , display_lim );
-  out << NOMAD::close_block() << std::endl;
-#endif
-
-  std::list<int> pts_indexes;
-  _model->get_improv_points ( pts_indexes );
-
-  if ( pts_indexes.empty() ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << std::endl
-	  << NOMAD::close_block ( "no improv candidate" )
-	  << std::endl;
-    return;
-  }
-
-  std::list<int>::const_iterator it , end = pts_indexes.end();
-  
-  // with constraints, the list is re-sorted in order to put the
-  // predicred feasible points first:
-  if ( _p.has_constraints() ) {
-  
-    std::list<int> feas_pts , infeas_pts;
-
-    NOMAD::Double         h , f;
-    const NOMAD::Double & h_min = _p.get_h_min();
-
-    for ( it = pts_indexes.begin() ; it != end ; ++it ) {
-      if ( predict ( *XX[*it] , h , f ) && h <= h_min )
-	feas_pts.push_back ( *it );
-      else
-	infeas_pts.push_back ( *it );
-    }
-
-    pts_indexes.clear();
-    
-    end = feas_pts.end();
-    for ( it = feas_pts.begin() ; it != end ; ++it )
-      pts_indexes.push_back ( *it );
-    
-    end = infeas_pts.end();
-    for ( it = infeas_pts.begin() ; it != end ; ++it )
-      pts_indexes.push_back ( *it );
-
-    end = pts_indexes.end();
-  }
-
-  // compute max_index just for the display:
-  int i , j , max_index = -1 , ni = -1;
-
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    ni = pts_indexes.size();
-    if ( max_pts > 0 && ni > max_pts )
-      ni = max_pts;
-
-    for ( it = pts_indexes.begin() ; it != end ; ++it ) {
-      if ( *it > max_index )
-	max_index = *it;
-    }
-  }
-
-  // add the points to improv_pts:
-  bool rejected;
-  i = j = 0;
-  for ( it = pts_indexes.begin() ; it != end ; ++it ) {
-    
-    // we check the max number of points:
-    rejected = ( max_pts > 0 && max_pts == i );
-
-    // we reject the point if it is the incumbent:
-    if ( !rejected && incumbent == *XX[*it] )
-      rejected = true;
-
-    // we add the point:
-    if ( !rejected ) {
-      improv_pts.push_back ( XX[*it] );
-      ++i;
-    }
-
-    // display:
-    if ( display_degree == NOMAD::FULL_DISPLAY ) {
-      if ( display_lim <= 0 || j < display_lim ) {
-	if ( rejected )
-	  out << "rejected candidate ";
-	else {
-	  out << "improv candidate #";     
-	  out.display_int_w ( i-1 , ni );
-	}
-	out << " (XX point #";
-	out.display_int_w ( *it , max_index );
-	out << "): x=( ";
-	XX[*it]->NOMAD::Point::display ( out , " " , 6 , -1 );
-	out << " )";
-	if ( rejected ) {
-	  if ( max_pts > 0 && max_pts == i )
-	    out << " (max number of points)";
-	  else
-	    out << " (candidate==incumbent)";
-	}
-	else
-	  out << " improv=" << _model->get_improv(*it);
-	out << std::endl;
-      }
-      if ( display_lim > 0 && j == display_lim )
-	out << "..." << std::endl;
-      ++j;
-    }
-
-    // if no display, stop the loop if there is already too many points:
-    else if ( max_pts > 0 && max_pts == i )
-      break;
-  }
-
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    out << std::endl
-	<< NOMAD::close_block ( "end of improv points construction" )
-	<< std::endl;
-}
-
-/*------------------------------------------------------------*/
-/*  create the list of Ds2x points, the points that maximize  */
-/*  the expected reduction in predictive variance             */
-/*  (private)                                                 */
-/*------------------------------------------------------------*/
-void NOMAD::TGP_Model_Search::create_Ds2x_pts
-( const std::vector<NOMAD::Eval_Point *> & XX             ,         // IN
-  const NOMAD::Display                   & out            ,         // IN
-  NOMAD::dd_type                           display_degree ,         // IN
-  int                                      display_lim    ,         // IN
-  std::vector<NOMAD::Point *>            & Ds2x_pts         ) const // OUT
-{
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    out << NOMAD::open_block ( "Ds2x points construction" )
-	<< std::endl;
-
-  // reset Ds2x points:
-  Ds2x_pts.clear();
-
-  // display Ds2x points directly from the NOMAD::TGP_Model object:
-#ifdef TGP_DEBUG
-  out << NOMAD::open_block ( "expected reduction in predictive variance (Ds2x)" );
-  _model->display_Ds2x ( out , display_lim );
-  out << NOMAD::close_block() << std::endl;
-#endif
-    
-  std::set<int> pts_indexes;
-  _model->get_Ds2x_points ( pts_indexes );
-
-  if ( pts_indexes.empty() ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << std::endl
-	  << NOMAD::close_block ( "no Ds2x candidate" )
-	  << std::endl;
-    return;
-  }
-
-  std::set<int>::const_iterator it , end = pts_indexes.end();
-  int i , max_index = -1 , m = _p.get_bb_nb_outputs() , n_XX = XX.size();
-
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    for ( it = pts_indexes.begin() ; it != end ; ++it ) {
-      if ( *it > max_index )
-	max_index = *it;
-    }
-  }
-
-  for ( it = pts_indexes.begin() , i = 0 ; it != end ; ++it , ++i ) {
-
-    Ds2x_pts.push_back ( XX[*it] );
-
-    if ( display_degree == NOMAD::FULL_DISPLAY ) {
-      out << "Ds2x candidate #";     
-      out.display_int_w ( i , m );
-      out << " (XX point #";
-      out.display_int_w ( *it , max_index );
-      out << "): x=( ";
-      XX[*it]->NOMAD::Point::display ( out , " " , 6 , -1 );
-      out << " )";
-      if ( *it == n_XX - 1 )
-	out << " (rejected: candidate==incumbent)";
-      out << std::endl;
-    }
-  }
-
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    out << std::endl
-	<< NOMAD::close_block ( "end of Ds2x points construction" )
-	<< std::endl;
-}
-
-/*-------------------------------------------------------------------*/
-/*  create a list of oracle points, given by the model optimization  */
-/*  (private)                                                        */
-/*-------------------------------------------------------------------*/
-bool NOMAD::TGP_Model_Search::create_oracle_pts
-( const NOMAD::Cache                     & cache          ,
-  const NOMAD::Point                     & incumbent      ,
-  const NOMAD::Point                     & delta_m        ,
-  const NOMAD::Display                   & out            ,
-  NOMAD::dd_type                           display_degree ,
-  int                                      display_lim    ,
-  const std::vector<NOMAD::Eval_Point *> & XX             ,
-  std::vector<NOMAD::Point *>            & oracle_pts     ,
-  bool                                   & stop           ,
-  NOMAD::stop_type                       & stop_reason      )
-{
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    out << NOMAD::open_block ( "oracle points construction" )
-	<< std::endl;
-
-  // reset oracle points:
-  NOMAD::TGP_Model_Search::clear_pts ( oracle_pts );
-
-  int i , n_XX = XX.size();
-
-  // starting points selection:
-  const NOMAD::Eval_Point * x0s[3];
-  x0s[0] = x0s[1] = x0s[2] = NULL;
-
-  // open display block for model predictions:
-#ifdef TGP_DEBUG
-  out << NOMAD::open_block ( "TGP predictions (XX+ZZ)");
-  int i0 = ( display_lim > 0 ) ? n_XX - display_lim : 0;
-  if ( i0 > 0 )
-    out << "..." << std::endl;
-#endif
-
-  NOMAD::Double         f_model , h_model;
-  const NOMAD::Double & h_min  = _p.get_h_min();
-  NOMAD::hnorm_type     h_norm = _p.get_h_norm();
-
-  for ( i = 0 ; i < n_XX ; ++i ) {
-
-    // compute model h and f values:
-    _model->eval_hf ( XX[i]->get_bb_outputs() ,
-		      h_min                   ,
-		      h_norm                  ,
-		      h_model                 ,
-		      f_model                   );    
-
-    if ( h_model.is_defined() && f_model.is_defined() ) {
-
-      XX[i]->set_f ( f_model );
-      XX[i]->set_h ( h_model );
-
-      // feasible point:
-      if ( XX[i]->is_feasible ( h_min ) ) {
-	if ( !x0s[0] || f_model < x0s[0]->get_f() )
-	  x0s[0] = XX[i];
-      }
-
-      // infeasible point:
-      else {
-	if ( !x0s[1] || h_model < x0s[1]->get_h() )
-	  x0s[1] = XX[i];
-	
-	if ( !x0s[2] || f_model < x0s[2]->get_f() )
-	  x0s[2] = XX[i];
-      }
-    }
-
-    // display model predictions:
-#ifdef TGP_DEBUG
-    if ( i >= i0 ) {
-      out << "#";
-      out.display_int_w ( i , n_XX );
-      out << " x=(";
-      XX[i]->NOMAD::Point::display ( out , " " , 15 , -1 );
-      out << " ) m(x)=[";
-      XX[i]->get_bb_outputs().display ( out , " " , 15 , -1 );
-      out << " ]";
-	      
-      if ( h_model.is_defined() && f_model.is_defined() )
-	out << " hm=" << h_model << " fm=" << f_model;
-      else
-	out << " no model value";
-      out << std::endl;
-    }
-#endif	    
-      
-#ifdef MODEL_STATS
-    if ( XX[i] && f_model.is_defined() && h_model.is_defined() ) {
-      XX[i]->set_mod_use ( 1                 ); // 1 for model search
-      XX[i]->set_Yw      ( _model->get_Yw () );
-      XX[i]->set_nY      ( p                 );
-      XX[i]->set_mh      ( h_model           );
-      XX[i]->set_mf      ( f_model           );
-    }
-#endif
-  }
-
-#ifdef TGP_DEBUG
-  // close display block for model predictions:
-  {
-    std::ostringstream oss;
-    oss << "(size=" << n_XX << ")";
-    out << NOMAD::close_block ( oss.str() ) << std::endl;
-  }
-
-  // compute and display prediction errors:
-  out << NOMAD::open_block ( "prediction relative errors on X(%)" );
-  _model->display_X_errors ( out );
-  out << NOMAD::close_block() << std::endl;
-
-#endif
-
-  if ( !x0s[0] && !x0s[1] && !x0s[2] ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << std::endl
-	  << NOMAD::close_block ( "oracle points error: no model starting point" )
-	  << std::endl;
-    return false;
-  }
-
-  // display starting points:
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    out << std::endl
- 	<< NOMAD::open_block ( "model starting points" );
-    
-    for ( i = 0 ; i < 3 ; ++i ) {
-
-      out << "#" << i << ": ";
-      if ( !x0s[i] )
-	out << "NULL" << std::endl;
-      else {
-	
-	out << " x=(";
-	x0s[i]->NOMAD::Point::display ( out , " " , 15 , -1 );
-	out << " ) m(x)=[";
-	x0s[i]->get_bb_outputs().display ( out , " " , 15 , -1 );
-	out << " ]"
-	    << " hm=" << std::setw(15) << x0s[i]->get_h()
-	    << " fm=" << std::setw(15) << x0s[i]->get_f()
-	    << std::endl;
-      }
-    }
-    out << NOMAD::close_block() << std::endl;
-  }
-
-  // optimize model:
-  // ---------------
-  NOMAD::Point * xf = NULL , * xi = NULL;
-  NOMAD::Clock clock;
-
-  bool optimization_ok = optimize_model ( x0s            ,
-					  out            ,
-					  display_degree ,
-					  xf             ,
-					  xi             ,
-					  stop           ,
-					  stop_reason      );
-
-  _one_search_stats.add_optimization_time ( clock.get_CPU_time() );
- 
-  if ( stop || !optimization_ok || ( xf == NULL && xi == NULL ) ) {
-    std::string error_str;
-    if ( xf == NULL && xi == NULL )
-      error_str = "no model optimization solution";
-    else {
-      if ( xf ) delete xf;
-      if ( xi ) delete xi;
-      error_str = ( stop ) ? "algorithm stop" : "model optimization error";
-    }
-
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << std::endl
-	  << NOMAD::close_block ( "oracle points error: " + error_str )
-	  << std::endl;
-    return false;
-  }
- 
-  // project and check xf and xi:
-  if ( xf && !check_oracle_point ( cache          ,
-				   incumbent      ,
-				   delta_m        ,
-				   out            ,
-				   display_degree ,
-				   *xf              ) ) {
-    delete xf;
-    xf = NULL;
-  }
-
-  if ( xi && !check_oracle_point ( cache          ,
-				   incumbent      ,
-				   delta_m        ,
-				   out            ,
-				   display_degree ,
-				   *xi              ) ) {
-    delete xi;
-    xi = NULL;
-  }
-
-  // add xf and xi in the list of oracle points:
-  if ( xf )
-    oracle_pts.push_back ( xf );
-
-  if ( xi ) {
-
-    // check that xi != xf:
-    if ( xf && *xf == *xi ) {
-      delete xi;
-      xi = NULL;
-    }
-
-    if ( xi )
-      oracle_pts.push_back ( xi );
-  }
-
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    out << std::endl
-	<< NOMAD::close_block ( "end of oracle points construction" )
-	<< std::endl;
-
-  return true;
-}
-
-/*------------------------------------------------------*/
-/*  project and accept or reject an oracle trial point  */
-/*  (private)                                           */
-/*------------------------------------------------------*/
-bool NOMAD::TGP_Model_Search::check_oracle_point
-( const NOMAD::Cache   & cache          ,
-  const NOMAD::Point   & incumbent      ,
-  const NOMAD::Point   & delta_m        ,
-  const NOMAD::Display & out            ,
-  NOMAD::dd_type         display_degree ,
-  NOMAD::Point         & x                )
-{
-  bool proj_to_mesh = _p.get_model_search_proj_to_mesh();
-
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    out << std::endl << "oracle candidate";
-    if ( proj_to_mesh )
-      out << " (before projection)";
-    out << ": ( " << x << " )" << std::endl;
-  }
-
-  // projection to mesh:
-  if ( proj_to_mesh ) {
-    x.project_to_mesh ( incumbent , delta_m , _p.get_lb() , _p.get_ub() );
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "oracle candidate (after projection) : ( "
-	  << x << " )" << std::endl;
-  }
-
-  // compare x and incumbent coordinates:
-  if ( x == incumbent ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "oracle candidate rejected (candidate==incumbent)" << std::endl;
-    return false;
-  }
-  
-  // two evaluations points are created in order to:
-  //   1. check if the candidate is in cache
-  //   2. have a prediction at x and at the incumbent:
-  int n = x.size() , m = _p.get_bb_nb_outputs();
-
-  NOMAD::Eval_Point * tk = new NOMAD::Eval_Point ( n , m ); // trial point
-  tk->Point::operator = ( x );
-
-  // check if the point is in cache:
-  if ( cache.find ( *tk ) ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "oracle candidate rejected (found in cache)" << std::endl;
-    delete tk;
-    return false;
-  }
-
-  NOMAD::Eval_Point * ic = new NOMAD::Eval_Point ( n , m ); // incumbent copy
-  ic->Point::operator = ( incumbent );
-
-  // model predictions (in order to accept or reject the trial point):
-  bool pred_error = !_model->predict ( *ic , true ) || // pred_outside_bnds = true
-                    !_model->predict ( *tk , true );   // pred_outside_bnds = true
-
-  const NOMAD::Double & h_min  = _p.get_h_min();
-  NOMAD::hnorm_type     h_norm = _p.get_h_norm();
-
-  NOMAD::Double h0 , f0; // model values of f and h at the center
-  NOMAD::Double h1 , f1; // model values of f and h at the trial point
-
-  if ( !pred_error )
-    _model->eval_hf ( tk->get_bb_outputs() , h_min , h_norm , h1 , f1 );
- 
-  delete tk;
-
-  if ( pred_error || !h1.is_defined() || !f1.is_defined() ) {
-
-    if ( display_degree == NOMAD::FULL_DISPLAY ) {
-      if ( pred_error )
- 	out << "prediction error: oracle candidate rejected";
-      else
- 	out << "no model value (EB constraint violated?): oracle candidate rejected";
-      out << std::endl;
-    }
-
-    delete ic;
-
-    return false;
-  }
-
-  // accept or reject the trial point:
-  bool accept_point = false;
-  _model->eval_hf ( ic->get_bb_outputs(), h_min, h_norm, h0, f0 );
-  if ( !h0.is_defined() || !f0.is_defined() )
-    accept_point = true;
- 
-  delete ic;
-
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    out << std::endl
- 	<< "incumbent prediction  : h0=" << h0 << " f0=" << f0 << std::endl
- 	<< "trial point prediction: h1=" << h1 << " f1=" << f1 << std::endl;
-
-  if ( !accept_point )
-    accept_point = (f1 < f0) || (h1 < h0);
-
-  if ( !accept_point ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "oracle candidate rejected" << std::endl;
-    _one_search_stats.add_MS_rejected();
-    return false;
-  }
-
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    out << "oracle candidate accepted" << std::endl;
-
-  return true;
-}
-
-/*--------------------------------------------------------*/
-/*  insert a trial point in the evaluator control object  */
-/*  (private)                                             */
-/*--------------------------------------------------------*/
-void NOMAD::TGP_Model_Search::register_point
-( NOMAD::Point               x              ,
-  NOMAD::Signature         & signature      ,
-  const NOMAD::Point       & incumbent      ,
-  NOMAD::dd_type             display_degree ,
-  NOMAD::Evaluator_Control & ev_control       ) const
-{
-  int n = x.size();
-
-  NOMAD::Eval_Point * tk = new NOMAD::Eval_Point ( n , _p.get_bb_nb_outputs() );
-
-  // if the search is optimistic, a direction is computed (this
-  // will be used in case of success in the speculative search):
-  if ( _p.get_model_search_optimistic() ) {
-    NOMAD::Direction dir ( n , 0.0 , NOMAD::MODEL_SEARCH_DIR );
-    dir.Point::operator = ( x - incumbent );
-    tk->set_direction  ( &dir );
-  }
-
-  tk->set_signature  ( &signature  );
-    tk->Point::operator = ( x );
-
-  // add the new point to the list of search trial points:
-  ev_control.add_eval_point ( tk                      ,
-			      display_degree          ,
-			      _p.get_snap_to_bounds() ,
-			      NOMAD::Double()         ,
-			      NOMAD::Double()         ,
-			      NOMAD::Double()         ,
-			      NOMAD::Double()           );
-#ifdef MODEL_STATS
-  if ( tk ) {
-    NOMAD::Double h1 , f1;
-    if ( _model->predict ( *tk , true ) ) // pred_outside_bnds = true
-      _model->eval_hf ( tk->get_bb_outputs() ,
-			_p.get_h_min()       ,
-			_p.get_h_norm()      ,
-			h1                   ,
-			f1                     );
-    if ( h1.is_defined() && f1.is_defined() ) {
-      tk->set_mod_use ( 1                ); // 1 for model search
-      tk->set_Yw      ( _model->get_Yw() );
-      tk->set_nY      ( model.get_p ()   );
-      tk->set_mh      ( h1               );
-      tk->set_mf      ( f1               );
-    }
-  }
-#endif
-}
-
-/*---------------------------------------------------------------*/
-/*                    model construction (private)               */
-/*---------------------------------------------------------------*/
-bool NOMAD::TGP_Model_Search::model_construction
-( const NOMAD::Cache               & cache          ,
-  const NOMAD::Point               & incumbent      ,
-  const NOMAD::Point               & delta_m        ,
-  const NOMAD::Display             & out            ,
-  NOMAD::dd_type                     display_degree ,
-  int                                display_lim    ,
-  NOMAD::Stats                     & stats          ,
-  bool                             & compute_Ds2x   ,
-  std::vector<NOMAD::Eval_Point *> & XX             ,
-  bool                             & stop           ,
-  NOMAD::stop_type                 & stop_reason    ,
-  std::string                      & error_str        )
-{
-  int i , n_XX , n = incumbent.size();
-
-  compute_Ds2x = false;
-
-  // reset XX:
-  {
-    n_XX = XX.size();
-    for ( i = 0 ; i < n_XX ; ++i )
-      delete XX[i];
-    XX.clear();
-    n_XX = 0;
-  }
-
-  error_str.clear();
-
-  if ( stop )
-    return false;
-
-  NOMAD::Clock clock;
-
-  // TGP model creation:
-  if ( _model )
-    delete _model;
-
-  NOMAD::TGP_mode_type tgp_mode = _p.get_model_tgp_mode();
-
-  _model = new NOMAD::TGP_Model ( n                       ,
-				  _p.get_bb_output_type() ,
-				  out                     ,
-				  tgp_mode                  );
-
-  // construct interpolation set (X):
-  // --------------------------------
-  if ( !_model->set_X ( cache          ,
-			&incumbent     ,
-			_p.get_seed()  ,
-			true             ) ) { // remove_fv = true
-
-    if ( _model->get_nep_flag() )
-      _one_search_stats.add_not_enough_pts();
-
-    stats.update_model_stats   ( _one_search_stats );
-    _all_searches_stats.update ( _one_search_stats );
-
-    error_str = _model->get_error_str();
-
-    delete _model;
-    _model = NULL;
-
-    return false;
-  }
-
-  // create the list of prediction points (XX)
-  // (they are used to get starting points
-  //  and to get IMPROV and DS2X stats):
-  // -----------------------------------
-  set_XX ( cache                          ,
-	   n                              ,
-	   _p.get_bb_output_type().size() ,
-	   incumbent                      ,
-	   delta_m                        ,
-	   XX                               );
-
-  n_XX = XX.size();
-
-  // display sets X and XX:
-  // ----------------------
-#ifdef TGP_DEBUG
-
-  // X:
-  _model->display_X ( out , display_lim );
-
-  // XX (only the 10 last points are displayed):
-  out << NOMAD::open_block ( "prediction points (XX)");
-  int i0 = ( display_lim > 0 ) ? n_XX - display_lim : 0;
-  if ( i0 > 0 )
-    out << "..." << std::endl;
-  else if ( i0 < 0 )
-    i0 = 0;
-  for ( i = i0 ; i < n_XX ; ++i ) {
-    out << "#";
-    out.display_int_w ( i , n_XX );
-    out << " x=(";
-    XX[i]->NOMAD::Point::display ( out , " " , 15 , -1 );
-    out << " )" << std::endl;
-  }
-  std::ostringstream oss;
-  oss << "(size=" << n_XX << ")";
-  out << NOMAD::close_block ( oss.str() ) << std::endl;
-#endif 
-
-  // model construction:
-  // -------------------
-  int p = _model->get_p(); // number of points in X
-
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    out << "TGP model construction (p="
-	<< p << ") ...";
-    out.flush();
-  }
-
-  // decide compute_Ds2x flag:
-  compute_Ds2x = true;
-  if ( tgp_mode == NOMAD::TGP_PRECISE && n_XX > 100 )
-    compute_Ds2x = false;
-
-  if ( !_model->compute ( XX           ,
-			  compute_Ds2x ,
-			  true         ,       // compute_improv    = true
-			  false          ) ) { // pred_outside_bnds = false
-    
-    _one_search_stats.add_construction_error();
-
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out << "... error" << std::endl;
-
-    // delete XX points:
-    for ( i = 0 ; i < n_XX ; ++i )
-      delete XX[i];
-    XX.clear();
-    n_XX = 0;
-
-    stats.update_model_stats   ( _one_search_stats );
-    _all_searches_stats.update ( _one_search_stats );
-
-    error_str = _model->get_error_str();
-
-    delete _model;
-    _model = NULL;
-
-    // check if ctrl-c has been pressed:
-    if ( NOMAD::TGP_Output_Model::get_force_quit() ) {
-      stop        = true;
-      stop_reason = NOMAD::CTRL_C;
-    }
-
-    return false;
-  }
-  
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    out << "... OK" << std::endl << std::endl;
-
-  // update model stats:
-  _one_search_stats.add_construction_time ( clock.get_CPU_time() );
-  _one_search_stats.update_nY             ( p                    );
-  _one_search_stats.add_nb_truth();
-  _one_search_stats.add_nb_TGP();
-
-  return true;
-}
-
-/*---------------------------------------------------------------*/
-/*                    optimize a model (private)                 */
-/*---------------------------------------------------------------*/
-bool NOMAD::TGP_Model_Search::optimize_model
-( const NOMAD::Eval_Point * x0s[3]         ,
-  const NOMAD::Display    & out            ,
-  NOMAD::dd_type            display_degree ,
-  NOMAD::Point           *& xf             ,
-  NOMAD::Point           *& xi             ,
-  bool                    & stop           ,
-  NOMAD::stop_type        & stop_reason      )
-{
-  // reset xf and xi:
-  if ( xf ) delete xf; xf = NULL;
-  if ( xi ) delete xi; xi = NULL;
-
-  if ( !_model ) {
-    if ( display_degree == NOMAD::FULL_DISPLAY )
-      out <<  std::endl << "model optimization error (no model)"
-	  << std::endl;
-    return false;
-  }
-
-  std::string error_str;
-  bool        error = false;
-  int         i , n = _model->get_n0();
-
-  // model bounds:
-  const NOMAD::Point & lb = _model->get_lb();
-  const NOMAD::Point & ub = _model->get_ub();
-
-  // initial displays:
-  if ( display_degree == NOMAD::FULL_DISPLAY )
-    out << std::endl << NOMAD::open_block ( "model optimization" );
-
-  // parameters creation:
-  NOMAD::Parameters model_param ( out );
-  
-
-  // number of variables:
-  model_param.set_DIMENSION ( n );
-  
-  // blackbox outputs:
-  model_param.set_BB_OUTPUT_TYPE ( _p.get_bb_output_type() );
-
-  // barrier parameters:
-  model_param.set_H_MIN  ( _p.get_h_min () );
-  model_param.set_H_NORM ( _p.get_h_norm() );
-
-  // starting points:
-  for ( i = 0 ; i < 3 ; ++i )
-    if ( x0s[i] )
-      model_param.set_X0 ( *x0s[i] );
-
-  // fixed variables:
-  for ( i = 0 ; i < n ; ++i )
-    if ( lb[i] == ub[i] || _p.variable_is_fixed(i) )
-      model_param.set_FIXED_VARIABLE(i);
-
-  // no model search and no model ordering:
-  model_param.set_MODEL_SEARCH    ( false );
-  model_param.set_MODEL_EVAL_SORT ( false );
-
-  // display:
-  model_param.set_DISPLAY_DEGREE ( NOMAD::NO_DISPLAY );
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-
-    model_param.set_DISPLAY_DEGREE ( NOMAD::NORMAL_DISPLAY );
-    // model_param.set_DISPLAY_DEGREE ( NOMAD::FULL_DISPLAY );
-
-    if ( n <= 5 )
-      model_param.set_DISPLAY_STATS ( "bbe mesh_index ( %14.12gsol ) %14.12gobj" );
-    else if ( n <= 10 )
-      model_param.set_DISPLAY_STATS ( "bbe mesh_index ( sol ) obj" );
-    else
-      model_param.set_DISPLAY_STATS ( "bbe obj" );
-  }
-	// mesh: use isotropic mesh
-	model_param.set_ANISOTROPIC_MESH ( false );
-	model_param.set_MESH_UPDATE_BASIS ( 4.0 );
-	model_param.set_MESH_COARSENING_EXPONENT ( 1 );
-	model_param.set_MESH_REFINING_EXPONENT ( -1 );
-	model_param.set_INITIAL_MESH_INDEX ( 0 );
-	
-
-  // maximum number of evaluations (2000 or 10000):
-  model_param.set_MAX_BB_EVAL
-    ( ( _p.get_model_tgp_mode() == NOMAD::TGP_PRECISE ) ? 10000 : 2000 );
-
-  model_param.set_SNAP_TO_BOUNDS ( true );
-
-  // disable user calls:
-  model_param.set_USER_CALLS_ENABLED ( false );
-
-  // set flags:
-  bool flag_check_bimads , flag_reset_mesh , flag_reset_barriers , flag_p1_active;
-  NOMAD::Mads::get_flags ( flag_check_bimads   ,
- 			   flag_reset_mesh     ,
- 			   flag_reset_barriers ,
- 			   flag_p1_active        );
-
-  NOMAD::Mads::set_flag_check_bimads   ( true  );
-  NOMAD::Mads::set_flag_reset_mesh     ( true  );
-  NOMAD::Mads::set_flag_reset_barriers ( true  );
-  NOMAD::Mads::set_flag_p1_active      ( false );
-
-  // bounds:
-  model_param.set_LOWER_BOUND ( lb );
-  model_param.set_UPPER_BOUND ( ub );
-
-  try {
-
-    // parameters validation:
-    model_param.check();
-
-    // out << "TGP PARAMETERS:" << std::endl << model_param << std::endl;
-
-    // model evaluator creation:
-    NOMAD::TGP_Model_Evaluator ev ( model_param , *_model );
-
-    // algorithm creation and execution:
-    NOMAD::Mads    mads ( model_param , &ev );
-    NOMAD::stop_type st = mads.run();
-      
-    // check the stopping criterion:
-    if ( st == NOMAD::CTRL_C || st == NOMAD::MAX_CACHE_MEMORY_REACHED ) {
-      std::ostringstream oss;
-      oss << "model optimization: " << st;
-      error_str   = oss.str();
-      error       = true;
-      stop        = true;
-      stop_reason = st;
-    }
-    
-    else if ( st == NOMAD::MAX_BB_EVAL_REACHED )
-      _one_search_stats.add_MS_max_bbe();
-   
-    // update the stats on the number of model evaluations:
-    _one_search_stats.update_MS_model_opt ( mads.get_stats().get_bb_eval() );
-
-    // get the solution(s):
-    const NOMAD::Eval_Point * best_feas   = mads.get_best_feasible  ();
-    const NOMAD::Eval_Point * best_infeas = mads.get_best_infeasible();
-
-    if ( best_feas )
-      xf = new NOMAD::Point ( *best_feas );
-    if ( best_infeas )
-      xi = new NOMAD::Point ( *best_infeas );
-	
-    if ( !xf && !xi ) {
-      error     = true;
-      error_str = "optimization error: no solution";
-    }
-  }
-  catch ( std::exception & e ) {
-    error     = true;
-    error_str = std::string ( "optimization error: " ) + e.what();
-  }
-
-  // reset flags:
-  NOMAD::Mads::set_flag_check_bimads   ( flag_check_bimads   );
-  NOMAD::Mads::set_flag_reset_mesh     ( flag_reset_mesh     );
-  NOMAD::Mads::set_flag_reset_barriers ( flag_reset_barriers );
-  NOMAD::Mads::set_flag_p1_active      ( flag_p1_active      );
-
-  // close display block:
-  if ( display_degree == NOMAD::FULL_DISPLAY ) {
-    if ( error )
-      out.close_block ( error_str );
-    else
-      out.close_block();
-  }
-
-  return !error;
-}
-
-/*---------------------------------------------------------*/
-/*  display the prediction error for the evaluated points  */
-/*  (private)                                              */
-/*---------------------------------------------------------*/
-bool NOMAD::TGP_Model_Search::predict ( const NOMAD::Point & x ,
-					NOMAD::Double      & h ,
-					NOMAD::Double      & f   ) const
-{
-  h.clear();
-  f.clear();
-
-  if ( !_model )
-    return false;
-
-  NOMAD::Eval_Point y ( x.size() , _p.get_bb_nb_outputs() );
-  y.NOMAD::Point::operator = ( x );
-
-  if ( _model->predict ( y , true ) ) // pred_outside_bnds = true
-    _model->eval_hf ( y.get_bb_outputs() , _p.get_h_min() , _p.get_h_norm() , h , f );
-
-  return ( h.is_defined() && f.is_defined() );
-}
-
-/*---------------------------------------------------------*/
-/*  display the prediction error for the evaluated points  */
-/*  (private)                                              */
-/*---------------------------------------------------------*/
-void NOMAD::TGP_Model_Search::display_eval_pred_errors
-( const std::list<const NOMAD::Eval_Point *> & evaluated_pts ,
-  const NOMAD::Display                       & out             )
-{
-  if ( !_model )
-    return;
-
-  int                   i ,  j = 0;
-  int                   nb_pts = evaluated_pts.size()   ,
-                        n      = _model->get_n0()       ,
-                        m      = _p.get_bb_nb_outputs();
-  const NOMAD::Double & h_min  = _p.get_h_min();
-  NOMAD::hnorm_type     h_norm = _p.get_h_norm();
-  NOMAD::Double         h , f , hm , fm , err;
-  NOMAD::Eval_Point     x ( n , m );
-
-  out << std::endl << NOMAD::open_block ( "evaluated points" );
-  std::list<const NOMAD::Eval_Point *>::const_iterator it , end = evaluated_pts.end();
-  for ( it = evaluated_pts.begin() ; it != end ; ++it ) {
-
-    if ( !(*it) )
-      continue;
-
-    h = (*it)->get_h();
-    f = (*it)->get_f();
-
-    for ( i = 0 ; i < n ; ++i )
-      x[i] = (**it)[i];
-
-    _model->predict ( x , true ); // pred_outside_bnds = true
-    _model->eval_hf ( x.get_bb_outputs(), h_min , h_norm , hm , fm );
-
-    out << "#";
-    out.display_int_w ( j++ , nb_pts );
-
-    out << " x=(";
-    if ( n < 5 )
-      (*it)->NOMAD::Point::display ( out , " " , 6 , -1 );
-    else
-      (*it)->NOMAD::Point::display ( out , " " , -1 , 20 );
-    out << ")";
-    if ( _p.has_constraints() ) {
-      err = (h.is_defined() && hm.is_defined()) ? h.rel_err(hm) * 100.0 : 100.0;
-      out << " [h=";
-      h.display ( out , "%11.3g" );
-      out << " hm=";
-      hm.display ( out , "%11.3g" );
-      out << " err_h=";
-      err.display ( out , "%.2f" );
-      out << "%]";
-    }
-    err = (f.is_defined() && fm.is_defined()) ? f.rel_err(fm) * 100.0 : 100.0;
-    out << " [f=";
-    f.display ( out , "%11.3g" );
-    out << " fm=";
-    fm.display ( out , "%11.3g" );
-    out << " err_f=";
-    err.display ( out , "%.2f" );
-    out	<< "%]" << std::endl;
-  }
-
-  out.close_block();
-}
-
-#endif
diff --git a/src/TGP_Model_Search.hpp b/src/TGP_Model_Search.hpp
deleted file mode 100644
index c31faf1..0000000
--- a/src/TGP_Model_Search.hpp
+++ /dev/null
@@ -1,332 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
-/*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
-/*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
-/*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
-/*                                                                                     */
-/*  Contact information:                                                               */
-/*    Ecole Polytechnique de Montreal - GERAD                                          */
-/*    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  */
-/*    e-mail: nomad@gerad.ca                                                           */
-/*    phone : 1-514-340-6053 #6928                                                     */
-/*    fax   : 1-514-340-5665                                                           */
-/*                                                                                     */
-/*  This program is free software: you can redistribute it and/or modify it under the  */
-/*  terms of the GNU Lesser General Public License as published by the Free Software   */
-/*  Foundation, either version 3 of the License, or (at your option) any later         */
-/*  version.                                                                           */
-/*                                                                                     */
-/*  This program is distributed in the hope that it will be useful, but WITHOUT ANY    */
-/*  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    */
-/*  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   */
-/*                                                                                     */
-/*  You should have received a copy of the GNU Lesser General Public License along     */
-/*  with this program. If not, see <http://www.gnu.org/licenses/>.                     */
-/*                                                                                     */
-/*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
-/*-------------------------------------------------------------------------------------*/
-/**
-  \file   TGP_Model_Search.hpp
-  \brief  TGP Model search (headers)
-  \author Sebastien Le Digabel
-  \date   2011-02-17
-  \see    TGP_Model_Search.cpp
-*/
-#ifdef USE_TGP
-
-#ifndef __TGP_MODEL_SEARCH__
-#define __TGP_MODEL_SEARCH__
-
-#include "LH_Search.hpp"
-#include "TGP_Model_Evaluator.hpp"
-
-namespace NOMAD {
-
-  /// Model search.
-  class TGP_Model_Search : public NOMAD::Search , private NOMAD::Uncopyable {
-
-  private:
-
-    NOMAD::TGP_Model * _model;
-
-    NOMAD::Model_Stats _one_search_stats;   ///< Stats for one search.
-    NOMAD::Model_Stats _all_searches_stats; ///< Stats for all searches.
-
-    /// Delete a list of points.
-    /**
-       \param pts The points -- \b IN/OUT.
-    */
-    static void clear_pts ( std::vector<NOMAD::Point *> & pts );
-
-    /// Delete a list of evaluation points.
-    /**
-       \param pts The points -- \b IN/OUT.
-    */
-    static void clear_pts ( std::vector<NOMAD::Eval_Point *> & pts );
-
-    /// Model construction.
-    /**
-       \param  cache          Cache of true evaluations                 -- \b IN.
-       \param  incumbent      The incumbent                             -- \b IN.
-       \param  delta_m        Mesh size parameter                       -- \b IN.
-       \param  out            The NOMAD::Display object                 -- \b IN.
-       \param  display_degree Display degree                            -- \b IN.
-       \param  display_lim    Max number of pts when sets are displayed -- \b IN.
-       \param  stats          Model search stats                        -- \b IN/OUT.
-       \param  compute_Ds2x   Flag to enable/disable Ds2x computation   -- \b OUT.
-       \param  XX             The set of prediction points              -- \b OUT.
-       \param  stop           Stop flag                                 -- \b OUT.
-       \param  stop_reason    Stop reason                               -- \b OUT.
-       \param  error_std      Error string                              -- \b OUT.
-       \return A boolean equal to \c true if the model has been constructed.
-    */
-    bool model_construction ( const NOMAD::Cache               & cache          ,
-			      const NOMAD::Point               & incumbent      ,
-			      const NOMAD::Point               & delta_m        ,
-			      const NOMAD::Display             & out            ,
-			      NOMAD::dd_type                     display_degree ,
-			      int                                display_lim    ,
-			      NOMAD::Stats                     & stats          ,
-			      bool                             & compute_Ds2x   ,
-			      std::vector<NOMAD::Eval_Point *> & XX             ,
-			      bool                             & stop           ,
-			      NOMAD::stop_type                 & stop_reason    ,
-			      std::string                      & error_str        );
-
-    /// Create a list of prediction points.
-    /**
-       \param  cache     Cache of true evaluations    -- \b IN.
-       \param  n         Number of variables          -- \b IN.
-       \param  m         Number of outputs            -- \b IN.
-       \param  incumbent The incumbent                -- \b IN.
-       \param  delta_m   Mesh size parameter          -- \b IN.
-       \param  XX        The set of prediction points -- \b OUT.
-    */
-    void set_XX ( const NOMAD::Cache               & cache     ,
-		  int                                n         ,
-		  int                                m         ,
-		  const NOMAD::Point               & incumbent ,
-		  const NOMAD::Point               & delta_m   ,
-		  std::vector<NOMAD::Eval_Point *> & XX          ) const;
-
-    /// Create the complete list of trial points (oracle + Ds2x + improv).
-    /**
-       \param oracle_pts     Oracle points              -- \b IN.
-       \param Ds2x_pts       Ds2x points                -- \b IN.
-       \param improv_pts     Improv points              -- \b IN.
-       \param incumbent      The incumbent              -- \b IN.
-       \param max_pts        Max number of trial points -- \b IN.
-       \param out            The NOMAD::Display object  -- \b IN.
-       \param display_degree Display degree             -- \b IN.
-       \param trial_pts      The list of trial points   -- \b OUT.
-     */
-    void create_trial_pts
-    ( const std::vector<NOMAD::Point *> & oracle_pts     ,
-      const std::vector<NOMAD::Point *> & Ds2x_pts       ,
-      const std::vector<NOMAD::Point *> & improv_pts     ,
-      const NOMAD::Point                & incumbent      ,
-      int                                 max_pts        ,
-      const NOMAD::Display              & out            ,
-      NOMAD::dd_type                      display_degree ,
-      std::vector<NOMAD::Point *>       & trial_pts        ) const;
-
-    /// Create oracle points by optimizing the model.
-    /**
-       \param  cache          Cache of true evaluations                 -- \b IN.
-       \param  incumbent      The incumbent                             -- \b IN.
-       \param  delta_m        Mesh size parameter                       -- \b IN.
-       \param  out            The NOMAD::Display object                 -- \b IN.
-       \param  display_degree Display degree                            -- \b IN.
-       \param  display_lim    Max number of pts when sets are displayed -- \b IN.
-       \param  XX             The set of prediction points              -- \b IN.
-       \param  oracle_pts     Oracle candidates points                  -- \b OUT.
-       \param  stop           Stop flag                                 -- \b OUT.
-       \param  stop_reason    Stop reason                               -- \b OUT.
-       \return A boolean equal to \c true oracle points are proposed.
-    */
-    bool create_oracle_pts
-    ( const NOMAD::Cache                     & cache          ,
-      const NOMAD::Point                     & incumbent      ,
-      const NOMAD::Point                     & delta_m        ,
-      const NOMAD::Display                   & out            ,
-      NOMAD::dd_type                           display_degree ,
-      int                                      display_lim    ,
-      const std::vector<NOMAD::Eval_Point *> & XX             ,
-      std::vector<NOMAD::Point *>            & oracle_pts     ,
-      bool                                   & stop           ,
-      NOMAD::stop_type                       & stop_reason      );
-
-    /// Model optimization.
-    /**
-       \param x0s            The three starting points -- \b IN.
-       \param out            The NOMAD::Display object -- \b IN.
-       \param display_degree Display degree            -- \b IN.
-       \param xf             Feasible solution \c xf   -- \b OUT.
-       \param xi             Infeasible solution \c xi -- \b OUT.
-       \param stop           Stop flag                 -- \b OUT.
-       \param stop_reason    Stop reason               -- \b OUT.
-    */
-    bool optimize_model ( const NOMAD::Eval_Point * x0s[3]         ,
-			  const NOMAD::Display    & out            ,
-			  NOMAD::dd_type            display_degree ,
-			  NOMAD::Point           *& xf             ,
-			  NOMAD::Point           *& xi             ,
-			  bool                    & stop           ,
-			  NOMAD::stop_type        & stop_reason      );
-
-    /// Project and accept or reject an oracle trial point.
-    /**
-       \param  cache          Cache of true evaluations -- \b IN.
-       \param  incumbent      The incumbent             -- \b IN.
-       \param  delta_m        Mesh size parameter       -- \b IN.
-       \param  out            The NOMAD::Display object -- \b IN.
-       \param  display_degree Display degree            -- \b IN.
-       \param  x              The oracle point         -- \b IN/OUT.
-       \return A boolean equal to \c true if the point is accepted.
-    */
-    bool check_oracle_point
-    ( const NOMAD::Cache   & cache          ,
-      const NOMAD::Point   & incumbent      ,
-      const NOMAD::Point   & delta_m        ,
-      const NOMAD::Display & out            ,
-      NOMAD::dd_type         display_degree ,
-      NOMAD::Point         & x                );
-
-    /// Insert a trial point in the evaluator control object.
-    /**
-       \param x              The point coordinates               -- \b IN.
-       \param signature      Signature                           -- \b IN.
-       \param incumbent      The incumbent                       -- \b IN.
-       \param display_degree Display degree                      -- \b IN.
-       \param ev_control     The NOMAD::Evaluator_Control object -- \b IN/OUT.
-    */
-    void register_point ( NOMAD::Point               x              ,
-			  NOMAD::Signature         & signature      ,
-			  const NOMAD::Point       & incumbent      ,,
-			  NOMAD::dd_type             display_degree ,
-			  NOMAD::Evaluator_Control & ev_control       ) const;
-
-    /// Create the list of improv points.
-    /**
-       These points (from the set \c XX) maximize
-         the expected improvement of the objective.
-       Priority is given to predicted feasible points.
-       \param  XX            The set of prediction points              -- \b IN.
-       \param incumbent      The incumbent                             -- \b IN.
-       \param max_pts        Max number of points                      -- \b IN.
-       \param out            The NOMAD::Display object                 -- \b IN.
-       \param display_degree Display degree                            -- \b IN.
-       \param display_lim    Max number of pts when sets are displayed -- \b IN.
-       \param Ds2x_pts       The list of improv points                 -- \b OUT.
-    */
-    void create_improv_pts
-    ( const std::vector<NOMAD::Eval_Point *> & XX             ,
-      const NOMAD::Point                     & incumbent      ,
-      int                                      max_pts        ,
-      const NOMAD::Display                   & out            ,
-      NOMAD::dd_type                           display_degree ,
-      int                                      display_lim    ,
-      std::vector<NOMAD::Point *>            & improv_pts       ) const;
-
-    /// Create the list of Ds2x points.
-    /**
-       These points (from the set \c XX) maximize the expected reduction in
-         predictive variance for each output.
-       \param  XX            The set of prediction points              -- \b IN.
-       \param out            The NOMAD::Display object                 -- \b IN.
-       \param display_degree Display degree                            -- \b IN.
-       \param display_lim    Max number of pts when sets are displayed -- \b IN.
-       \param Ds2x_pts       The list of Ds2x points                   -- \b OUT.
-    */
-    void create_Ds2x_pts
-    ( const std::vector<NOMAD::Eval_Point *> & XX             ,
-      const NOMAD::Display                   & out            ,
-      NOMAD::dd_type                           display_degree ,
-      int                                      display_lim    ,
-      std::vector<NOMAD::Point *>            & Ds2x_pts         ) const;
-
-    /// Prediction at one point.
-    /**
-       \param  x The point     -- \b IN.
-       \param  h Value of \c h -- \b OUT.
-       \param  f Value of \c f -- \b OUT.
-       \return A boolean equal to \c true if the prediction was possible.
-    */
-    bool predict ( const NOMAD::Point & x ,
-		   NOMAD::Double      & h ,
-		   NOMAD::Double      & f   ) const;
-
-    /// Display the prediction error for the evaluated points.
-    /**
-       \param evaluated_pts List of evaluated points  -- \b IN.
-       \param out           The NOMAD::Display object -- \b IN.
-    */
-    void display_eval_pred_errors
-    ( const std::list<const NOMAD::Eval_Point *> & evaluated_pts ,
-      const NOMAD::Display                       & out             );
-
-    /*----------------------------------------------------------------------*/
-
-  public:
-
-    /// Constructor.
-    /**
-       \param p Parameters -- \b IN.
-    */
-    TGP_Model_Search ( NOMAD::Parameters & p )
-      : NOMAD::Search ( p , NOMAD::MODEL_SEARCH ) , _model ( NULL ) {}
-    
-    /// Destructor.
-    virtual ~TGP_Model_Search ( void ) { reset(); }
-
-    /// Reset.
-    virtual void reset ( void );
-
-    /// The TGP model search.
-    /**
-       Based on quadratic regression/MFN interpolation models.
-       \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
-       \param nb_search_pts  Number of generated search points       -- \b OUT.
-       \param stop           Stop flag                               -- \b IN/OUT.
-       \param stop_reason    Stop reason                             -- \b OUT.
-       \param success        Type of success                         -- \b OUT.
-       \param count_search   Count or not the search                 -- \b OUT.
-       \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
-       \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
-    */
-    virtual void search ( NOMAD::Mads              & mads           ,
-			  int                      & nb_search_pts  ,
-			  bool                     & stop           ,
-			  NOMAD::stop_type         & stop_reason    ,
-			  NOMAD::success_type      & success        ,
-			  bool                     & count_search   ,
-			  const NOMAD::Eval_Point *& new_feas_inc   ,
-			  const NOMAD::Eval_Point *& new_infeas_inc   );
-
-    /// Access to the model.
-    /**
-       \return The model.
-    */
-    NOMAD::TGP_Model * get_model ( void ) const { return _model; }
-
-    //// Display stats.
-    /**
-       \param out The NOMAD::Display object -- \b IN.
-    */
-    virtual void display ( const NOMAD::Display & out ) const
-    {
-      out << _all_searches_stats;
-    }
-  };
-}
-
-#endif
-#endif
diff --git a/src/TGP_Output_Model.cpp b/src/TGP_Output_Model.cpp
deleted file mode 100644
index 55152a1..0000000
--- a/src/TGP_Output_Model.cpp
+++ /dev/null
@@ -1,486 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
-/*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
-/*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
-/*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
-/*                                                                                     */
-/*  Contact information:                                                               */
-/*    Ecole Polytechnique de Montreal - GERAD                                          */
-/*    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  */
-/*    e-mail: nomad@gerad.ca                                                           */
-/*    phone : 1-514-340-6053 #6928                                                     */
-/*    fax   : 1-514-340-5665                                                           */
-/*                                                                                     */
-/*  This program is free software: you can redistribute it and/or modify it under the  */
-/*  terms of the GNU Lesser General Public License as published by the Free Software   */
-/*  Foundation, either version 3 of the License, or (at your option) any later         */
-/*  version.                                                                           */
-/*                                                                                     */
-/*  This program is distributed in the hope that it will be useful, but WITHOUT ANY    */
-/*  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    */
-/*  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   */
-/*                                                                                     */
-/*  You should have received a copy of the GNU Lesser General Public License along     */
-/*  with this program. If not, see <http://www.gnu.org/licenses/>.                     */
-/*                                                                                     */
-/*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
-/*-------------------------------------------------------------------------------------*/
-/**
-  \file   TGP_Output_Model.cpp
-  \brief  TGP (Bayesian treed Gaussian process) model for one output (implementation)
-  \author Sebastien Le Digabel
-  \date   2011-02-07
-  \see    TGP_Output_Model.hpp
-*/
-
-#ifndef USE_TGP
-
-int TGP_OUTPUT_MODEL_DUMMY; // avoids that TGP_Output_Model.o has no symbols with ranlib
-
-#else
-
-#include "TGP_Output_Model.hpp"
-
-/*---------------------------------------------------------*/
-/*  NOMAD-TGP callback function (called regularly by TGP)  */
-/*---------------------------------------------------------*/
-// SLD -- 2014-09-04
-// void NOMAD::TGP_callback ( bool & TGP_interrupt )
-// {
-//   if ( NOMAD::TGP_Output_Model::get_force_quit() )
-//     TGP_interrupt = true;
-// }
-
-/*-----------------------------------*/
-/*   static members initialization   */
-/*-----------------------------------*/
-double NOMAD::TGP_Output_Model::_ditemps[7] =
-  { 1.0 , 0.0 , 0.0 , 1.0 , 1.0 , 0.0 , 1.0 };
-
-bool NOMAD::TGP_Output_Model::_force_quit = false;
-
-/*-----------------------------------*/
-/*            constructor            */
-/*-----------------------------------*/
-NOMAD::TGP_Output_Model::TGP_Output_Model
-( const std::list<const NOMAD::Eval_Point *> & X_pts     ,
-  int                                          bbo_index ,
-  int                                          seed      ,
-  const NOMAD::Display                       & out         )
-  : _out         ( out            ) ,
-    _p           ( X_pts.size()   ) ,
-    _Z           ( new double[_p] ) ,
-    _Z_is_scaled ( false          ) ,
-    _is_binary   ( true           ) ,
-    _bin_values  ( 2              ) ,
-    _is_fixed    ( false          ) ,
-    _tgp_state   ( NULL           ) ,
-    _tgp_model   ( NULL           ) ,
-    _tgp_its     ( NULL           )
-{
-  NOMAD::TGP_Output_Model::_force_quit = false;
-
-  _Z_scaling[0] = _Z_scaling[1] = 0.0;
-
-  std::list<const NOMAD::Eval_Point *>::const_iterator it , end = X_pts.end();
-
-  NOMAD::Double tmp , Zmin , Zmax , Zsum = 0.0;
-  int           j = 0;
-
-  for ( it = X_pts.begin() ; it != end ; ++it ) {
-
-    // the output value:
-    tmp = (*it)->get_bb_outputs()[bbo_index];
-    _Z[j++] = tmp.value();
-    
-    // Z scaling parameters (1/2):
-    Zsum += tmp;
-    if ( !Zmin.is_defined() || tmp < Zmin )
-      Zmin = tmp;
-    if ( !Zmax.is_defined() || tmp > Zmax )
-      Zmax = tmp;
-
-    // check if the output is binary:
-    if ( _is_binary ) {
-      if ( !_bin_values[0].is_defined() )
-	_bin_values[0] = tmp;
-      else if ( !_bin_values[1].is_defined() && tmp != _bin_values[0] )
-	_bin_values[1] = tmp;
-      else {
-	if ( tmp != _bin_values[0] && tmp != _bin_values[1] )
-	  _is_binary = false;
-      }
-    }
-  }
-
-  // Z scaling parameters (1/2):
-  _Z_scaling[0] = (Zmax - Zmin).value();
-
-  // the output is fixed:
-  if ( _Z_scaling[0] == 0.0 )
-    _is_fixed = true;
-
-  else {
-
-    _Z_scaling[1] = (Zsum/_p).value() / _Z_scaling[0];
-
-    if ( !_is_binary )
-      _bin_values = NOMAD::Point(2);
-
-    // RNG (random number generator):
-    int state[] = { 896 , 265 , 371 };
-
-    // if seed==0, the model will be the same as the one constructed in R,
-    // with values taken from the R tgp functions for:
-    //   set.seed(0)
-    //   state <- sample(seq(0, 999), 3)
-
-    // otherwise use rand() to get three different integers in [0;999]:
-    if ( seed != 0 ) {
-      state[0] = rand()%1000;
-      while ( state[1] == state[0] )
-	state[1] = rand()%1000;
-      while ( state[2] == state[0] || state[2] == state[1] )
-	state[2] = rand()%1000;
-    }
-    _tgp_state = newRNGstate ( three2lstate ( state ) );
-
-    // importance tempering:
-    _tgp_its = new Temper ( NOMAD::TGP_Output_Model::_ditemps );
-  }
-}
-
-/*--------------------------------------------*/
-/*                  destructor                */
-/*--------------------------------------------*/
-NOMAD::TGP_Output_Model::~TGP_Output_Model ( void )
-{
-  if ( _Z )
-    delete [] _Z;
-  if ( _tgp_model )
-    delete _tgp_model;
-  if ( _tgp_its )
-    delete _tgp_its;
-  if ( _tgp_state )
-    deleteRNGstate ( _tgp_state );
-}
-
-/*--------------------------------------------*/
-/*              compute the model             */
-/*--------------------------------------------*/
-void NOMAD::TGP_Output_Model::compute ( double ** X              ,
-					double ** XX             ,
-					double ** Xsplit         ,
-					int       n              ,
-					int       n_XX           ,
-					int       nsplit         ,
-					Params  * tgp_params     ,
-					double ** tgp_rect       ,
-					int     * tgp_BTE        ,
-					bool      tgp_linburn    ,
-					bool      tgp_verb       ,
-					double  * ZZ             ,   // OUT
-					double  * Ds2x           ,   // OUT, may be NULL
-					int     * improv           ) // OUT, may be NULL
-{
-  bool compute_Ds2x   = ( Ds2x   != NULL );
-  bool compute_improv = ( improv != NULL );
-
-  // the output is fixed:
-  if ( _is_fixed ) {
-    for ( int j = 0 ; j < n_XX ; ++j ) {
-      ZZ[j] = _bin_values[0].value();
-      if ( compute_Ds2x )
-	Ds2x[j] = 0.0;
-    }
-    return;
-  }
-
-  // scale Z:
-  scale_Z();
-
-  // construct the TGP model:
-  _tgp_model = new Model ( tgp_params ,
-			   n          ,
-			   tgp_rect   ,
-			   0          , // Id=0
-			   false      , // trace=false
-			   _tgp_state   );
-
-  _tgp_model->Init ( X        ,
-		     _p       ,
-		     n        ,
-		     _Z       ,
-		     _tgp_its ,
-		     NULL     ,    // dtree=NULL
-		     0        ,    // ncol=0
-		     NULL       ); // dhier=NULL
-
-  // set the NOMAD-TGP callback function:
-  // _tgp_model->set_callback ( NOMAD::TGP_callback ); // SLD -- 2014-09-04
-
-  // TGP verbim (display):
-#ifdef TGP_DEBUG
-  _tgp_model->Outfile ( stdout , 1 ); // set 10 for full display
-#else
-  if ( tgp_verb )
-    _tgp_model->Outfile ( stdout , 1 );
-  else
-    _tgp_model->Outfile ( NULL , 0 );
-#endif
-
-  // set the splitting locations (Xsplit):
-  _tgp_model->set_Xsplit ( Xsplit , nsplit , n );
-
-  // linear model initialization rounds -B thru 1:
-  if ( tgp_linburn )
-    _tgp_model->Linburn ( tgp_BTE[0] , _tgp_state );
-
-  // do model rounds 1 thru B (burn in):
-  _tgp_model->Burnin ( tgp_BTE[0] , _tgp_state );
-
-  // do the MCMC rounds B,...,T:
-  Preds * tgp_preds = new_preds ( XX                      ,
- 				  n_XX                    ,
- 				  0                       ,
- 				  n                       ,
- 				  tgp_rect                ,
- 				  tgp_BTE[1]-tgp_BTE[0]   ,
- 				  false                   , // pred_n
- 				  true                    , // krige
- 				  _tgp_its->IT_ST_or_IS() ,
-				  compute_Ds2x            ,
- 				  compute_improv          ,
- 				  false                   , // sens
- 				  tgp_BTE[2]                );
-
-  _tgp_model->Sample ( tgp_preds , tgp_BTE[1]-tgp_BTE[0] , _tgp_state );
-
-  // if importance tempering, then update the pseudo-prior
-  // based on the observation counts:
-  if ( _tgp_its->Numit() > 1 ) 
-    _tgp_its->UpdatePrior ( _tgp_model->update_tprobs() , _tgp_its->Numit() );
-
-  // copy back the itemps:
-  _tgp_model->DupItemps ( _tgp_its );
-
-  // kriging mean:
-  wmean_of_columns ( ZZ             ,
-		     tgp_preds->ZZm ,
-		     tgp_preds->R   ,
-		     n_XX           ,
-		     (_tgp_its->IT_ST_or_IS()) ? tgp_preds->w : NULL );
-
-  int i;
-
-  // expected reduction in predictive variance (Ds2x):
-  if ( compute_Ds2x ) {
-    for ( i = 0 ; i < n_XX ; ++i )
-      Ds2x[i] = 0.0;
-    if ( tgp_preds->Ds2x )
-      wmean_of_columns ( Ds2x            ,
-			 tgp_preds->Ds2x ,
-			 tgp_preds->R    ,
-			 tgp_preds->nn   ,
-			 (_tgp_its->IT_ST_or_IS()) ? tgp_preds->w : NULL );
-  }
-
-  // expected improvement of objective (improv):
-  if ( compute_improv ) {
-
-    // double * improvec = new double [n_XX];
-    // wmean_of_columns ( improvec ,
-    // 		       tgp_preds->improv,
-    // 		       tgp_preds->R,
-    // 		       tgp_preds->nn,
-    // 		       (_tgp_its->IT_ST_or_IS()) ? tgp_preds->w : NULL );
-    // for ( i = 0 ; i < n_XX ; ++i )
-    //   _out << "IMPROVEC[" << i<< "] = " << improvec[i] << std::endl;   
-    // delete [] improvec;
-
-    int *ir = (int*) GetImprovRank ( tgp_preds->R      ,
- 				     tgp_preds->nn     ,
- 				     tgp_preds->improv ,
- 				     true              , // improv=true
- 				     tgp_preds->nn     , // numirank = n_XX
- 				     (_tgp_its->IT_ST_or_IS()) ? tgp_preds->w : NULL );
-    
-    for ( i = 0 ; i < n_XX ; ++i ) {
-      improv[i] = ir[i];
-      if ( improv[i] == 0 )
-	improv[i] = n_XX;
-    }
-
-    free ( ir );
-
-    // for ( i = 0 ; i < n_XX ; ++i )
-    //  _out << "RANK[" << i<< "] = " << improv[i] << std::endl;
-  }
-
-  delete_preds ( tgp_preds );
-
-#ifdef TGP_DEBUG
-  _tgp_model->Outfile ( NULL , 0 );
-#endif
-
-  // unscale Z and ZZ:
-  unscale_Z ( ZZ , n_XX );
-  unscale_Z();
-
-  // treat binary output:
-  if ( _is_binary )
-    treat_binary_output ( ZZ , n_XX );
-
-  // disable TGP display:
-  _tgp_model->Outfile ( NULL , 0 );
-}
-
-/*--------------------------------------------*/
-/*           prediction at one point          */
-/*--------------------------------------------*/
-bool NOMAD::TGP_Output_Model::predict ( double  * XX       ,
-					int       n        ,
-					double  & ZZ       ,
-					double ** tgp_rect   ) const
-{
-  if ( _is_fixed ) {
-    ZZ = _bin_values[0].value();
-    return true;
-  }
-
-  // do the MCMC rounds B,...,T:
-  Preds * tgp_preds = new_preds ( &XX                     ,
-				  1                       ,
-				  0                       ,
-				  n                       ,
-				  tgp_rect                ,
-				  1                       ,    // instead of T-B
-				  false                   ,    // pred_n
-				  true                    ,    // krige
-				  _tgp_its->IT_ST_or_IS() ,
-				  false                   ,    // delta_s2 (flag for Ds2x)
-				  false                   ,    // improv
-				  false                   ,    // sens
-				  1                         ); // instead of E
- 
-  // new TGP function for the one point prediction:
-  _tgp_model->MAPreplace();
-
-  // prediction:
-  _tgp_model->Predict ( tgp_preds  ,
-			1          , // instead of T-B
-			_tgp_state   );
-
-  // kriging mean:
-  ZZ = *tgp_preds->ZZm[0];
-  // no need to do:
-  //   wmean_of_columns ( &ZZ            ,
-  // 		          tgp_preds->ZZm ,
-  // 		          tgp_preds->R   ,
-  // 		          1              ,
-  // 		          (_tgp_its->IT_ST_or_IS()) ? tgp_preds->w : NULL );
-
-  delete_preds ( tgp_preds );
-
-  // unscale:
-  unscale_Z ( &ZZ , 1 );
-
-  // treat binary output:
-  if ( _is_binary )
-    treat_binary_output ( &ZZ , 1 );
-
-  return true;
-}
-
-/*--------------------------------------------*/
-/*            scale Z or ZZ (private)         */
-/*--------------------------------------------*/
-void NOMAD::TGP_Output_Model::scale_Z ( void )
-{
-  if ( _Z_is_scaled || _is_fixed )
-    return;
-  scale_Z ( _Z , _p );
-  _Z_is_scaled = true;
-}
-
-void NOMAD::TGP_Output_Model::scale_Z ( double * Z , int n ) const
-{
-  if ( _is_fixed )
-    return;
-  for ( int i = 0 ; i < n ; ++i )
-    Z[i] = Z[i] / _Z_scaling[0] - _Z_scaling[1];
-}
-
-/*--------------------------------------------*/
-/*          unscale Z or ZZ (private)         */
-/*--------------------------------------------*/
-void NOMAD::TGP_Output_Model::unscale_Z ( void )
-{
-  if ( !_Z_is_scaled || _is_fixed )
-    return;
-  unscale_Z ( _Z , _p );
-  _Z_is_scaled = false;
-}
-
-void NOMAD::TGP_Output_Model::unscale_Z ( double * Z , int n ) const
-{
-  if ( _is_fixed )
-    return;
-  for ( int i = 0 ; i < n ; ++i )
-    Z[i] = ( Z[i] + _Z_scaling[1] ) * _Z_scaling[0];
-}
-
-/*--------------------------------------------*/
-/*         treat binary output (private)      */
-/*--------------------------------------------*/
-void NOMAD::TGP_Output_Model::treat_binary_output ( double * ZZ , int nout ) const
-{
-  NOMAD::Double d0 , d1;
-  for ( int j = 0 ; j < nout ; ++j ) {     
-    d0 = (_bin_values[0] - ZZ[j]).abs();
-    d1 = (_bin_values[1] - ZZ[j]).abs();
-    if ( d0 < d1 )
-      ZZ[j] = _bin_values[0].value();
-    else
-      ZZ[j] = _bin_values[1].value();
-  }
-}
-
-/*--------------------------------------------*/
-/*                    display                 */
-/*--------------------------------------------*/
-void NOMAD::TGP_Output_Model::display ( const NOMAD::Display & out ) const
-{
-  out << "Z (";
-  if ( !_Z_is_scaled )
-    out << "un";
-  out << "scaled)" << " = [ ";
-  for ( int i = 0 ; i < _p ; ++i ) {
-    out << std::setw(15) << _Z[i];
-    if ( (i+1)%5 == 0 )
-      out << " ;" << std::endl << "      ";
-    else
-      out << " ";
-  }
-  out << "]" << std::endl
-      << "size(Z)=" << _p << std::endl;
-  if ( _is_fixed )
-    out << "fixed output";
-  else if ( _is_binary )
-    out << "binary output: values in {"
-	<< _bin_values[0] << "," << _bin_values[1]
-	<< "}";
-  out << std::endl
-      << "Z_scaling=[" << _Z_scaling[0] << "," << _Z_scaling[1]
-      << "]" << std::endl;
-}
-
-#endif
diff --git a/src/TGP_Output_Model.hpp b/src/TGP_Output_Model.hpp
deleted file mode 100644
index eaae843..0000000
--- a/src/TGP_Output_Model.hpp
+++ /dev/null
@@ -1,241 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
-/*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
-/*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
-/*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
-/*                                                                                     */
-/*  Contact information:                                                               */
-/*    Ecole Polytechnique de Montreal - GERAD                                          */
-/*    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  */
-/*    e-mail: nomad@gerad.ca                                                           */
-/*    phone : 1-514-340-6053 #6928                                                     */
-/*    fax   : 1-514-340-5665                                                           */
-/*                                                                                     */
-/*  This program is free software: you can redistribute it and/or modify it under the  */
-/*  terms of the GNU Lesser General Public License as published by the Free Software   */
-/*  Foundation, either version 3 of the License, or (at your option) any later         */
-/*  version.                                                                           */
-/*                                                                                     */
-/*  This program is distributed in the hope that it will be useful, but WITHOUT ANY    */
-/*  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A    */
-/*  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.   */
-/*                                                                                     */
-/*  You should have received a copy of the GNU Lesser General Public License along     */
-/*  with this program. If not, see <http://www.gnu.org/licenses/>.                     */
-/*                                                                                     */
-/*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
-/*-------------------------------------------------------------------------------------*/
-/**
-  \file   TGP_Output_Model.hpp
-  \brief  TGP (Bayesian treed Gaussian process) model for one output (headers)
-  \author Sebastien Le Digabel
-  \date   2011-02-07
-  \see    TGP_Output_Model.cpp
-*/
-#ifdef USE_TGP
-
-#ifndef __TGP_OUTPUT_MODEL__
-#define __TGP_OUTPUT_MODEL__
-
-#include "Eval_Point.hpp"
-#include "tgp.h"
-
-/*------------------------------*/
-/*  TGP C functions prototypes  */
-/*------------------------------*/
-extern "C"
-{
-  unsigned long   three2lstate   ( int           * state );
-  void          * newRNGstate    ( unsigned long   s     );
-  void            deleteRNGstate ( void          * seed  );
-  unsigned int *  GetImprovRank  ( int, int, double **, int, int, double * );
-}
-
-namespace NOMAD {
-
-  // NOMAD-TGP callback function (called regularly by TGP).
-  // void TGP_callback ( bool & TGP_interrupt ); // SLD -- 2014-09-04
-
-  /// TGP models for one output.
-  class TGP_Output_Model : private NOMAD::Uncopyable {
-
-  private:
-
-    const NOMAD::Display & _out; ///< Display.
-
-    int           _p;            ///< Number of interpolation points.
-
-    double      * _Z;            ///< Output vector (size = \c p).
-
-    double        _Z_scaling[2]; ///< To scale/unscale \c Z.
-    bool          _Z_is_scaled;  ///< If \c Z is scaled or not.
-
-    bool          _is_binary;    ///< If the output has only two values.
-    NOMAD::Point  _bin_values;   ///< Binary output values.
-
-    bool          _is_fixed;     ///< Only one output value saved in \c bin_values[0].
-
-    void        * _tgp_state;    ///< RNG (random number generator).
-
-    Model       * _tgp_model;    ///< The TGP model.
-
-    Temper      * _tgp_its;      ///< Importance tempering object.
-
-    static double _ditemps[7];   ///< Importance tempering parameters.
-
-    static bool   _force_quit;   ///< Flag equal to \c true if ctrl-c is pressed.
-
-    /// Treat binary output.
-    /**
-       \param ZZ   Output vector  -- \b IN/OUT.
-       \param nout Size of output -- \b IN.
-    */
-    void treat_binary_output ( double * ZZ , int nout ) const;
-
-    /// Scale member \c _Z.
-    void scale_Z ( void );
-
-    /// Unscale member \c _Z.
-    void unscale_Z ( void );
-
-    /// Scale an output \c Z.
-    /**
-       \param Z Output to scale -- \b IN/OUT.
-       \param n Size of output  -- \b IN.
-    */
-    void scale_Z ( double * Z , int n ) const;
-
-    /// Unscale an output \c Z.
-    /**
-       \param Z Output to unscale -- \b IN/OUT.
-       \param n Size of output    -- \b IN.
-    */
-    void unscale_Z ( double * Z , int n ) const;
-
-  public:
-
-    /// Constructor.
-    /**
-       \param X_pts     Interpolation points with output values          -- \b IN.
-       \param bbo_index Output index                                     -- \b IN.
-       \param seed      Random seed (\c 0 to have the same \c R results) -- \b IN.
-       \param out       Display object                                   -- \b IN.
-    */
-    explicit TGP_Output_Model
-    ( const std::list<const NOMAD::Eval_Point *> & X_pts     ,
-      int                                          bbo_index ,
-      int                                          seed      ,
-      const NOMAD::Display                       & out         );
-
-    /// Destructor.
-    virtual ~TGP_Output_Model ( void );
-
-    /// Force quit (called by pressing ctrl-c).
-    static void force_quit ( void )
-    {
-      NOMAD::TGP_Output_Model::_force_quit = true;
-    }
-
-    /// Access to the \c force_quit flag.
-    /**
-       \return The \c force_quit flag.
-    */
-    static bool get_force_quit ( void ) { return NOMAD::TGP_Output_Model::_force_quit; }
-
-    /// Compute the model.
-    /**
-       \param X              \c X matrix (\c X_pts \c x \c n): interpolation pts -- \b IN.
-       \param XX             \c XX matrix (\c n_XX \c x \c n): prediction points -- \b IN.
-       \param Xsplit         \x Xsplit matrix (\c X plus \c XX)                  -- \b IN.
-       \param n              Dimension and number of columns of the matrices     -- \b IN.
-       \param n_XX           Number of rows of \c XX                             -- \b IN.
-       \param nsplit         Number of rows of \c Xsplit (\c X_pts \c + \c n_XX) -- \b IN.
-       \param tgp_params     TGP parameters                                      -- \b IN.
-       \param tgp_rect       TGP rectangle                                       -- \b IN.
-       \param tgp_BTE        TGP \c B,\c T, and \c R parameters                  -- \b IN.
-       \param tgp_linburn    TGP \c linburn parameter                            -- \b IN.
-       \param tgp_verb       TGP \c verb parameter                               -- \b IN.
-       \param ZZ             \c ZZ vector (size \c n_XX): prediction values      -- \b OUT.
-       \param Ds2x           Expected reduction in predictive var (size \c n_XX) -- \b OUT.
-       \param improv         Expected improvement of the obj. (size \c n_XX)     -- \b OUT.
-    */
-    void compute ( double ** X           ,
-		   double ** XX          ,
-		   double ** Xsplit      ,
-		   int       n           ,
-		   int       n_XX        ,
-		   int       nsplit      ,
-		   Params  * tgp_params  ,
-		   double ** tgp_rect    ,
-		   int     * tgp_BTE     ,
-		   bool      tgp_linburn ,
-		   bool      tgp_verb    ,
-		   double  * ZZ          ,
-		   double  * Ds2x        ,
-		   int     * improv        );
-
-    /// Prediction at one point.
-    /**
-       \param XX         \c XX matrix (\c n_XX \c x \c n): prediction points -- \b IN.
-       \param n          Dimension and number of columns of the matrices     -- \b IN.
-       \param ZZ         \c ZZ vector (size \c n_XX): prediction values      -- \b OUT.
-       \param tgp_rect   TGP rectangle                                       -- \b IN.
-       \return A boolean equal to \c true if the prediction went well.
-    */
-    bool predict ( double  * XX       ,
-		   int       n        ,
-		   double  & ZZ       ,
-		   double ** tgp_rect   ) const;
-
-    /// Access to \c Z.
-    /**
-       \return The \c Z vector.
-    */
-    const double * get_Z ( void ) const { return _Z; }
-
-    /// Access to the \c fixed flag.
-    /**
-       \return The \c fixed flag.
-    */
-    bool is_fixed ( void ) const { return _is_fixed; }
-
-    /// Access to the \c binary flag.
-    /**
-       \return The \c binary flag.
-    */
-    bool is_binary ( void ) const { return _is_binary; }
-
-    /// Default display.
-    void display ( void ) { display ( _out ); }
-
-    /// Display.
-    /**
-       \param out Display -- \b IN.
-    */
-    void display ( const NOMAD::Display & out ) const;
-  };
-
-  /// Display a NOMAD::TGP_Output_Model object.
-  /**
-     \param out The NOMAD::Display object                          -- \b IN.
-     \param s   The NOMAD::TGP_Output_Model object to be displayed -- \b IN.
-     \return    The NOMAD::Display object.
-  */
-  inline const NOMAD::Display & operator << ( const NOMAD::Display          & out ,
-					      const NOMAD::TGP_Output_Model & s     ) {
-    s.display ( out );
-    return out;
-  }
-
-}
-
-#endif
-#endif
diff --git a/src/Uncopyable.hpp b/src/Uncopyable.hpp
index 64065a3..5b2dc86 100644
--- a/src/Uncopyable.hpp
+++ b/src/Uncopyable.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
diff --git a/src/VNS_Search.cpp b/src/VNS_Search.cpp
index 508057a..647dd6c 100644
--- a/src/VNS_Search.cpp
+++ b/src/VNS_Search.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -129,7 +136,7 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
             out.close_block ( "end of VNS search (no signature)" );
         return;
     }
-    
+        
     int n = signature->get_n();
     if ( n != x->size() )
     {
@@ -143,9 +150,11 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
     
     signature->get_one_direction ( dir , _k - 1);
     
+    NOMAD::Point xp(n);
+    for (int i = 0 ; i < n ; ++i )
+        xp[i] = ( (_p.get_bb_input_type())[i]==NOMAD::BINARY && dir[i]==1.0 && (*x)[i]==1.0 ) ? 0.0 : xp[i] = (*x)[i] + dir[i];
+
     
-    // shaking: construct x':
-    NOMAD::Point xp = *x + dir;
     
     // shaking: the perturbation is tried twice with dir and -dir
     //          (in case x == x + dir after snapping)
@@ -179,7 +188,11 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
     
     // Current mesh indices
     const NOMAD::Point         old_mesh_indices = signature->get_mesh()->get_mesh_indices ( );
+    // Current min mesh size
     const NOMAD::Point            old_delta_min = signature->get_mesh()->get_min_mesh_size();
+    // Current min poll size
+    const NOMAD::Point            old_Delta_min = signature->get_mesh()->get_min_poll_size();
+
     
     
     // stats:
@@ -187,7 +200,7 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
     
     // current number of blackbox evaluations:
     int  bbe             = stats.get_bb_eval();
-    int  blk_eva		 = stats.get_block_eval();
+    int  blk_eva         = stats.get_block_eval();
     int  sgte_eval       = stats.get_sgte_eval();
     int  mads_iterations = stats.get_iterations();
     bool has_sgte        = _p.has_sgte();
@@ -196,17 +209,17 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
     if ( display_degree == NOMAD::FULL_DISPLAY )
     {
         out << "        it = " << mads_iterations << std::endl
-        << "       bbe = " << bbe << std::endl
-        << "   blk_eva = " << blk_eva << std::endl;
+            << "       bbe = " << bbe << std::endl
+            << "   blk_eva = " << blk_eva << std::endl;
         if ( has_sgte )
             out << " sgte_eval = " << sgte_eval << std::endl;
         out << "mesh_indices = ( " << old_mesh_indices << " ) " << std::endl
-        << "         k = " << _k << std::endl
-        << "      kmax = " << _k_max << std::endl
-        << "         x = ( ";
+            << "         k = " << _k << std::endl
+            << "      kmax = " << _k_max << std::endl
+            << "         x = ( ";
         x->Point::display ( out , " " , 5 , _p.get_point_display_limit() );
         out << " ) f=" << x->get_f() << " h=" << x->get_h() << std::endl
-        << "       dir = ( ";
+            << "       dir = ( ";
         dir.Point::display ( out , " " , 5 , _p.get_point_display_limit() );
         out << " ) |dir|=";
         NOMAD::Double norm = dir.norm();
@@ -215,7 +228,7 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
         xp.display ( out , " " , 5 , _p.get_point_display_limit() );
         out << " )" << std::endl << std::endl;
         out << "bb_eval (before+VNS only) objective_value"
-        << std::endl << std::endl;
+            << std::endl << std::endl;
     }
     
     // save parameters that are going to be modified:
@@ -252,6 +265,7 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
     bool                                old_uce = _p.get_user_calls_enabled();
     bool                                old_epe = _p.get_extended_poll_enabled();
     const std::vector<NOMAD::bb_output_type> old_bbot = _p.get_bb_output_type();
+    int            old_max_eval_intensification = _p.get_max_eval_intensification();
     
     // save list of starting points:
     std::string x0_cache_file = _p.get_x0_cache_file();
@@ -263,10 +277,14 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
             x0s.push_back ( new Point ( *x0s_tmp[k] ) );
     }
     
+    if ( _p.get_display_degree() == NOMAD::FULL_DISPLAY )
+        _p.set_DISPLAY_DEGREE ( NOMAD::NORMAL_DISPLAY );
+    else if ( _p.get_display_degree() == NOMAD::NORMAL_DISPLAY )
+        _p.set_DISPLAY_DEGREE ( NOMAD::MINIMAL_DISPLAY );
+
+    
     // modify parameters:
     // ------------------
-    _p.set_DISPLAY_DEGREE(NOMAD::NO_DISPLAY);
-    
     _p.set_SOLUTION_FILE  ( ""       );
     _p.set_LH_SEARCH      ( 0 , 0    );
     _p.set_VNS_SEARCH     ( false    );
@@ -293,7 +311,7 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
             _p.set_DISPLAY_STATS ( NOMAD::itos(sgte_eval) + "+SGTE OBJ (VNS--surrogate)" );
         else
         {
-            std::list<std::string>                 ds    = old_ds;
+            std::list<std::string> ds    = old_ds;
             std::list<std::string>::iterator       it    = ds.begin();
             std::list<std::string>::const_iterator end   = ds.end();
             std::string                            s_bbe = NOMAD::itos(bbe) + "+";
@@ -317,7 +335,7 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
         std::list<std::string>::iterator       it    = sf.begin();
         std::list<std::string>::const_iterator end   = sf.end();
         std::string                            s_bbe = NOMAD::itos(bbe) + "+";
-        std::string                            s_blk	= NOMAD::itos(blk_eva) + "+";
+        std::string                            s_blk = NOMAD::itos(blk_eva) + "+";
         while ( it != end )
         {
             if ( *it == "BBE" )
@@ -327,17 +345,9 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
             ++it;
         }
         sf.push_back ( " (VNS)" );
-        
-        _p.set_STATS_FILE( old_stats_file_name, sf);
+        _p.set_STATS_FILE ( old_stats_file_name , sf );
     }
     
-    
-    // Mesh size at current mads iterate can be used as termination criterion for vns search.
-    // Mesh indices are reinitialized during p.check()
-    NOMAD::Point delta=signature->get_mesh()->get_delta ( );
-    signature->get_mesh()->set_min_mesh_sizes( delta );
-    
-    
     // X0:
     _p.set_EXTERN_SIGNATURE ( signature );
     _p.set_X0 ( xp );
@@ -348,6 +358,12 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
     else
         _p.set_MAX_BB_EVAL ( old_max_bbe - bbe );
     
+    // MAX_EVAL_INTENSIFICATION
+    if ( old_max_eval_intensification > 0 && _p.get_intensification_type() == NOMAD::POLL_ONLY )
+        _p.set_MAX_EVAL_INTENSIFICATION ( 0 );
+    
+    
+    
     // MAX_SGTE_EVAL:
     if ( old_max_sgte_eval > 0 )
         _p.set_MAX_SGTE_EVAL ( old_max_sgte_eval - sgte_eval );
@@ -379,11 +395,24 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
         _p.set_STOP_IF_FEASIBLE ( false );
     }
     
+    // The mesh size before starting vns search
+    // Mesh indices, mesh size and poll size are reinitialized during p.check()
+    NOMAD::Point delta=signature->get_mesh()->get_delta ( );
+    NOMAD::Point Delta=signature->get_mesh()->get_Delta ( );
+    
     // check the parameters:
     _p.check ( false ,    // remove_history_file  = false
               false ,    // remove_solution_file = false
               false   ); // remove_stats_file    = false
     
+    // Mesh and poll sizes at current mads iterate can be used as termination criterion for vns search (the mesh object may set min mesh size to initial mesh size if necessary).
+    signature->get_mesh()->set_min_mesh_sizes( delta );
+    signature->get_mesh()->set_min_poll_sizes( Delta );
+    
+    // Modified dimension after extern signature is set
+    int modified_dimension = _p.get_dimension();
+
+    
     // Evaluator_Control:
     NOMAD::Evaluator_Control & ev_control = mads.get_evaluator_control();
     
@@ -445,6 +474,12 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
         }
         else if ( !x0_cache_file.empty() )
             _p.set_X0 ( x0_cache_file );
+        
+        if ( x0s.size() !=0 && x0s[0]->size() != modified_dimension  )
+        {
+            _p.reset_X0();
+            _p.set_X0 ( *x );
+        }
     }
     
     // restore other saved parameters:
@@ -473,17 +508,18 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
     _p.set_MAX_TIME                   ( old_max_time                         );
     _p.set_SGTE_EVAL_SORT             ( old_ses                              );
     _p.set_OPT_ONLY_SGTE              ( opt_only_sgte                        );
-    _p.set_BB_OUTPUT_TYPE			  ( old_bbot							 );
+    _p.set_BB_OUTPUT_TYPE             ( old_bbot                             );
+    _p.set_MAX_EVAL_INTENSIFICATION   ( old_max_eval_intensification         );
     
     
     _p.check ( false ,    // remove_history_file  = false
               false ,    // remove_solution_file = false
               false   ); // remove_stats_file    = false
     
-    // restore min mesh sizes and mesh indices
+    // Needed because mesh reinitialized during p.check()
     signature->get_mesh()->set_min_mesh_sizes( old_delta_min );
-    signature->get_mesh()->set_mesh_indices( old_mesh_indices ); // Needed because mesh indices reinitialized during p.check()
-    
+    signature->get_mesh()->set_min_poll_sizes( old_Delta_min ); 
+    signature->get_mesh()->set_mesh_indices( old_mesh_indices );
     
     // surrogate evaluations: perform only one true evaluation:
     if ( has_sgte && !opt_only_sgte )
@@ -606,7 +642,7 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
             // ( active_barrier.check_PEB_constraints() ):
             if ( _p.get_barrier_type() == NOMAD::PEB_P )
                 ( ( _p.get_opt_only_sgte() ) ? sgte_barrier : true_barrier ).check_PEB_constraints ( *new_infeas_inc , display_degree==NOMAD::FULL_DISPLAY );
-        }		
+        }
         
         // number of search points and success:
         if ( opt_only_sgte )
@@ -622,8 +658,16 @@ void NOMAD::VNS_Search::search ( NOMAD::Mads              & mads           ,
         
         // solution file:
         if ( bf )
+        {
             ev_control.write_solution_file ( *bf );
+        }
         
+        if ( new_feas_inc && display_degree > NOMAD::NO_DISPLAY && display_degree < NOMAD::FULL_DISPLAY )
+        {
+            std::list<std::string> ds    = old_ds;
+            ds.push_back ( " (VNS)" );
+            ev_control.display_stats(false, out, ds , new_feas_inc , true , NULL );
+        }
     }
     
     // final display:
diff --git a/src/VNS_Search.hpp b/src/VNS_Search.hpp
index f74a3fe..e966c3f 100644
--- a/src/VNS_Search.hpp
+++ b/src/VNS_Search.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   VNS_Search.hpp
-  \brief  VNS search (headers)
-  \author Sebastien Le Digabel
-  \date   2010-04-12
-  \see    VNS_Search.cpp
-*/
+ \file   VNS_Search.hpp
+ \brief  VNS search (headers)
+ \author Sebastien Le Digabel
+ \date   2010-04-12
+ \see    VNS_Search.cpp
+ */
 #ifndef __VNS_SEARCH__
 #define __VNS_SEARCH__
 
@@ -47,57 +54,57 @@
 #include "Search.hpp"
 
 namespace NOMAD {
-
-  /// Variable Neighborhood Search (VNS) search.
-  class VNS_Search : public NOMAD::Search , private NOMAD::Uncopyable {
-
-  private:
-
-    int                           _k; ///< VNS neighborhood parameter.
-    int                       _k_max; ///< Maximum value of \c _k.
-    const NOMAD::Eval_Point * _old_x; ///< Previous reference point (updates \c _k).
     
-
-  public:
-
-    /// Constructor.
-    /**
-       \param p Parameters -- \b IN.
-    */
-    VNS_Search ( NOMAD::Parameters & p )
-      : NOMAD::Search ( p , NOMAD::VNS_SEARCH     ) ,
-	_k            ( 1                         ) ,
-	_k_max        ( 1                         ) ,
-	_old_x        ( NULL                      )   {}
-    
-    /// Destructor.
-    virtual ~VNS_Search ( void ) {}
-
-    /// Reset.
-    virtual void reset ( void );
-
-    /// The VNS search.
-    /**
-       Principle: x --[shaking(k)]--> x' --[descent]--> x'' .
-       \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
-       \param nb_search_pts  Number of generated search points       -- \b OUT.
-       \param stop           Stop flag                               -- \b IN/OUT.
-       \param stop_reason    Stop reason                             -- \b OUT.
-       \param success        Type of success                         -- \b OUT.
-       \param count_search   Count or not the search                 -- \b OUT.
-       \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
-       \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
-    */
-    virtual void search ( NOMAD::Mads              & mads           ,
-			  int                      & nb_search_pts  ,
-			  bool                     & stop           ,
-			  NOMAD::stop_type         & stop_reason    ,
-			  NOMAD::success_type      & success        ,
-			  bool                     & count_search   ,
-			  const NOMAD::Eval_Point *& new_feas_inc   ,
-			  const NOMAD::Eval_Point *& new_infeas_inc   );
-
-  };
+    /// Variable Neighborhood Search (VNS) search.
+    class VNS_Search : public NOMAD::Search , private NOMAD::Uncopyable {
+        
+    private:
+        
+        int                           _k; ///< VNS neighborhood parameter.
+        int                       _k_max; ///< Maximum value of \c _k.
+        const NOMAD::Eval_Point * _old_x; ///< Previous reference point (updates \c _k).
+        
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param p Parameters -- \b IN.
+         */
+        VNS_Search ( NOMAD::Parameters & p )
+        : NOMAD::Search ( p , NOMAD::VNS_SEARCH     ) ,
+        _k            ( 1                         ) ,
+        _k_max        ( 1                         ) ,
+        _old_x        ( NULL                      )   {}
+        
+        /// Destructor.
+        virtual ~VNS_Search ( void ) {}
+        
+        /// Reset.
+        virtual void reset ( void );
+        
+        /// The VNS search.
+        /**
+         Principle: x --[shaking(k)]--> x' --[descent]--> x'' .
+         \param mads           NOMAD::Mads object invoking this search -- \b IN/OUT.
+         \param nb_search_pts  Number of generated search points       -- \b OUT.
+         \param stop           Stop flag                               -- \b IN/OUT.
+         \param stop_reason    Stop reason                             -- \b OUT.
+         \param success        Type of success                         -- \b OUT.
+         \param count_search   Count or not the search                 -- \b OUT.
+         \param new_feas_inc   New feasible incumbent                  -- \b IN/OUT.
+         \param new_infeas_inc New infeasible incumbent                -- \b IN/OUT.
+         */
+        virtual void search ( NOMAD::Mads              & mads           ,
+                             int                      & nb_search_pts  ,
+                             bool                     & stop           ,
+                             NOMAD::stop_type         & stop_reason    ,
+                             NOMAD::success_type      & success        ,
+                             bool                     & count_search   ,
+                             const NOMAD::Eval_Point *& new_feas_inc   ,
+                             const NOMAD::Eval_Point *& new_infeas_inc   );
+        
+    };
 }
 
 #endif
diff --git a/src/Variable_Group.cpp b/src/Variable_Group.cpp
index c177fec..6c198f1 100644
--- a/src/Variable_Group.cpp
+++ b/src/Variable_Group.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -45,11 +52,10 @@
 /*-------------------------------------------------------------*/
 /*     check (also removes fixed variables from the group)     */
 /*-------------------------------------------------------------*/
-bool NOMAD::Variable_Group::check
-( const NOMAD::Point                      & fixed_vars ,
- const std::vector<NOMAD::bb_input_type> & bbit       ,
- std::vector<bool>                       * in_group   ,
- bool									 & mod           )
+bool NOMAD::Variable_Group::check( const NOMAD::Point                      & fixed_vars ,
+                                  const std::vector<NOMAD::bb_input_type> & bbit       ,
+                                  std::vector<bool>                       * in_group   ,
+                                  bool                                     & mod           )
 {
     
     // initial checks:
@@ -141,15 +147,17 @@ bool NOMAD::Variable_Group::check
 /*---------------------------------------------------------*/
 /*                compute the directions                   */
 /*---------------------------------------------------------*/
-void NOMAD::Variable_Group::get_directions ( std::list<NOMAD::Direction>	& dirs		,
-                                            NOMAD::poll_type				poll		,
-                                            const NOMAD::OrthogonalMesh		& mesh		)
+void NOMAD::Variable_Group::get_directions ( std::list<NOMAD::Direction>    & dirs  ,
+                                            NOMAD::poll_type                  poll  ,
+                                            const NOMAD::OrthogonalMesh     & mesh  )
 {
-    
-    _directions->compute ( dirs	,
-                          poll	,
+    // vectors are of size nc :
+    // ------------------------
+    _directions->compute ( dirs   ,
+                          poll    ,
                           mesh );
     return;
+    
 }
 
 /*---------------------------------------------------------*/
@@ -166,7 +174,8 @@ bool NOMAD::Variable_Group::operator < ( const NOMAD::Variable_Group & vg ) cons
     std::set<int>::const_iterator it1 ,
     it2 = vg._var_indexes.begin() ,
     end = _var_indexes.end();
-    for ( it1 = _var_indexes.begin() ; it1 != end ; ++it1 , ++it2 ) {
+    for ( it1 = _var_indexes.begin() ; it1 != end ; ++it1 , ++it2 )
+    {
         if ( *it1 < *it2 )
             return true;
         if ( *it1 > *it2 )
diff --git a/src/Variable_Group.hpp b/src/Variable_Group.hpp
index 70f6054..beee305 100644
--- a/src/Variable_Group.hpp
+++ b/src/Variable_Group.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -118,7 +125,7 @@ namespace NOMAD {
         bool check ( const NOMAD::Point                      & fixed_vars ,
                     const std::vector<NOMAD::bb_input_type> & bbit       ,
                     std::vector<bool>                       * in_group   ,
-                    bool 									 & mod            );
+                    bool                                      & mod            );
         
         /// Check if the directions are Ortho-MADS directions.
         /**
@@ -126,7 +133,6 @@ namespace NOMAD {
          */
         bool is_orthomads ( void ) const { return _directions->is_orthomads(); }
         
-        
         /// Access to the variable indexes.
         /**
          \return The variable indexes.
@@ -151,15 +157,16 @@ namespace NOMAD {
             return _directions->get_sec_poll_dir_types();
         }
         
+        
         /// Access to the directions.
         /**
-         \param dirs				List of directions                      -- \b OUT.
-         \param poll				Type of poll (primary or secondary)     -- \b IN.
-         \param mesh				Mesh									-- \b IN.
+         \param dirs                List of directions                      -- \b OUT.
+         \param poll                Type of poll (primary or secondary)     -- \b IN.
+         \param mesh                Mesh                                    -- \b IN.
          */
-        void get_directions ( std::list<NOMAD::Direction>	& dirs			,
-                             NOMAD::poll_type				poll			,
-                             const NOMAD::OrthogonalMesh	& mesh			);
+        void get_directions ( std::list<NOMAD::Direction>    & dirs        ,
+                             NOMAD::poll_type                  poll        ,
+                             const NOMAD::OrthogonalMesh     & mesh        );
         
         
         /// Access to one direction for a given mesh.
@@ -193,7 +200,8 @@ namespace NOMAD {
      \return    The NOMAD::Display object.
      */
     inline const NOMAD::Display & operator << ( const NOMAD::Display        & out ,
-                                               const NOMAD::Variable_Group & vg    ) {
+                                               const NOMAD::Variable_Group & vg    )
+    {
         vg.display ( out );
         return out;
     }
@@ -202,9 +210,11 @@ namespace NOMAD {
     /**
      Used with \c set<Variable_Group*,VG_Comp> in class NOMAD::Parameters.
      */
-    struct VG_Comp {
+    struct VG_Comp
+    {
         /// Comparison between two NOMAD::Variable_Group objects.
-        bool operator() ( const Variable_Group * vg1 , const Variable_Group * vg2 ) const {
+        bool operator() ( const Variable_Group * vg1 , const Variable_Group * vg2 ) const
+        {
             return (*vg1 < *vg2);
         }
     };
diff --git a/src/XMesh.cpp b/src/XMesh.cpp
index 926ddac..f19078d 100644
--- a/src/XMesh.cpp
+++ b/src/XMesh.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -36,7 +43,7 @@
 /**
  \file   XMesh.cpp
  \brief  Class for the MADS xmesh (implementation)
- \author Christophe Tribes	
+ \author Christophe Tribes
  \date   2014-07
  \see    XMesh.hpp
  */
@@ -48,79 +55,63 @@
 /*                    init the XMesh                       */
 /*-----------------------------------------------------------*/
 void NOMAD::XMesh::init ( )
-{	
-	bool chkMesh  = _delta_min.is_defined();
-	bool chkPoll  = _Delta_min_is_defined;
-	_n = _delta_0.size();
-	
-
-    if ( !_Delta_0.is_complete() )
-        throw NOMAD::Exception (  "XMesh.cpp" , __LINE__ ,
-                                "NOMAD::XMesh::init(): Delta_0 has undefined values" );
-    if ( _delta_0.size() != _Delta_0.size() )
-        throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
-                                "NOMAD::XMesh::init(): delta_0 and Delta_0 have different sizes" );
-    
-	if ( !_delta_0.is_complete() )
-		throw NOMAD::Exception (  "XMesh.cpp" , __LINE__ ,
-								"NOMAD::XMesh::init(): delta_0 has undefined values" );
-	
-	if ( chkMesh && _delta_min.size() != _n )
-		throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
-								"NOMAD::XMesh::init(): delta_0 and delta_min have different sizes" );
-	
-	if ( chkPoll && _Delta_min.size() != _n )
-		throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
-								"NOMAD::XMesh::init(): delta_0 and Delta_min have different sizes" );
-	
+{
+    
     if ( _limit_mesh_index >0 )
-		throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
-								"NOMAD::XMesh::XMesh(): limit mesh index must be <=0 " );
-    
-	
-	_r.resize( _n );
-	_r_max.resize( _n );
-	_r_min.resize( _n );
-	
-	for ( int k = 0 ; k < _n ; ++k )
-	{
-		_r[k]=0;
-		_r_max[k]=0;
-		_r_min[k]=0;
-	}
-
-	
+        throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
+                                "NOMAD::XMesh::XMesh(): limit mesh index must be <=0 " );
+    
+    // The delta_0 depends on Delta_0 and the problem dimension
+    _delta_0=_Delta_0;
+    _delta_0*=pow(_n_free_variables,-0.5);
+    
+
+    _r.resize( _n );
+    _r_max.resize( _n );
+    _r_min.resize( _n );
+    
+    for ( int k = 0 ; k < _n ; ++k )
+    {
+        _r[k]=0;
+        _r_max[k]=0;
+        _r_min[k]=0;
+
+    }
+    
+    
 }
 
 
 /*-----------------------------------------------------------*/
 /* Update the provided mesh indices (the Mesh is unchanged). */
 /*-----------------------------------------------------------*/
-void NOMAD::XMesh::update ( NOMAD::success_type success , NOMAD::Point & mesh_indices, const NOMAD::Direction *dir ) const
+void NOMAD::XMesh::update ( NOMAD::success_type success ,
+                           NOMAD::Point & mesh_indices,
+                           const NOMAD::Direction *dir ) const
 {
-	
-	if ( mesh_indices.is_defined() )
-	{
-		
-		if ( dir && dir->size() != mesh_indices.size() )
-			throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
-									"NOMAD::XMesh::update(): mesh_indices and dir have different sizes" );
-		
-		for (int i=0; i < mesh_indices.size() ; i++)
-		{	
-			if ( success == NOMAD::FULL_SUCCESS )
-			{
-				
-				if ( (*dir)[i] !=0.0)
-					mesh_indices[i] += _coarsening_step;
-				
-				if ( mesh_indices[i] > -NOMAD::XL_LIMITS )
-					mesh_indices[i] = -NOMAD::XL_LIMITS;
-			}	
-			else if ( success == NOMAD::UNSUCCESSFUL )
-				mesh_indices[i] += _refining_step;
-		}
-	}
+    
+    if ( mesh_indices.is_defined() )
+    {
+        
+        if ( dir && dir->size() != mesh_indices.size() )
+            throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
+                                    "NOMAD::XMesh::update(): mesh_indices and dir have different sizes" );
+        
+        for (int i=0; i < mesh_indices.size() ; i++)
+        {
+            if ( success == NOMAD::FULL_SUCCESS )
+            {
+                
+                if ( (*dir)[i] !=0.0)
+                    mesh_indices[i] += _coarsening_step;
+                
+                if ( mesh_indices[i] > -NOMAD::XL_LIMITS )
+                    mesh_indices[i] = -NOMAD::XL_LIMITS;
+            }
+            else if ( success == NOMAD::UNSUCCESSFUL )
+                mesh_indices[i] += _refining_step;
+        }
+    }
 }
 
 
@@ -128,24 +119,26 @@ void NOMAD::XMesh::update ( NOMAD::success_type success , NOMAD::Point & mesh_in
 /*-----------------------------------------------------------*/
 /*                    update the XMesh                       */
 /*-----------------------------------------------------------*/
-void NOMAD::XMesh::update ( NOMAD::success_type success , const NOMAD::Direction * dir)
+void NOMAD::XMesh::update ( NOMAD::success_type success , const NOMAD::Direction * dir) // , const NOMAD::OrthogonalMesh *mesh )
 {
-	// defaults:
-	//  full success: r^k_j = r^k_j + 1 if (dir_k != 0 and anistropic_mesh) and r^k_j remains the same if dir_k=0
-	//  failure     : r^k_j = r^k_j - 1
-
-		
-	if ( dir && dir->size() != _n )
-		throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
-							"NOMAD::XMesh::update(): delta_0 and dir have different sizes" );	
-		
-		
-	if ( success == NOMAD::FULL_SUCCESS )
-	{
-		// Evaluate ||d||_inf
-		NOMAD::Double norm_inf=0;
+    // defaults:
+    //  full success: r^k_j = r^k_j + 1 if (dir_k != 0 and anistropic_mesh) and r^k_j remains the same if dir_k=0
+    //  failure     : r^k_j = r^k_j - 1
+    
+    // Granularity is only used to block Delta from decreasing but mesh indices are updated
+    
+    
+    if ( dir && dir->size() != _n )
+        throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
+                                "NOMAD::XMesh::update(): delta_0 and dir have different sizes" );
+    
+    
+    if ( success == NOMAD::FULL_SUCCESS )
+    {
+        // Evaluate ||d||_inf
+        NOMAD::Double norm_inf=0;
         NOMAD::Point delta=NOMAD::OrthogonalMesh::get_delta();
-
+        
         if ( _anisotropic_mesh )
         {
             for (int i=0; i < _n; i++)
@@ -162,42 +155,42 @@ void NOMAD::XMesh::update ( NOMAD::success_type success , const NOMAD::Direction
         for (int j=0; j < _n; j++)
             if ( _r[j] > max_index )
                 max_index=_r[j];
-
-
-		// Update mesh indices for coordinates with |dir_j|>1/n_free_variables ||dir||_inf or mesh index >=-2
-		for (int i=0; i < _n; i++)
-		{
+        
+        
+        // Update mesh indices for coordinates with |dir_j|>1/n_free_variables ||dir||_inf or mesh index >=-2
+        for (int i=0; i < _n; i++)
+        {
             if ( ! dir || (*dir)[i].abs()/delta[i] > norm_inf/_n_free_variables || _r[i] >=-2 )
-			{
-				_r[i] += _coarsening_step;
-
-				if (_r[i]  > -NOMAD::XL_LIMITS )
-					_r[i] = -NOMAD::XL_LIMITS;
-
-				if ( _r[i] > _r_max[i] )
-					_r_max[i] = _r[i];
-
-			}
-		}
-
-		
-  		// Udate mesh indices for coordinates with |dir_l| < 1/n_free_variables ||dir||_inf and mesh index < 2*max_mesh_index
-		for (int l=0; l < _n; l++)
-		{
-			if ( dir &&  _r[l] < -2 && (*dir)[l].abs()/delta[l] <= norm_inf/_n_free_variables && _r[l] < 2*max_index )
-				_r[l]+= _coarsening_step;
-		}		
-		
-	}
-	else if ( success == NOMAD::UNSUCCESSFUL )
-		for (int i=0; i< _n; i++)
-		{
-			_r[i] += _refining_step;
-	
-			if ( _r[i] < _r_min[i] )
-				_r_min[i] = _r[i];
-								
-		}
+            {
+                _r[i] += _coarsening_step;
+                
+                if (_r[i]  > -NOMAD::XL_LIMITS )
+                    _r[i] = -NOMAD::XL_LIMITS;
+                
+                if ( _r[i] > _r_max[i] )
+                    _r_max[i] = _r[i];
+                
+            }
+        }
+        
+        
+        // Udate mesh indices for coordinates with |dir_l| < 1/n_free_variables ||dir||_inf and mesh index < 2*max_mesh_index
+        for (int l=0; l < _n; l++)
+        {
+            if ( dir &&  _r[l] < -2 && (*dir)[l].abs()/delta[l] <= norm_inf/_n_free_variables && _r[l] < 2*max_index )
+                _r[l]+= _coarsening_step;
+        }
+        
+    }
+    else if ( success == NOMAD::UNSUCCESSFUL )
+        for (int i=0; i< _n; i++)
+        {
+            _r[i] += _refining_step;
+            
+            if ( _r[i] < _r_min[i] )
+                _r_min[i] = _r[i];
+            
+        }
 }
 
 
@@ -206,21 +199,21 @@ void NOMAD::XMesh::update ( NOMAD::success_type success , const NOMAD::Direction
 /*-----------------------------------------------------------*/
 void NOMAD::XMesh::display ( const NOMAD::Display & out ) const
 {
-	out << "n                       : " << _n               << std::endl
-        << "tau						: " << _update_basis	<< std::endl
-        << "poll coarsening exponent: " << _coarsening_step << std::endl
-        << "poll refining exponent  : " << _refining_step   << std::endl;
+    out << "n                   : " << _n               << std::endl
+    << "tau                     : " << _update_basis << std::endl
+    << "poll coarsening exponent: " << _coarsening_step << std::endl
+    << "poll refining exponent  : " << _refining_step   << std::endl;
     out << "minimal mesh size       : ";
-	if ( _delta_min.is_defined() )
-		out << "(" << _delta_min     << " )" << std::endl;
-	else
-		out << "none";
-	out << std::endl
-	<< "minimal poll size       : ";
-	if ( _Delta_min_is_defined )
-		out << "( " << _Delta_min     << " )" << std::endl;
-	else
-		out << "none";
+    if ( _delta_min.is_defined() )
+        out << "(" << _delta_min     << " )" << std::endl;
+    else
+        out << "none";
+    out << std::endl
+    << "minimal poll size       : ";
+    if ( _Delta_min_is_defined )
+        out << "( " << _Delta_min     << " )" << std::endl;
+    else
+        out << "none";
     
     out << std::endl << "initial poll size       : ";
     if (_Delta_0.is_defined())
@@ -235,7 +228,7 @@ void NOMAD::XMesh::display ( const NOMAD::Display & out ) const
     else
         out <<"( none )" << std::endl;
     
-	out << std::endl;
+    out << std::endl;
 }
 
 
@@ -244,58 +237,57 @@ void NOMAD::XMesh::display ( const NOMAD::Display & out ) const
 /*  and on the minimal mesh size                            */
 /*----------------------------------------------------------*/
 void NOMAD::XMesh::check_min_mesh_sizes ( bool             & stop           ,
-										 NOMAD::stop_type & stop_reason      ) const
+                                         NOMAD::stop_type & stop_reason      ) const
 {
-	if ( stop )
-		return;
-	
-	// Coarse mesh stopping criterion
-	stop=false;
+    if ( stop )
+        return;
     
-	for (int i=0;i<_n;i++)
+    // Coarse mesh stopping criterion
+    stop=false;
+    
+    for (int i=0;i<_n;i++)
         if ( _r[i] > -NOMAD::XL_LIMITS )
-		{
-			stop        = true;
-			break;
-		}
-    
-	if (stop)
-	{
-		stop_reason = NOMAD::XL_LIMITS_REACHED;
-		return;
-	}
-	
-	stop=true;
-
+        {
+            stop        = true;
+            break;
+        }
+    
+    if (stop)
+    {
+        stop_reason = NOMAD::XL_LIMITS_REACHED;
+        return;
+    }
+    
+    stop=true;
     // Fine mesh stopping criterion
     // All mesh indices must < _limit_mesh_index to trigger this stopping criterion
-	for (int i=0;i<_n;i++)
-	{
-		if ( _r[i] >= _limit_mesh_index )
-		{
-			stop        = false;
-			break;
-		}
-	}
-	if (stop)
-	{	
-		stop_reason = NOMAD::XL_LIMITS_REACHED;
-		return;
-	}
-	
-	// 2. Delta^k (poll size) tests:
-	if ( check_min_poll_size_criterion ( ) ) 
-	{
-		stop        = true;
-		stop_reason = NOMAD::DELTA_P_MIN_REACHED;
-	}
-	
-	// 3. delta^k (mesh size) tests:
-	if ( check_min_mesh_size_criterion ( ) ) 
-	{
-		stop        = true;
-		stop_reason = NOMAD::DELTA_M_MIN_REACHED;
-	}
+    for (int i=0;i<_n;i++)
+    {
+        if ( _r[i] >= _limit_mesh_index )
+        {
+            stop        = false;
+            break;
+        }
+    }
+    if (stop)
+    {
+        stop_reason = NOMAD::XL_LIMITS_REACHED;
+        return;
+    }
+    
+    // 2. Delta^k (poll size) tests:
+    if ( check_min_poll_size_criterion ( ) )
+    {
+        stop        = true;
+        stop_reason = NOMAD::DELTA_P_MIN_REACHED;
+    }
+    
+    // 3. delta^k (mesh size) tests:
+    if ( check_min_mesh_size_criterion ( ) )
+    {
+        stop        = true;
+        stop_reason = NOMAD::DELTA_M_MIN_REACHED;
+    }
 }
 
 /*-----------------------------------------------------------*/
@@ -303,11 +295,11 @@ void NOMAD::XMesh::check_min_mesh_sizes ( bool             & stop           ,
 /*-----------------------------------------------------------*/
 bool NOMAD::XMesh::check_min_poll_size_criterion ( ) const
 {
-	if ( !_Delta_min_is_defined )
-		return false;
-		
-	NOMAD::Point Delta;
-	return get_Delta ( Delta );
+    if ( !_Delta_min_is_defined )
+        return false;
+    
+    NOMAD::Point Delta;
+    return get_Delta ( Delta );
 }
 
 /*-----------------------------------------------------------*/
@@ -315,118 +307,103 @@ bool NOMAD::XMesh::check_min_poll_size_criterion ( ) const
 /*-----------------------------------------------------------*/
 bool NOMAD::XMesh::check_min_mesh_size_criterion ( ) const
 {
-	if ( !_delta_min.is_defined() )
-		return false;
-	
-	NOMAD::Point delta;
-	return get_delta ( delta );
+    if ( !_delta_min.is_defined() )
+        return false;
+    
+    NOMAD::Point delta;
+    return get_delta ( delta );
 }
 
 
 /*--------------------------------------------------------------*/
-/*  get delta (mesh size parameter)								*/
-/*       delta^k = delta^0 \tau ^min{0,2*r^k}					*/
+/*  get delta (mesh size parameter)                             */
+/*       delta^k = delta^0 \tau ^min{0,2*r^k}                   */
 /*--------------------------------------------------------------*/
 /*  the function also returns true if ALL delta[i] < delta_min  */
-/*----------------------------------------------------------------*/
+/*--------------------------------------------------------------*/
 bool NOMAD::XMesh::get_delta ( NOMAD::Point & delta ) const
 {
-
-	delta.resize(_n);
+    
+    delta.resize(_n);
     
     bool delta_min_is_defined=_delta_min.is_defined();
-	
+    
     bool stop    = true;
-	
-	// delta^k = power_of_beta * delta^0:
-	for ( int i = 0 ; i < _n ; ++i )
-	{
-		NOMAD::Double power_of_beta
-			= pow ( _update_basis.value() , ( (_r[i] >= 0) ? 0 : 2*_r[i].value() )  );
-		
-		delta[i] = _delta_0[i] * power_of_beta;
-		
-        if ( delta_min_is_defined && _delta_min[i].is_defined() && delta[i] >= _delta_min[i] )
+    
+    // delta^k = power_of_beta * delta^0:
+    for ( int i = 0 ; i < _n ; ++i )
+    {
+        delta[i] = get_delta( i );
+        
+        if ( stop && delta_min_is_defined && _delta_min[i].is_defined() && delta[i] >= _delta_min[i] )
             stop = false;
-	}
-	
-	return stop;
+    }
+    
+    return stop;
 }
 
 
 /*--------------------------------------------------------------*/
-/*  get delta (mesh size parameter)								*/
-/*       delta^k = delta^0 \tau ^min{0,2*r^k}					*/
+/*  get delta (mesh size parameter)                             */
+/*       delta^k = delta^0 \beta ^min{0,2*r^k}                  */
 /*--------------------------------------------------------------*/
 NOMAD::Double NOMAD::XMesh::get_delta ( int i ) const
 {
     
     // delta^k = power_of_beta * delta^0:
     NOMAD::Double power_of_beta = pow ( _update_basis.value() , ( (_r[i] >= 0) ? 0 : 2*_r[i].value() )  );
-        
+    
     return _delta_0[i] * power_of_beta;
     
 }
 
 
 
-/*--------------------------------------------------------------*/
-/*  get Delta (poll size parameter)								*/
-/*       Delta^k = Delta^0 \tau ^{r^k}							*/
-/*--------------------------------------------------------------*/
-/*  the function also returns true if all values are < Delta_min  */
-/*----------------------------------------------------------------*/
+/*---------------------------------------------------------------*/
+/*  get Delta (poll size parameter)                              */
+/*       Delta^k = Delta^0 \beta ^{r^k}                          */
+/*---------------------------------------------------------------*/
+/*  the function also returns true if all values are < Delta_min */
+/*---------------------------------------------------------------*/
 bool NOMAD::XMesh::get_Delta ( NOMAD::Point & Delta ) const
 {
-		
-	bool stop    = true;
-
+    
+    bool stop    = true;
     Delta.resize(_n);
-	
-	// delta^k = power_of_tau * delta^0:
-	for ( int i = 0 ; i < _n ; ++i )
-	{
-		Delta[i] = _Delta_0[i] * pow( _update_basis.value() , _r[i].value() );
-		
-		if (  !_Delta_min_is_complete  || Delta[i] >= _Delta_min[i] )
-			stop = false;
+    
+    // delta^k = power_of_tau * delta^0:
+    for ( int i = 0 ; i < _n ; ++i )
+    {
+        Delta[i] = get_Delta( i );
         
-        if ( _Delta_min_is_defined && _Delta_min[i].is_defined() && Delta[i] < _Delta_min[i] )
-            Delta[i]=_Delta_min[i];
-		
-	}
-	
-	return stop;
+        if (  stop && ! _fixed_variables[i].is_defined() && ( !_Delta_min_is_complete  || Delta[i] >= _Delta_min[i] ) )
+            stop = false;
+    }
+    
+    return stop;
 }
 
 /*--------------------------------------------------------------*/
 /*  get Delta_i  (poll size parameter)                          */
-/*       Delta^k = Delta^0 \tau ^{r^k}							*/
-/*--------------------------------------------------------------*/
-/*  the function returns Delta >= Delta_min                     */
+/*       Delta^k = Delta^0 \beta ^{r^k}                         */
 /*--------------------------------------------------------------*/
 NOMAD::Double NOMAD::XMesh::get_Delta ( int i ) const
 {
-    
     NOMAD::Double Delta = _Delta_0[i] * pow( _update_basis.value() , _r[i].value() );
     
-   if ( _Delta_min_is_defined && _Delta_min[i].is_defined() && Delta < _Delta_min[i] )
-        Delta=_Delta_min[i];
-    
-    
     return Delta;
+
 }
 
 
 bool NOMAD::XMesh::is_finest ( ) const
 {
-
-	for ( int i = 0 ; i < _n ; ++i )
-	{
-		if ( _r[i] > _r_min[i] )
-			return false;
-	}
-	return true;
+    for ( int i = 0 ; i < _n ; ++i )
+    {
+        if ( _r[i] > _r_min[i] )
+            return false;
+    }
+    return true;
 }
 
 
@@ -437,17 +414,17 @@ void NOMAD::XMesh::set_mesh_indices ( const NOMAD::Point & r )
 {
     
     if ( r.size() != _n )
-		throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
+        throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
                                 "NOMAD::XMesh::set_mesh_indices(): dimension of provided mesh indices must be consistent with their previous dimension" );
-
-	_r=r;
-	for ( int i = 0 ; i < _n ; ++i )
-	{
-		if ( r[i] > _r_max[i] )
-			_r_max[i] = r[i];
-		if ( r[i] < _r_min[i] )
-			_r_min[i] = r[i];
-	}
+    
+    _r=r;
+    for ( int i = 0 ; i < _n ; ++i )
+    {
+        if ( r[i] > _r_max[i] )
+            _r_max[i] = r[i];
+        if ( r[i] < _r_min[i] )
+            _r_min[i] = r[i];
+    }
 }
 
 
@@ -456,6 +433,7 @@ void NOMAD::XMesh::set_mesh_indices ( const NOMAD::Point & r )
 /*-----------------------------------------------------------*/
 void NOMAD::XMesh::set_limit_mesh_index ( int l )
 {
+    
     _limit_mesh_index=l;
 }
 
@@ -465,16 +443,20 @@ void NOMAD::XMesh::set_limit_mesh_index ( int l )
 /*-----------------------------------------------------------*/
 /*              scale and project on the mesh                */
 /*-----------------------------------------------------------*/
-NOMAD::Double NOMAD::XMesh::scale_and_project(int i, const NOMAD::Double & l) const
+NOMAD::Double NOMAD::XMesh::scale_and_project(int i, const NOMAD::Double & l, bool round_up) const
 {
+
     NOMAD::Double delta = get_delta( i );
     NOMAD::Double Delta = get_Delta( i );
-
     
     if ( i<=_n && delta.is_defined() && Delta.is_defined() )
     {
+
         NOMAD::Double d = Delta / delta * l;
-        return d.NOMAD::Double::round()*delta;
+        if ( ! round_up )
+            return ( d < 0.0 ? -std::floor(.5-d.value()) : std::floor(.5+d.value()) ) * delta;
+        else
+            return d.NOMAD::Double::ceil()*delta;
     }
     else
         throw NOMAD::Exception ( "XMesh.cpp" , __LINE__ ,
@@ -486,26 +468,29 @@ NOMAD::Double NOMAD::XMesh::scale_and_project(int i, const NOMAD::Double & l) co
 
 NOMAD::Point NOMAD::XMesh::get_mesh_ratio_if_success ( void ) const
 {
-		
-	try
-	{
-		NOMAD::Point ratio( _n );
-		for (int i=0 ; i < _n ; i++)
-		{
-			NOMAD::Double power_of_tau
-			= pow ( _update_basis.value() , ( (_r[i] >= 0) ? 0 : 2*_r[i].value() )  );
-		
-			NOMAD::Double power_of_tau_if_success
-			= pow ( _update_basis.value() , ( (_r[i] + _coarsening_step >= 0) ? 0 : 2*(_r[i].value() + _coarsening_step) )  );
-		
-			ratio[i] = power_of_tau_if_success/power_of_tau;
-			
-		}
-			
-		return ratio;
-	}
-	catch ( NOMAD::Double::Invalid_Value & )
-	{
-		return NOMAD::Point( _n,-1 );
-	}
+    
+    try
+    {
+        NOMAD::Point ratio( _n );
+        for (int i=0 ; i < _n ; i++)
+        {
+            NOMAD::Double power_of_tau
+            = pow ( _update_basis.value() , ( (_r[i] >= 0) ? 0 : 2*_r[i].value() )  );
+            
+            NOMAD::Double power_of_tau_if_success
+            = pow ( _update_basis.value() , ( (_r[i] + _coarsening_step >= 0) ? 0 : 2*(_r[i].value() + _coarsening_step) )  );
+            
+            ratio[i] = power_of_tau_if_success/power_of_tau;
+            
+        }
+        
+        return ratio;
+    }
+    catch ( NOMAD::Double::Invalid_Value & )
+    {
+        return NOMAD::Point( _n,-1 );
+    }
 }
+
+
+
diff --git a/src/XMesh.hpp b/src/XMesh.hpp
index e29262c..f3450fe 100644
--- a/src/XMesh.hpp
+++ b/src/XMesh.hpp
@@ -1,7 +1,7 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3    */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
+/*  Copyright (C) 2001-2015  Mark Abramson        - Brigham Young University, Provo    */
 /*                           Charles Audet        - Ecole Polytechnique, Montreal      */
 /*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
 /*                           John Dennis          - Rice University, Houston           */
@@ -46,38 +46,35 @@
 #include "OrthogonalMesh.hpp"
 
 namespace NOMAD {
-	
-	/// Class for the MADS Xmesh.
-	/**
+    
+    /// Class for the MADS Xmesh.
+    /**
      - The Xmesh in NOMAD is defined with the basic directions and the
-	 mesh size parameter delta^k for each coordinate.
-	 */
-
-	class XMesh : public NOMAD::OrthogonalMesh {
-		
-		/*--------------------------------------------------------------*/
-	private:
-		
-		NOMAD::Point	_r; // Mesh index per coordinate.
-		NOMAD::Point	_r_min;
-		NOMAD::Point	_r_max;
-        bool            _anisotropic_mesh;
-
-		
-		
-		/*--------------------------------------------------------------*/
-		
-		/// Private affectation operator.
-		/**
-		 \param m The right-hand side object -- \b IN.
-		 */
-		const XMesh & operator = ( const XMesh & m );
-		
-		/// Check the minimal poll size criterion.
-		bool check_min_poll_size_criterion ( ) const;
-		
-		/// Check the minimal mesh size criterion.
-		bool check_min_mesh_size_criterion ( ) const;
+     mesh size parameter delta^k for each coordinate.
+     */
+    
+    class XMesh : public NOMAD::OrthogonalMesh {
+        
+        /*--------------------------------------------------------------*/
+    private:
+        
+        NOMAD::Point    _r; // Mesh index per coordinate.
+        NOMAD::Point    _r_min;
+        NOMAD::Point    _r_max;
+        
+         /*--------------------------------------------------------------*/
+        
+        /// Private affectation operator.
+        /**
+         \param m The right-hand side object -- \b IN.
+         */
+        const XMesh & operator = ( const XMesh & m );
+        
+        /// Check the minimal poll size criterion.
+        bool check_min_poll_size_criterion ( ) const;
+        
+        /// Check the minimal mesh size criterion.
+        bool check_min_mesh_size_criterion ( ) const;
         
         
         /// Access to the mesh size parameter delta^k.
@@ -85,7 +82,7 @@ namespace NOMAD {
          \return delta    The mesh size parameter delta^k -- \b OUT.
          \param  i        The index of the mesh size
          */
-        NOMAD::Double get_delta ( int i ) const ;
+        inline NOMAD::Double get_delta ( int i ) const ;
         
         
         /// Access to the poll size parameter Delta^k.
@@ -93,215 +90,207 @@ namespace NOMAD {
          \return Delta    The poll size parameter Delta^k -- \b OUT.
          \param  i        The index of the poll size
          */
-        NOMAD::Double get_Delta ( int i ) const ;
-		
-		void init ( );
-		
-	public:
-		
-		/// Constructor.
-		/**
-		 \param anistropic_mesh         Use anisotropic mesh or not                     -- \b IN.
-		 \param Delta_0					Initial poll size Delta^0						-- \b IN.
-		 \param Delta_min				Minimal poll size Delta^min (may be undefined)	-- \b IN.
-		 \param delta_min				Minimal mesh size delta^min (may be undefined)	-- \b IN.
-		 \param poll_update_basis		Poll update basis (b); default=2				-- \b IN.
-		 \param poll_coarsening_step	Poll coarsening step (w+); default=1			-- \b IN.
-		 \param poll_refining_step		Poll refining step (w-); default=-1				-- \b IN.
+        inline NOMAD::Double get_Delta ( int i ) const ;
+        
+        void init ( );
+        
+    public:
+        
+        /// Constructor.
+        /**
+         \param anisotropic_mesh         Use anisotropic mesh or not                     -- \b IN.
+         \param Delta_0                 Initial poll size Delta^0                       -- \b IN.
+         \param Delta_min               Minimal poll size Delta^min (may be undefined)  -- \b IN.
+         \param delta_min               Minimal mesh size delta^min (may be undefined)  -- \b IN.
+         \param poll_update_basis       Poll update basis (b); default=2                -- \b IN.
+         \param poll_coarsening_step    Poll coarsening step (w+); default=1            -- \b IN.
+         \param poll_refining_step      Poll refining step (w-); default=-1             -- \b IN.
          \param fixed_variables         Fixed variables                                 -- \b IN.
          \param limit_min_mesh_index    Limit mesh index (<0)                           -- \b IN.
-		 */
-		XMesh (bool                 anisotropic_mesh,
+         */
+        XMesh (bool                 anisotropic_mesh,
                const NOMAD::Point & Delta_0   ,
-			   const NOMAD::Point & Delta_min ,
-			   const NOMAD::Point & delta_min  ,
+               const NOMAD::Point & Delta_min ,
+               const NOMAD::Point & delta_min  ,
                const NOMAD::Point & fixed_variables,
-			   NOMAD::Double		poll_update_basis=2.0,
-			   int					poll_coarsening_step=1,
-			   int					poll_refining_step=-1 ,
+               NOMAD::Double        poll_update_basis=2.0,
+               int                  poll_coarsening_step=1,
+               int                  poll_refining_step=-1 ,
                int                  limit_min_mesh_index=NOMAD::XL_LIMITS )
-		: NOMAD::OrthogonalMesh ( Delta_0,
-								 Delta_min,
-								 delta_min,
+        : NOMAD::OrthogonalMesh ( anisotropic_mesh,
+                                 Delta_0,
+                                 Delta_min,
+                                 delta_min,
                                  fixed_variables,
-								 poll_update_basis,
-								 poll_coarsening_step,
-								 poll_refining_step ,
-                                 limit_min_mesh_index ),
-         _anisotropic_mesh ( anisotropic_mesh ){ init();}
-
-		
-		
-		
-		/// Copy constructor.
-		/**
-		 \param m The copied object -- \b IN.
-		 */
-		XMesh ( const XMesh & m )
-		: OrthogonalMesh ( m ) ,
-		_r			( m._r ),
-		_r_min		( m._r_min ),
-		_r_max		( m._r_max ),
-        _anisotropic_mesh ( m._anisotropic_mesh ){}
-				
-		/// Destructor.
-		~XMesh ( void )
+                                 NOMAD::Point(),
+                                 poll_update_basis,
+                                 poll_coarsening_step,
+                                 poll_refining_step ,
+                                 limit_min_mesh_index ) { init();}
+        
+        
+        
+        
+        /// Copy constructor.
+        /**
+         \param m The copied object -- \b IN.
+         */
+        XMesh ( const XMesh & m )
+        : OrthogonalMesh ( m ) ,
+        _r        ( m._r ),
+        _r_min    ( m._r_min ),
+        _r_max    ( m._r_max ) { init(); }
+        
+        /// Destructor.
+        ~XMesh ( void )
         {
             _delta_0.clear();
             _Delta_0.clear();
             _delta_min.clear();
             _Delta_min.clear();
         }
-		
-		
-		/// Access to the mesh size parameter delta^k for earch coordinate.
-		/**
-		 - It is a NOMAD::Point of size \c nc the number of free variables.
-		 \param delta    The mesh size parameter delta^k -- \b OUT.
-		 -- \b optional (default = the current mesh index ell_k.)
-		 \return A boolean equal to \c true if all values are
-		 strictly inferior than the associated minimal
-		 mesh size delta_min (stopping criterion MIN_MESH_SIZE).
-		 */
-		bool get_delta ( NOMAD::Point & delta ) const ;
         
-
-		/// Access to the largest mesh size for earch coordinate.
-		/**
-		 \return delta_max
-		 */
-		NOMAD::Point get_delta_max ( void ) const { return _delta_0;}
-		
-		
-		/// Access to the poll size Delta^k for each coordinate.
-		/**
-		 - It is a NOMAD::Point of size \c nc the number of free variables.
-		 \param Delta    The poll size parameter Delta^k -- \b OUT.
-		 \return A boolean equal to \c true if all values are
-		 strictly inferior than the associated minimal
-		 poll size Delta_min
-		 (stopping criterion MIN_POLL_SIZE).
-		 */
-		 bool get_Delta ( NOMAD::Point & Delta) const ;
-		
-
-		/// Update the provided mesh indices (the Mesh is unchanged).
-		/**
-		 \param success			Type of success of the iteration				-- \b IN.
-		 \param mesh_indices	The mesh indices before and after the update	-- \b IN/OUT.
-		 \param dir				The direction that is considered (opt)			-- \b IN.
-		 */
-		void update ( NOMAD::success_type success , NOMAD::Point & mesh_indices, const NOMAD::Direction *dir=NULL ) const ;
-		
-        
-        /// Test if mesh finer than initial.
-		/**
-		 \return True if mesh size is smaller than initial mesh size for all components; False otherwise.
-		 */
-		bool is_finer_than_initial (void) const {return true;}
-
-		
-		
-		/// Update the XMesh (poll and mesh sizes).
-		/**
-		 \param success    Type of success of the iteration		-- \b IN.
-		 \param dir        Direction of the iteration			-- \b IN.
-		 */
-		void update ( NOMAD::success_type success, const NOMAD::Direction * dir=NULL);
-		
-		/// Reset the mesh to its original size (mesh indices).
-		void reset ( void ) { init() ;}
-		
-						
-		/// Display.
-		/**
-		 \param out The NOMAD::Display object -- \b IN.
-		 */
-		void display ( const NOMAD::Display & out ) const;
-		
-		/// Test if r < r_min so far for all coordinates.
-		/**
-		 \return True if mesh is the finest so far, False otherwise.
-		 */	
-		bool is_finest ( void ) const;  
-		
-		
-		/// Scale and project the ith component of a vector on the mesh
-		/**
-		 \param i	The vector component number			-- \b IN.
-		 \param l	The vector component value			-- \b IN.
-		 \return	The ith component of a vector after mesh scaling and projection
-		 */
-		NOMAD::Double scale_and_project(int i, const NOMAD::Double & l) const ;
-		
-		
-		/// Check the stopping conditions on the minimal poll and mesh sizes.
-		/**
-		 \param stop           Stop flag                  -- \b IN/OUT.
-		 \param stop_reason    Stop reason                -- \b OUT.
-		 */
-		void check_min_mesh_sizes (	bool             & stop           ,
-									NOMAD::stop_type & stop_reason      ) const;
-				
-		/// Access to the mesh indices per coordinate.
-		/**
-		 \return A point with the mesh index for each coordinate.
-		 */
-		const NOMAD::Point get_mesh_indices ( void  ) const { return _r; }
-		
-		/// Access to the min mesh indices reached so far.
-		/**
-		 \return A point with the mesh index for each coordinate.
-		 */
-		const NOMAD::Point get_min_mesh_indices ( void  ) const { return _r_min; }
-		
-
-		/// Access to the max mesh indices reached so far.
-		/**
-		 \return A point with the mesh index for each coordinate.
-		 */
-		const NOMAD::Point get_max_mesh_indices ( void  ) const { return _r_max; }
-		
-		
-		/// Manually set the mesh index.
-		/**
-		 \param r  The mesh index provided as a point -- \b IN.
-		 */
-		void set_mesh_indices ( const NOMAD::Point & r );
-
         
+        /// Access to the mesh size parameter delta^k for earch coordinate.
+        /**
+         - It is a NOMAD::Point of size \c nc the number of free variables.
+         \param delta    The mesh size parameter delta^k -- \b OUT.
+         \return A boolean equal to \c true if all values are
+         strictly inferior than the associated minimal
+         mesh size delta_min (stopping criterion MIN_MESH_SIZE).
+         */
+        bool get_delta ( NOMAD::Point & delta ) const ;
         
-		/// Manually set the limit mesh index (termination criterion).
-		/**
-		 \param l  The limit mesh index for all coordinates -- \b IN.
-		 */
-		void set_limit_mesh_index ( int l );
-
         
-		
-		/// Access to the mesh ratios after a success
-		/**
-		 \return A point with the ratio for each coordinate
-		 */
-		NOMAD::Point get_mesh_ratio_if_success ( void ) const;
-		
-		
-		
-	};
-	
-	/// Display a NOMAD::XMesh object.
-	/**
+        /// Access to the largest mesh size for earch coordinate.
+        /**
+         \return delta_max
+         */
+        NOMAD::Point get_delta_max ( void ) const { return _delta_0;}
+        
+        
+        /// Access to the poll size Delta^k for each coordinate.
+        /**
+         - It is a NOMAD::Point of size \c nc the number of free variables.
+         \param Delta    The poll size parameter Delta^k -- \b OUT.
+         \return A boolean equal to \c true if all values are
+         strictly inferior than the associated minimal
+         poll size Delta_min
+         (stopping criterion MIN_POLL_SIZE).
+         */
+        bool get_Delta ( NOMAD::Point & Delta) const ;
+        
+        
+        /// Update the provided mesh indices (the Mesh is unchanged).
+        /**
+         \param success         Type of success of the iteration                -- \b IN.
+         \param mesh_indices    The mesh indices before and after the update    -- \b IN/OUT.
+         \param dir             The direction that is considered (opt)          -- \b IN.
+         */
+        void update ( NOMAD::success_type success , NOMAD::Point & mesh_indices, const NOMAD::Direction *dir=NULL ) const ;
+        
+        
+        /// Update the XMesh (poll and mesh sizes).
+        /**
+         \param success    Type of success of the iteration    -- \b IN.
+         \param dir        Direction of the iteration          -- \b IN.
+         */
+        void update ( NOMAD::success_type success, const NOMAD::Direction * dir=NULL);
+        
+        /// Reset the mesh to its original size (mesh indices).
+        void reset ( void ) { init() ;}
+        
+        
+        /// Display.
+        /**
+         \param out The NOMAD::Display object -- \b IN.
+         */
+        void display ( const NOMAD::Display & out ) const;
+        
+        /// Test if r < r_min so far for all coordinates.
+        /**
+         \return True if mesh is the finest so far, False otherwise.
+         */
+        bool is_finest ( void ) const;
+        
+        
+        /// Scale and project the ith component of a vector on the mesh
+        /**
+         \param i         The vector component number            -- \b IN.
+         \param l         The vector component value             -- \b IN.
+         \param round_up  A flag to round or not                 -- \b IN.
+         \return     The ith component of a vector after mesh scaling and projection
+         */
+        NOMAD::Double scale_and_project(int i, const NOMAD::Double & l , bool round_up ) const ;
+        
+        
+        /// Check the stopping conditions on the minimal poll and mesh sizes.
+        /**
+         \param stop           Stop flag                  -- \b IN/OUT.
+         \param stop_reason    Stop reason                -- \b OUT.
+         */
+        void check_min_mesh_sizes ( bool             & stop           ,
+                                   NOMAD::stop_type  & stop_reason      ) const;
+        
+        /// Access to the mesh indices per coordinate.
+        /**
+         \return A point with the mesh index for each coordinate.
+         */
+        const NOMAD::Point get_mesh_indices ( void  ) const { return _r; }
+        
+        /// Access to the min mesh indices reached so far.
+        /**
+         \return A point with the mesh index for each coordinate.
+         */
+        const NOMAD::Point get_min_mesh_indices ( void  ) const { return _r_min; }
+        
+        
+        /// Access to the max mesh indices reached so far.
+        /**
+         \return A point with the mesh index for each coordinate.
+         */
+        const NOMAD::Point get_max_mesh_indices ( void  ) const { return _r_max; }
+        
+        
+        /// Manually set the mesh index.
+        /**
+         \param r  The mesh index provided as a point -- \b IN.
+         */
+        void set_mesh_indices ( const NOMAD::Point & r );
+        
+        
+        
+        /// Manually set the limit mesh index (termination criterion).
+        /**
+         \param l  The limit mesh index for all coordinates -- \b IN.
+         */
+        void set_limit_mesh_index ( int l );
+        
+        
+        
+        /// Access to the mesh ratios after a success
+        /**
+         \return A point with the ratio for each coordinate
+         */
+        NOMAD::Point get_mesh_ratio_if_success ( void ) const;
+        
+        
+        
+    };
+    
+    /// Display a NOMAD::XMesh object.
+    /**
      \param out The NOMAD::Display object -- \b IN.
      \param m   The NOMAD::XMesh object to be displayed -- \b IN.
      \return    The NOMAD::Display object.
-	 */
-	inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
-											   const NOMAD::XMesh    & m     )
-	{
-		m.display ( out );
-		return out;
-	}
-
+     */
+    inline const NOMAD::Display & operator << ( const NOMAD::Display & out ,
+                                               const NOMAD::XMesh    & m     )
+    {
+        m.display ( out );
+        return out;
+    }
+    
 }
 
 #endif
diff --git a/src/defines.hpp b/src/defines.hpp
index 511f75e..d1078f3 100644
--- a/src/defines.hpp
+++ b/src/defines.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -53,7 +60,7 @@
 // #define R_VERSION // defined for the R version only
 
 // Matlab version OPTI style (if not defined than GERAD style)
-// #define OPTI_VERSION
+// #define OPTI_VERSION 
 
 // Define in order to display debug information
 //#define DEBUG
@@ -61,27 +68,20 @@
 // define in order to display memory debug information:
 //#define MEMORY_DEBUG
 
-// define in order to display TGP information.
-// #define TGP_DEBUG
-
-// #define USE_TGP is defined in the makefile
 
 #ifdef DEBUG
 #ifndef MEMORY_DEBUG
 #define MEMORY_DEBUG
-#ifndef TGP_DEBUG
-#define TGP_DEBUG
-#endif
 #endif
 #endif
 
 
-// CASE Linux using gnu compiler
+// CASE Linux using gnu compiler   
 #ifdef __gnu_linux__
 #define GCC_X
 #endif
 
-// CASE OSX using gnu compiler
+// CASE OSX using gnu compiler 
 #ifdef __APPLE__
 #ifdef __GNUC__
 #define GCC_X
@@ -102,10 +102,10 @@
 #pragma warning(disable:4996)
 #endif
 
-// For NOMAD random number generator
+// For NOMAD random number generator 
 #if !defined(UINT32_MAX)
 typedef unsigned int uint32_t;
-#define UINT32_MAX	0xffffffff
+#define UINT32_MAX    0xffffffff
 #endif
 
 // to display model stats for each evaluation at
@@ -125,24 +125,16 @@ typedef unsigned int uint32_t;
 namespace NOMAD {
     
     /// Current version:
-    const std::string BASE_VERSION = "3.7.2";
+    const std::string BASE_VERSION = "3.7.3";
     
 #ifdef R_VERSION
     const std::string VERSION = BASE_VERSION + ".R";
 #else
 #ifdef USE_MPI
-#ifdef USE_TGP
-    const std::string VERSION = BASE_VERSION + ".TGP" + ".MPI";
-#else
     const std::string VERSION = BASE_VERSION + ".MPI";
-#endif
-#else
-#ifdef USE_TGP
-    const std::string VERSION = BASE_VERSION + ".TGP";
 #else
     const std::string VERSION = BASE_VERSION;
 #endif
-#endif
 #endif
     
     // Directory separator, plus LGPL and user guide files
@@ -197,12 +189,11 @@ namespace NOMAD {
     // Old static Mesh index constants
     const int L_LIMITS    = 50;         ///< Limits for the smesh index values
     const int UNDEFINED_L = L_LIMITS+1;  ///< Undefined value for the smesh index
-    
+
     // xmesh index constants
     const int XL_LIMITS    = -50;         ///< Limits for the xmesh index values
     const int UNDEFINED_XL = XL_LIMITS-1;  ///< Undefined value for the xmesh index
     
-    
     /// Default epsilon used by NOMAD::Double
     /** Use Parameters::set_EPSILON(), or parameter EPSILON,
      or NOMAD::Double::set_epsilon() to change it
@@ -228,6 +219,9 @@ namespace NOMAD {
     const double LOG10 = 2.30258509299;
     
     const double INF = std::numeric_limits<double>::max(); ///< Infinity
+    const double P_INF_INT = std::numeric_limits<int>::max(); ///< plus infinity for int
+    const double M_INF_INT = std::numeric_limits<int>::min(); ///< minus infinity for int
+
     
     const double D_INT_MAX = UINT32_MAX; ///< The UINT32_MAX constant as a \c double
     
@@ -235,7 +229,7 @@ namespace NOMAD {
     const double SVD_EPS      = 1e-13;      ///< Epsilon for SVD
     const int    SVD_MAX_MPN  = 1500;       ///< Matrix maximal size (\c m+n )
     const double SVD_MAX_COND = NOMAD::INF; ///< Max. acceptable cond. number
-    
+        
     /// Default value for parameter POINT_DISPLAY_LIMIT
     /** Use Parameters::set_POINT_DISPLAY_LIMIT() or parameter POINT_DISPLAY_LIMIT
      or Point::set_display_limit() to change it */
@@ -246,7 +240,7 @@ namespace NOMAD {
     const int DISPLAY_PRECISION_BB  = 15;  ///< Display precision for blackboxes
     
     /// Constant for blackbox files #1.
-    const std::string BLACKBOX_INPUT_FILE_PREFIX = "nomad";
+    const std::string BLACKBOX_INPUT_FILE_PREFIX = "nomad"; 
     
     /// Constant for blackbox files #2.
     const std::string BLACKBOX_INPUT_FILE_EXT = "input";
@@ -261,7 +255,7 @@ namespace NOMAD {
     enum dd_type
     {
         NO_DISPLAY     , ///< No display
-        MINIMAL_DISPLAY, ///< Minimal dispay
+        MINIMAL_DISPLAY, ///< Minimal dispay        
         NORMAL_DISPLAY , ///< Normal display
         FULL_DISPLAY     ///< Full display
     };
@@ -342,16 +336,15 @@ namespace NOMAD {
     enum model_type
     {
         QUADRATIC_MODEL , ///< Quadratic model
-        TGP_MODEL       , ///< TGP model
         NO_MODEL          ///< No models
     };
     
-    /// TGP mode
-    enum TGP_mode_type
+    enum intensification_type
     {
-        TGP_FAST    , ///< TGP fast mode.
-        TGP_PRECISE , ///< TGP precise mode.
-        TGP_USER      ///< TGP user mode.
+        NO_INTENSIFICATION ,
+        POLL_ONLY , ///< Poll intensification only
+        SEARCH_ONLY , ///< Search intensification only
+        POLL_AND_SEARCH
     };
     
     /// Success type of an iteration
@@ -389,6 +382,7 @@ namespace NOMAD {
         L_MIN_REACHED              ,  ///< Min mesh index
         L_LIMITS_REACHED           ,  ///< Mesh index limits
         XL_LIMITS_REACHED          ,  ///< Mesh index limits
+           GL_LIMITS_REACHED          ,  ///< Mesh index limits
         MAX_TIME_REACHED           ,  ///< Max time
         MAX_BB_EVAL_REACHED        ,  ///< Max number of blackbox evaluations
         MAX_SGTE_EVAL_REACHED      ,  ///< Max number of surrogate evaluations
@@ -424,8 +418,9 @@ namespace NOMAD {
         NO_DIRECTION           , ///< No direction
         ORTHO_1                , ///< OrthoMADS 1
         ORTHO_2                , ///< OrthoMADS 2
-        ORTHO_NP1_QUAD         , ///< OrthoMADS n+1 use Quad model to determine n+1-th direction
+        ORTHO_NP1_QUAD         , ///< OrthoMADS n+1 use Quad model to determine n+1-th direction 
         ORTHO_NP1_NEG          , ///< OrthoMADS n+1 use negative sum of n first directions to determine n+1-th direction
+        ORTHO_NP1_UNI          , ///< OrthoMADS n+1 uniform directions
         DYN_ADDED              , ///< Dynamic addition (n+1-th direction added for ORTHO n+1)
         ORTHO_2N               , ///< OrthoMADS 2n
         LT_1                   , ///< LT-MADS 1
@@ -471,7 +466,7 @@ namespace NOMAD {
         //   (keep in first position)
         DS_SIM_BBE    ,    ///< Number of simulated bb evaluations
         DS_BBE        ,    ///< Number of bb evaluations
-        DS_BLK_EVA	  ,    ///< Number of block evaluation calls	
+        DS_BLK_EVA      ,    ///< Number of block evaluation calls    
         DS_SGTE       ,    ///< Number of surrogate evaluations
         DS_BBO        ,    ///< All blackbox outputs
         DS_EVAL       ,    ///< Number of evaluations
@@ -506,6 +501,13 @@ namespace NOMAD {
         UNDEFINED_STATUS    ///< Undefined evaluation status
     };
     
+    enum mesh_type
+    {
+        XMESH , /// Anisotropic (eXtensible) mesh
+        SMESH , /// Isotropic Standard mesh
+        NO_MESH_TYPE
+    };
+    
 }
 
 #endif
diff --git a/src/nomad.cpp b/src/nomad.cpp
index 250c2a3..e97307c 100644
--- a/src/nomad.cpp
+++ b/src/nomad.cpp
@@ -1,16 +1,21 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2           */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -140,6 +145,7 @@ int main ( int argc , char ** argv )
             if ( p.get_display_degree() > NOMAD::MINIMAL_DISPLAY)
                 NOMAD::display_info ( out );
             
+            
             // parameters display:
             if ( NOMAD::Slave::is_master() &&
                 p.get_display_degree() == NOMAD::FULL_DISPLAY )
@@ -285,18 +291,24 @@ void NOMAD::display_info ( const NOMAD::Display & out )
     if ( !NOMAD::Slave::is_master() )
         return;
 #endif
-    NOMAD::display_version ( out );
-    out << NOMAD::open_block ( "Copyright (C) 2001-2015" )
-    << "Mark A. Abramson     - The Boeing Company"              << std::endl
+    out << std::endl << "NOMAD - version "
+    << NOMAD::VERSION
+    << NOMAD::open_block(" has been created by")
     << "Charles Audet        - Ecole Polytechnique de Montreal" << std::endl
-    << "Gilles Couture       - Ecole Polytechnique de Montreal" << std::endl
-    << "John E. Dennis, Jr.  - Rice University"                 << std::endl
     << "Sebastien Le Digabel - Ecole Polytechnique de Montreal" << std::endl
     << "Christophe Tribes    - Ecole Polytechnique de Montreal" << std::endl
     << NOMAD::close_block()
     << std::endl
-    << "Funded in part by AFOSR and Exxon Mobil."               << std::endl
+    << "The copyright of NOMAD - version "
+    << NOMAD::VERSION
+    << NOMAD::open_block(" is owned by")
+    << "Sebastien Le Digabel - Ecole Polytechnique de Montreal" << std::endl
+    << "Christophe Tribes    - Ecole Polytechnique de Montreal" << std::endl
+    << NOMAD::close_block()
+    << std::endl << "NOMAD version 3 is a new version of Nomad v1 and v2, it has been funded by AFOSR and Exxon Mobil." << std::endl
+    << "Nomad v1 and v2 were created and developed by Mark A. Abramson from The Boeing Company, Charles Audet and Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from Rice University, and were funded by AFOSR and Exxon Mobil." << std::endl
     << std::endl
+    << "Download  : www.gerad.ca/nomad" << std::endl
     << "License   : \'" << NOMAD::LGPL_FILE       << "\'" << std::endl
     << "User guide: \'" << NOMAD::USER_GUIDE_FILE << "\'" << std::endl
     << "Examples  : \'" << NOMAD::EXAMPLES_DIR    << "\'" << std::endl
@@ -304,8 +316,16 @@ void NOMAD::display_info ( const NOMAD::Display & out )
     << std::endl
     << "Please report bugs to nomad@gerad.ca"
     << std::endl;
+    out << endl << "Seed: "<< NOMAD::RNG::get_seed()<<endl;
 }
 
+
+
+
+
+
+
+
 /*------------------------------------------*/
 /*             display NOMAD usage          */
 /*------------------------------------------*/
@@ -321,7 +341,7 @@ void NOMAD::display_usage ( char* exeName, const NOMAD::Display & out )
     << "Developer help : " << exeName << " -d keyword(s) (or 'all')"     << std::endl
     << "Version        : " << exeName << " -v"                           << std::endl
     << "Usage          : " << exeName << " -u"                          << std::endl
-    << std::endl;  
+    << std::endl;
 #else
     out << std::endl
     << "Run NOMAD      : " << exeName << " parameters_file"          << std::endl
@@ -330,6 +350,6 @@ void NOMAD::display_usage ( char* exeName, const NOMAD::Display & out )
     << "Developer help : " << exeName << " -d keyword(s) (or 'all')" << std::endl
     << "Version        : " << exeName << " -v"                       << std::endl
     << "Usage          : " << exeName << " -u"                       << std::endl
-    << std::endl; 
+    << std::endl;
 #endif
 }
diff --git a/src/nomad.hpp b/src/nomad.hpp
index 5801177..6b6f968 100644
--- a/src/nomad.hpp
+++ b/src/nomad.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -65,7 +72,7 @@ namespace NOMAD {
      \param out A NOMAD::Display object -- \b IN.
   */
   void display_usage ( char* exeName, const NOMAD::Display & out );
-  void display_usage ( const NOMAD::Display & out );	
+  void display_usage ( const NOMAD::Display & out );
 
 #ifdef MEMORY_DEBUG
   /// Display NOMAD most important structures in memory.
diff --git a/src/utils.cpp b/src/utils.cpp
index 199400f..1392dfe 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   utils.cpp
-  \brief  Utility functions
-  \author Sebastien Le Digabel
-  \date   2010-03-23
-  \see    utils.hpp
-*/
+ \file   utils.cpp
+ \brief  Utility functions
+ \author Sebastien Le Digabel
+ \date   2010-03-23
+ \see    utils.hpp
+ */
 #include "utils.hpp"
 
 /*---------------------------------------------------------------*/
@@ -47,24 +54,27 @@
 /*---------------------------------------------------------------*/
 void NOMAD::construct_primes ( int n , int * primes )
 {
-  bool   is_prime;
-  double kk;
-  int    i = 0 , k = 2 , j;
-  while ( true ) {
-    is_prime = true;
-    kk = sqrt ( static_cast<double>(k) );
-    for ( j = 2 ; j <= kk ; ++j )
-      if ( k%j==0 ) {
-	is_prime = false;
-	break;
-      }
-    if ( is_prime ) {
-      primes[i++] = k;
-      if ( i==n )
-	break;
+    bool   is_prime;
+    double kk;
+    int    i = 0 , k = 2 , j;
+    while ( true )
+    {
+        is_prime = true;
+        kk = sqrt ( static_cast<double>(k) );
+        for ( j = 2 ; j <= kk ; ++j )
+            if ( k%j==0 )
+            {
+                is_prime = false;
+                break;
+            }
+        if ( is_prime )
+        {
+            primes[i++] = k;
+            if ( i==n )
+                break;
+        }
+        ++k;
     }
-    ++k;
-  }
 }
 
 /*--------------------------------------------*/
@@ -72,14 +82,15 @@ void NOMAD::construct_primes ( int n , int * primes )
 /*--------------------------------------------*/
 void NOMAD::get_words ( const std::string & sentence , std::list<std::string> & words )
 {
-  std::string        s;
-  std::istringstream in ( sentence );
-   while ( true ) {
-    in >> s;
-    if ( in.fail() )
-      break;
-    words.push_back ( s );
-  }
+    std::string        s;
+    std::istringstream in ( sentence );
+    while ( true )
+    {
+        in >> s;
+        if ( in.fail() )
+            break;
+        words.push_back ( s );
+    }
 }
 
 /*---------------------------------------------------------------*/
@@ -88,9 +99,9 @@ void NOMAD::get_words ( const std::string & sentence , std::list<std::string> &
 int NOMAD::get_pid ( void )
 {
 #ifdef _MSC_VER
-  return _getpid();
+    return _getpid();
 #else
-  return getpid();
+    return getpid();
 #endif
 }
 
@@ -100,7 +111,7 @@ int NOMAD::get_pid ( void )
 void NOMAD::begin ( int argc , char ** argv )
 {
 #ifdef USE_MPI
-  MPI_Init ( &argc , &argv );
+    MPI_Init ( &argc , &argv );
 #endif
 }
 
@@ -110,7 +121,7 @@ void NOMAD::begin ( int argc , char ** argv )
 void NOMAD::end ( void )
 {
 #ifdef USE_MPI
-  MPI_Finalize();
+    MPI_Finalize();
 #endif
 }
 
@@ -120,10 +131,10 @@ void NOMAD::end ( void )
 bool NOMAD::check_exe_file ( const std::string & file_name )
 {
 #ifdef WINDOWS
-  // don't check on Windows:
-  return true;
+    // don't check on Windows:
+    return true;
 #else
-  return ( access ( file_name.c_str() , X_OK ) == 0 );
+    return ( access ( file_name.c_str() , X_OK ) == 0 );
 #endif
 }
 
@@ -133,9 +144,9 @@ bool NOMAD::check_exe_file ( const std::string & file_name )
 bool NOMAD::check_read_file ( const std::string & file_name )
 {
 #ifdef _MSC_VER
-  return ( _access ( file_name.c_str() , 4 ) == 0 );
+    return ( _access ( file_name.c_str() , 4 ) == 0 );
 #else
-  return ( access ( file_name.c_str() , R_OK ) == 0 );
+    return ( access ( file_name.c_str() , R_OK ) == 0 );
 #endif
 }
 
@@ -144,9 +155,9 @@ bool NOMAD::check_read_file ( const std::string & file_name )
 /*-----------------------------------------------------------------*/
 std::string NOMAD::itos ( int i )
 {
-  std::ostringstream oss;
-  oss << i;
-  return oss.str();
+    std::ostringstream oss;
+    oss << i;
+    return oss.str();
 }
 
 /*-----------------------------------------------------------------*/
@@ -160,14 +171,48 @@ std::string NOMAD::itos ( size_t i )
 }
 
 
+/*-----------------------------------------------------------------*/
+/*                         NOMAD::deblank                          */
+/*-----------------------------------------------------------------*/
+void NOMAD::deblank ( std::string & s )
+{
+    // Remove leading spaces
+    while ( (s.length()) && (s.at(0)==' ') )
+    {
+        s.erase(0,1);
+    }
+    // Remove trailing spaces
+    size_t i = s.length();
+    while ( (i>0) && (s.at(i-1)==' ') )
+    {
+        s.erase(i-1,1);
+        i--;
+    }
+    // Remove double spaces
+    i=1;
+    while (i+2<s.length())
+    {
+        if ( (s.at(i)==' ') && (s.at(i+1)==' ') )
+        {
+            s.erase(i,1);
+        }
+        else
+        {
+            i++;
+        }
+    }
+}
+
+
+
 /*-----------------------------------------------------------------*/
 /*                         NOMAD::toupper - 1/2                    */
 /*-----------------------------------------------------------------*/
 void NOMAD::toupper ( std::string & s )
 {
-  size_t ns = s.size();
-  for ( size_t i = 0 ; i < ns ; ++i )
-    s[i] = std::toupper(s[i]);
+    size_t ns = s.size();
+    for ( size_t i = 0 ; i < ns ; ++i )
+        s[i] = std::toupper(s[i]);
 }
 
 /*-----------------------------------------------------------------*/
@@ -175,10 +220,10 @@ void NOMAD::toupper ( std::string & s )
 /*-----------------------------------------------------------------*/
 void NOMAD::toupper ( std::list<std::string> & ls )
 {
-  std::list<std::string>::iterator       it;
-  std::list<std::string>::const_iterator end = ls.end();
-  for ( it = ls.begin() ; it != end ; ++it )
-    NOMAD::toupper ( *it );
+    std::list<std::string>::iterator       it;
+    std::list<std::string>::const_iterator end = ls.end();
+    for ( it = ls.begin() ; it != end ; ++it )
+        NOMAD::toupper ( *it );
 }
 
 /*-----------------------------------------------------------------*/
@@ -186,35 +231,38 @@ void NOMAD::toupper ( std::list<std::string> & ls )
 /*-----------------------------------------------------------------*/
 bool NOMAD::atoi ( const std::string & s , int & i )
 {
-  i = -1;
-  if ( s.empty() )
-    return false;
-
-  size_t n = s.size();
-
-  if ( s[0] == '-' ) {
-    if ( n > 1 && s[1] == '-' )
-      return false;
-    std::string ss = s;
-    ss.erase(ss.begin());
-    if ( NOMAD::atoi ( ss , i ) ) {
-      i = -i;
-      return true;
+    i = -1;
+    if ( s.empty() )
+        return false;
+    
+    size_t n = s.size();
+    
+    if ( s[0] == '-' )
+    {
+        if ( n > 1 && s[1] == '-' )
+            return false;
+        std::string ss = s;
+        ss.erase(ss.begin());
+        if ( NOMAD::atoi ( ss , i ) )
+        {
+            i = -i;
+            return true;
+        }
+        return false;
     }
-    return false;
-  }
-
-  for ( size_t k = 0 ; k < n ; ++k )
-    if ( !isdigit(s[k]) )
-      return false;
-  i = std::atoi(s.c_str());
-  return true;
+    
+    for ( size_t k = 0 ; k < n ; ++k )
+        if ( !isdigit(s[k]) )
+            return false;
+    i = std::atoi(s.c_str());
+    return true;
 }
 
-bool NOMAD::atoi ( char c , int & i ) {
-  std::string s = "-";
-  s[0] = c;
-  return NOMAD::atoi(s,i);
+bool NOMAD::atoi ( char c , int & i )
+{
+    std::string s = "-";
+    s[0] = c;
+    return NOMAD::atoi(s,i);
 }
 
 /*-------------------------------------------------------------------*/
@@ -222,11 +270,11 @@ bool NOMAD::atoi ( char c , int & i ) {
 /*-------------------------------------------------------------------*/
 bool NOMAD::bbot_is_constraint ( NOMAD::bb_output_type bbot )
 {
-  return ( bbot == NOMAD::EB     ||
-	   bbot == NOMAD::PB     ||
-	   bbot == NOMAD::PEB_P  ||
-	   bbot == NOMAD::PEB_E  ||
-	   bbot == NOMAD::FILTER    );
+    return ( bbot == NOMAD::EB     ||
+            bbot == NOMAD::PB     ||
+            bbot == NOMAD::PEB_P  ||
+            bbot == NOMAD::PEB_E  ||
+            bbot == NOMAD::FILTER    );
 }
 
 /*-----------------------------------------------------------------------*/
@@ -234,16 +282,16 @@ bool NOMAD::bbot_is_constraint ( NOMAD::bb_output_type bbot )
 /*-----------------------------------------------------------------------*/
 bool NOMAD::dir_is_mads ( NOMAD::direction_type dt )
 {
-  return (dt == NOMAD::ORTHO_1        ||
-		  dt == NOMAD::ORTHO_2        ||
-		  dt == NOMAD::ORTHO_NP1_QUAD ||
-		  dt == NOMAD::ORTHO_NP1_NEG  ||
-		  dt == NOMAD::DYN_ADDED      ||
-		  dt == NOMAD::ORTHO_2N       ||
-		  dt == NOMAD::LT_1           ||
-		  dt == NOMAD::LT_2           ||
-		  dt == NOMAD::LT_2N          ||
-		  dt == NOMAD::LT_NP1      );
+    return (dt == NOMAD::ORTHO_1        ||
+            dt == NOMAD::ORTHO_2        ||
+            dt == NOMAD::ORTHO_NP1_QUAD ||
+            dt == NOMAD::ORTHO_NP1_NEG  ||
+            dt == NOMAD::DYN_ADDED      ||
+            dt == NOMAD::ORTHO_2N       ||
+            dt == NOMAD::LT_1           ||
+            dt == NOMAD::LT_2           ||
+            dt == NOMAD::LT_2N          ||
+            dt == NOMAD::LT_NP1      );
 }
 
 /*----------------------------------------------------------------------*/
@@ -251,13 +299,13 @@ bool NOMAD::dir_is_mads ( NOMAD::direction_type dt )
 /*----------------------------------------------------------------------*/
 bool NOMAD::dir_is_gps ( NOMAD::direction_type dt )
 {
-  return ( dt == NOMAD::GPS_BINARY             ||
-	   dt == NOMAD::GPS_2N_STATIC          ||
-	   dt == NOMAD::GPS_2N_RAND            ||
-	   dt == NOMAD::GPS_NP1_STATIC_UNIFORM ||
-	   dt == NOMAD::GPS_NP1_STATIC         ||
-	   dt == NOMAD::GPS_NP1_RAND_UNIFORM   ||
-	   dt == NOMAD::GPS_NP1_RAND              );
+    return ( dt == NOMAD::GPS_BINARY             ||
+            dt == NOMAD::GPS_2N_STATIC          ||
+            dt == NOMAD::GPS_2N_RAND            ||
+            dt == NOMAD::GPS_NP1_STATIC_UNIFORM ||
+            dt == NOMAD::GPS_NP1_STATIC         ||
+            dt == NOMAD::GPS_NP1_RAND_UNIFORM   ||
+            dt == NOMAD::GPS_NP1_RAND              );
 }
 
 /*--------------------------------------------------------------------------*/
@@ -265,10 +313,10 @@ bool NOMAD::dir_is_gps ( NOMAD::direction_type dt )
 /*--------------------------------------------------------------------------*/
 bool NOMAD::dir_is_ltmads ( NOMAD::direction_type dt )
 {
-  return ( dt == NOMAD::LT_1     ||
-	   dt == NOMAD::LT_2     ||
-	   dt == NOMAD::LT_2N    ||
-	   dt == NOMAD::LT_NP1      );
+    return ( dt == NOMAD::LT_1     ||
+            dt == NOMAD::LT_2     ||
+            dt == NOMAD::LT_2N    ||
+            dt == NOMAD::LT_NP1      );
 }
 
 /*-------------------------------------------------------------------------*/
@@ -276,13 +324,13 @@ bool NOMAD::dir_is_ltmads ( NOMAD::direction_type dt )
 /*-------------------------------------------------------------------------*/
 bool NOMAD::dir_is_random ( NOMAD::direction_type dt )
 {
-  return ( dt == NOMAD::GPS_NP1_RAND         ||
-	   dt == NOMAD::GPS_NP1_RAND_UNIFORM ||
-	   dt == NOMAD::GPS_2N_RAND          ||
-	   dt == NOMAD::LT_1                 ||
-	   dt == NOMAD::LT_2                 ||
-	   dt == NOMAD::LT_2N                ||
-	   dt == NOMAD::LT_NP1                  );
+    return ( dt == NOMAD::GPS_NP1_RAND         ||
+            dt == NOMAD::GPS_NP1_RAND_UNIFORM ||
+            dt == NOMAD::GPS_2N_RAND          ||
+            dt == NOMAD::LT_1                 ||
+            dt == NOMAD::LT_2                 ||
+            dt == NOMAD::LT_2N                ||
+            dt == NOMAD::LT_NP1                  );
 }
 
 /*-----------------------------------------------------------------------------*/
@@ -290,11 +338,12 @@ bool NOMAD::dir_is_random ( NOMAD::direction_type dt )
 /*-----------------------------------------------------------------------------*/
 bool NOMAD::dir_is_orthomads ( NOMAD::direction_type dt )
 {
-  return (dt == NOMAD::ORTHO_1        ||
-		  dt == NOMAD::ORTHO_2        ||
-		  dt == NOMAD::ORTHO_NP1_QUAD ||
-		  dt == NOMAD::ORTHO_NP1_NEG  ||
-		  dt == NOMAD::ORTHO_2N         );
+    return (dt == NOMAD::ORTHO_1        ||
+            dt == NOMAD::ORTHO_2        ||
+            dt == NOMAD::ORTHO_NP1_QUAD ||
+            dt == NOMAD::ORTHO_NP1_NEG  ||
+            dt == NOMAD::ORTHO_NP1_UNI  ||
+            dt == NOMAD::ORTHO_2N         );
 }
 
 /*---------------------------------------------------------------------*/
@@ -303,11 +352,11 @@ bool NOMAD::dir_is_orthomads ( NOMAD::direction_type dt )
 /*---------------------------------------------------------------------*/
 bool NOMAD::dirs_have_orthomads ( const std::set<NOMAD::direction_type> & dir_types )
 {
-  std::set<NOMAD::direction_type>::const_iterator it , end = dir_types.end();
-  for ( it = dir_types.begin() ; it != end ; ++it )
-    if ( NOMAD::dir_is_orthomads (*it) )
-      return true;
-  return false;
+    std::set<NOMAD::direction_type>::const_iterator it , end = dir_types.end();
+    for ( it = dir_types.begin() ; it != end ; ++it )
+        if ( NOMAD::dir_is_orthomads (*it) )
+            return true;
+    return false;
 }
 
 /*---------------------------------------------------------------------*/
@@ -316,11 +365,11 @@ bool NOMAD::dirs_have_orthomads ( const std::set<NOMAD::direction_type> & dir_ty
 /*---------------------------------------------------------------------*/
 bool NOMAD::dirs_have_orthomads_np1( const std::set<NOMAD::direction_type> & dir_types )
 {
-	std::set<NOMAD::direction_type>::const_iterator it , end = dir_types.end();
-	for ( it = dir_types.begin() ; it != end ; ++it )
-		if ( (*it)==NOMAD::ORTHO_NP1_QUAD || (*it)==NOMAD::ORTHO_NP1_NEG)
-			return true;
-	return false;
+    std::set<NOMAD::direction_type>::const_iterator it , end = dir_types.end();
+    for ( it = dir_types.begin() ; it != end ; ++it )
+        if ( (*it)==NOMAD::ORTHO_NP1_QUAD || (*it)==NOMAD::ORTHO_NP1_NEG || (*it)==NOMAD::ORTHO_NP1_UNI )
+            return true;
+    return false;
 }
 
 /*---------------------------------------------------*/
@@ -328,11 +377,11 @@ bool NOMAD::dirs_have_orthomads_np1( const std::set<NOMAD::direction_type> & dir
 /*---------------------------------------------------*/
 bool NOMAD::string_find ( const std::string & s , const std::list<std::string> & ls )
 {
-  std::list<std::string>::const_iterator it , end = ls.end();
-  for ( it = ls.begin() ; it != end ; ++it )
-    if ( NOMAD::string_find ( s , *it ) )
-      return true;
-  return false;
+    std::list<std::string>::const_iterator it , end = ls.end();
+    for ( it = ls.begin() ; it != end ; ++it )
+        if ( NOMAD::string_find ( s , *it ) )
+            return true;
+    return false;
 }
 
 /*---------------------------------------------------*/
@@ -340,7 +389,7 @@ bool NOMAD::string_find ( const std::string & s , const std::list<std::string> &
 /*---------------------------------------------------*/
 bool NOMAD::string_find ( const std::string & s1 , const std::string & s2 )
 {
-  return ( s1.find(s2) < s1.size() );
+    return ( s1.find(s2) < s1.size() );
 }
 
 /*--------------------------------------------------------------------------*/
@@ -348,11 +397,11 @@ bool NOMAD::string_find ( const std::string & s1 , const std::string & s2 )
 /*--------------------------------------------------------------------------*/
 bool NOMAD::string_match ( const std::string & s , const std::list<std::string> & ls )
 {
-	std::list<std::string>::const_iterator it , end = ls.end();
-	for ( it = ls.begin() ; it != end ; ++it )
-		if ( s.compare(*it) == 0 )
-			return true;
-	return false;
+    std::list<std::string>::const_iterator it , end = ls.end();
+    for ( it = ls.begin() ; it != end ; ++it )
+        if ( s.compare(*it) == 0 )
+            return true;
+    return false;
 }
 
 
@@ -360,186 +409,213 @@ bool NOMAD::string_match ( const std::string & s , const std::list<std::string>
 /*         interpret a list of strings as a direction type         */
 /*-----------------------------------------------------------------*/
 bool NOMAD::strings_to_direction_type ( const std::list<std::string> & ls ,
-					NOMAD::direction_type        & dt   )
+                                       NOMAD::direction_type        & dt   )
 {
-	
-	dt = NOMAD::UNDEFINED_DIRECTION;
-	
-	if ( ls.empty() || ls.size() > 4 )
-		return false;
-	
-	std::list<std::string>::const_iterator it = ls.begin() , end = ls.end();
-	std::string                            s  = *it;
-	NOMAD::toupper ( s );
-	
-	// no direction:
-	if ( s == "NONE" ) {
-		dt = NOMAD::NO_DIRECTION;
-		return true;
-	}
-	
-	// Ortho-MADS with 1, 2, n+1 (plus QUAD or NEG), or 2n directions:
-	if ( s == "ORTHO" ) 
-	{
-		++it;
-		if ( it == end )
-		{
-			dt = NOMAD::ORTHO_NP1_QUAD;  // Default for ORTHO
-			return true;
-		}
-		if ( *it == "1" )
-		{
-			dt = NOMAD::ORTHO_1;
-			return true;
-		}
-		if ( *it == "2" )
-		{
-			dt = NOMAD::ORTHO_2;
-			return true;
-		}
-		s = *it;
-		NOMAD::toupper ( s );
-		if ( s == "2N" )
-		{
-			dt = NOMAD::ORTHO_2N;
-			return true;
-		}
-		if ( s == "N+1" )
-		{
-			++it;
-			if (it==end)
-			{
-				dt = NOMAD::ORTHO_NP1_QUAD;   // Default for ORTHO N+1
-				return true;
-			}
-			s = *it;
-			NOMAD::toupper ( s );
-			if ( s=="QUAD" )
-			{
-				dt= NOMAD::ORTHO_NP1_QUAD;
-				return true;
-			}
-			if ( s=="NEG" )
-			{
-				dt=NOMAD::ORTHO_NP1_NEG;
-				return true;
-			}
-			
-		}
-		
-		return false;
-	}
-	
-	// LT-MADS with 1, 2 or 2n directions:
-	if ( s == "LT" ) {
-		++it;
-		if ( it == end ) {
-			dt = NOMAD::LT_2N;
-			return true;
-		}
-		if ( *it == "1" ) {
-			dt = NOMAD::LT_1;
-			return true;
-		}
-		if ( *it == "2" ) {
-			dt = NOMAD::LT_2;
-			return true;
-		}
-		s = *it;
-		NOMAD::toupper ( s );
-		if ( s == "N+1" ) {
-			dt = NOMAD::LT_NP1;
-			return true;
-		}
-		if ( s == "2N" ) {
-			dt = NOMAD::LT_2N;
-			return true;
-		}
-		return false;
-	}
-	
-	// GPS:
-	if ( s == "GPS" ) {
-		++it;
-		if ( it == end ) {
-			dt = NOMAD::GPS_2N_STATIC;
-			return true;
-		}
-		s = *it;
-		NOMAD::toupper ( s );
-		
-		// GPS for binary variables:
-		if ( s == "BINARY" || s == "BIN" ) {
-			dt = NOMAD::GPS_BINARY;
-			return true;
-		}
-		
-		// GPS, n+1 directions:
-		if ( s == "N+1" ) {
-			++it;
-			if ( it == end ) {
-				dt = NOMAD::GPS_NP1_STATIC;
-				return true;
-			}
-			s = *it;
-			NOMAD::toupper ( s );
-			
-			// GPS, n+1, static:
-			if ( s == "STATIC" ) {
-				++it;
-				if ( it == end ) {
-					dt = NOMAD::GPS_NP1_STATIC;
-					return true;
-				}
-				s = *it;
-				NOMAD::toupper ( s );
-				if ( s == "UNIFORM" ) {
-					dt = NOMAD::GPS_NP1_STATIC_UNIFORM;
-					return true;
-				}
-				return false;
-			}
-			
-			// GPS, n+1, random:
-			if ( s == "RAND" || s == "RANDOM" ) {
-				++it;
-				if ( it == end ) {
-					dt = NOMAD::GPS_NP1_RAND;
-					return true;
-				}
-				s = *it;
-				NOMAD::toupper ( s );
-				if ( s == "UNIFORM" ) {
-					dt = NOMAD::GPS_NP1_RAND_UNIFORM;
-					return true;
-				}
-				return false;
-			}
-			return false;
-		}
-		
-		// 2n directions:
-		if ( s == "2N" ) {
-			++it;
-			if ( it == end ) {
-				dt = NOMAD::GPS_2N_STATIC;
-				return true;
-			}
-			s = *it;
-			NOMAD::toupper ( s );
-			if ( s == "STATIC" ) {
-				dt = NOMAD::GPS_2N_STATIC;
-				return true;
-			}
-			if ( s == "RAND" || s == "RANDOM" ) {
-				dt = NOMAD::GPS_2N_RAND;
-				return true;
-			}
-			return false;
-		}
-		return false;
-	}
-	return false;
+    
+    dt = NOMAD::UNDEFINED_DIRECTION;
+    
+    if ( ls.empty() || ls.size() > 4 )
+        return false;
+    
+    std::list<std::string>::const_iterator it = ls.begin() , end = ls.end();
+    std::string                            s  = *it;
+    NOMAD::toupper ( s );
+    
+    // no direction:
+    if ( s == "NONE" )
+    {
+        dt = NOMAD::NO_DIRECTION;
+        return true;
+    }
+    
+    // Ortho-MADS with 1, 2, n+1 (plus QUAD or NEG), or 2n directions:
+    if ( s == "ORTHO" )
+    {
+        ++it;
+        if ( it == end )
+        {
+            dt = NOMAD::ORTHO_NP1_QUAD;  // Default for ORTHO
+            return true;
+        }
+        if ( *it == "1" )
+        {
+            dt = NOMAD::ORTHO_1;
+            return true;
+        }
+        if ( *it == "2" )
+        {
+            dt = NOMAD::ORTHO_2;
+            return true;
+        }
+        s = *it;
+        NOMAD::toupper ( s );
+        if ( s == "2N" )
+        {
+            dt = NOMAD::ORTHO_2N;
+            return true;
+        }
+        if ( s == "N+1" )
+        {
+            ++it;
+            if (it==end)
+            {
+                dt = NOMAD::ORTHO_NP1_QUAD;   // Default for ORTHO N+1
+                return true;
+            }
+            s = *it;
+            NOMAD::toupper ( s );
+            if ( s=="QUAD" )
+            {
+                dt= NOMAD::ORTHO_NP1_QUAD;
+                return true;
+            }
+            if ( s=="NEG" )
+            {
+                dt=NOMAD::ORTHO_NP1_NEG;
+                return true;
+            }
+            if ( s=="UNI" )
+            {
+                dt=NOMAD::ORTHO_NP1_UNI;
+                return true;
+            }
+            
+        }
+        
+        return false;
+    }
+    
+    // LT-MADS with 1, 2 or 2n directions:
+    if ( s == "LT" )
+    {
+        ++it;
+        if ( it == end )
+        {
+            dt = NOMAD::LT_2N;
+            return true;
+        }
+        if ( *it == "1" )
+        {
+            dt = NOMAD::LT_1;
+            return true;
+        }
+        if ( *it == "2" )
+        {
+            dt = NOMAD::LT_2;
+            return true;
+        }
+        s = *it;
+        NOMAD::toupper ( s );
+        if ( s == "N+1" )
+        {
+            dt = NOMAD::LT_NP1;
+            return true;
+        }
+        if ( s == "2N" )
+        {
+            dt = NOMAD::LT_2N;
+            return true;
+        }
+        return false;
+    }
+    
+    // GPS:
+    if ( s == "GPS" )
+    {
+        ++it;
+        if ( it == end )
+        {
+            dt = NOMAD::GPS_2N_STATIC;
+            return true;
+        }
+        s = *it;
+        NOMAD::toupper ( s );
+        
+        // GPS for binary variables:
+        if ( s == "BINARY" || s == "BIN" )
+        {
+            dt = NOMAD::GPS_BINARY;
+            return true;
+        }
+        
+        // GPS, n+1 directions:
+        if ( s == "N+1" )
+        {
+            ++it;
+            if ( it == end )
+            {
+                dt = NOMAD::GPS_NP1_STATIC;
+                return true;
+            }
+            s = *it;
+            NOMAD::toupper ( s );
+            
+            // GPS, n+1, static:
+            if ( s == "STATIC" )
+            {
+                ++it;
+                if ( it == end )
+                {
+                    dt = NOMAD::GPS_NP1_STATIC;
+                    return true;
+                }
+                s = *it;
+                NOMAD::toupper ( s );
+                if ( s == "UNIFORM" )
+                {
+                    dt = NOMAD::GPS_NP1_STATIC_UNIFORM;
+                    return true;
+                }
+                return false;
+            }
+            
+            // GPS, n+1, random:
+            if ( s == "RAND" || s == "RANDOM" )
+            {
+                ++it;
+                if ( it == end )
+                {
+                    dt = NOMAD::GPS_NP1_RAND;
+                    return true;
+                }
+                s = *it;
+                NOMAD::toupper ( s );
+                if ( s == "UNIFORM" )
+                {
+                    dt = NOMAD::GPS_NP1_RAND_UNIFORM;
+                    return true;
+                }
+                return false;
+            }
+            return false;
+        }
+        
+        // 2n directions:
+        if ( s == "2N" )
+        {
+            ++it;
+            if ( it == end )
+            {
+                dt = NOMAD::GPS_2N_STATIC;
+                return true;
+            }
+            s = *it;
+            NOMAD::toupper ( s );
+            if ( s == "STATIC" )
+            {
+                dt = NOMAD::GPS_2N_STATIC;
+                return true;
+            }
+            if ( s == "RAND" || s == "RANDOM" )
+            {
+                dt = NOMAD::GPS_2N_RAND;
+                return true;
+            }
+            return false;
+        }
+        return false;
+    }
+    return false;
 }
 
 /*---------------------------------------*/
@@ -547,172 +623,195 @@ bool NOMAD::strings_to_direction_type ( const std::list<std::string> & ls ,
 /*---------------------------------------*/
 bool NOMAD::string_to_hnorm_type ( const std::string & s , NOMAD::hnorm_type & hn )
 {
-  std::string ss = s;
-  NOMAD::toupper(ss);
-  if ( ss == "L1" ) {
-    hn = NOMAD::L1;
-    return true;
-  }
-  if ( ss == "L2" ) {
-    hn = NOMAD::L2;
-    return true;
-  }
-  if ( ss == "LINF" ) {
-    hn = NOMAD::LINF;
-    return true;
-  }
-  return false;
-}
-
-/*-----------------------------------------*/
-/*  convert a string into a TGP_mode_type  */
-/*-----------------------------------------*/
-bool NOMAD::string_to_TGP_mode_type ( const std::string & s , NOMAD::TGP_mode_type & m )
-{
-  std::string ss = s;
-  NOMAD::toupper(ss);
-  if ( ss == "FAST" ) {
-    m = NOMAD::TGP_FAST;
-    return true;
-  }
-  if ( ss == "PRECISE" ) {
-    m = NOMAD::TGP_PRECISE;
-    return true;
-  }
-  if ( ss == "USER" ) {
-    m = NOMAD::TGP_USER;
-    return true;
-  }
-  return false;
+    std::string ss = s;
+    NOMAD::toupper(ss);
+    if ( ss == "L1" )
+    {
+        hn = NOMAD::L1;
+        return true;
+    }
+    if ( ss == "L2" )
+    {
+        hn = NOMAD::L2;
+        return true;
+    }
+    if ( ss == "LINF" )
+    {
+        hn = NOMAD::LINF;
+        return true;
+    }
+    return false;
 }
 
 /*--------------------------------------------------*/
 /*  convert a string into a multi_formulation_type  */
 /*--------------------------------------------------*/
 bool NOMAD::string_to_multi_formulation_type ( const std::string             & s   ,
-					       NOMAD::multi_formulation_type & mft   )
+                                              NOMAD::multi_formulation_type & mft   )
 {
-  std::string ss = s;
-  NOMAD::toupper(ss);
-  if ( ss == "NORMALIZED" ) {
-    mft = NOMAD::NORMALIZED;
-    return true;
-  }
-  if ( ss == "PRODUCT" ) {
-    mft = NOMAD::PRODUCT;
-    return true;
-  }
-  if ( ss == "DIST_L1" ) {
-    mft = NOMAD::DIST_L1;
-    return true;
-  }
-  if ( ss == "DIST_L2" ) {
-    mft = NOMAD::DIST_L2;
-    return true;
-  }
-  if ( ss == "DIST_LINF" ) {
-    mft = NOMAD::DIST_LINF;
-    return true;
-  }
-  return false;
+    std::string ss = s;
+    NOMAD::toupper(ss);
+    if ( ss == "NORMALIZED" )
+    {
+        mft = NOMAD::NORMALIZED;
+        return true;
+    }
+    if ( ss == "PRODUCT" )
+    {
+        mft = NOMAD::PRODUCT;
+        return true;
+    }
+    if ( ss == "DIST_L1" )
+    {
+        mft = NOMAD::DIST_L1;
+        return true;
+    }
+    if ( ss == "DIST_L2" )
+    {
+        mft = NOMAD::DIST_L2;
+        return true;
+    }
+    if ( ss == "DIST_LINF" )
+    {
+        mft = NOMAD::DIST_LINF;
+        return true;
+    }
+    return false;
 }
 
 /*-------------------------------------------*/
 /*   convert a string into a bb_output_type  */
 /*-------------------------------------------*/
 bool NOMAD::string_to_bb_output_type ( const std::string     & s    ,
-				       NOMAD::bb_output_type & bbot   )
+                                      NOMAD::bb_output_type & bbot   )
 {
-  std::string ss = s;
-  NOMAD::toupper(ss);
-  
-  if ( ss == "OBJ" ) {
-    bbot = NOMAD::OBJ;
-    return true;
-  }
-  if ( ss == "EB" ) {
-    bbot = NOMAD::EB;
-    return true;
-  }
-  if ( ss == "PB" || ss == "CSTR" ) {
-    bbot = NOMAD::PB;
-    return true;
-  }
-  if ( ss == "PEB" ) {
-    bbot = NOMAD::PEB_P;
-    return true;
-  }
-  if ( ss == "F" ) {
-    bbot = NOMAD::FILTER;
-    return true;
-  }
-  if ( ss == "STAT_AVG" ) {
-    bbot = NOMAD::STAT_AVG;
-    return true;
-  }
-  if ( ss == "STAT_SUM" ) {
-    bbot = NOMAD::STAT_SUM;
-    return true;
-  }
-  if ( ss == "CNT_EVAL" ) {
-    bbot = NOMAD::CNT_EVAL;
-    return true;
-  }
-  if ( ss == "NOTHING" || ss == "-" ) {
-    bbot = NOMAD::UNDEFINED_BBO;
-    return true;
-  }
-  return false;
+    std::string ss = s;
+    NOMAD::toupper(ss);
+    
+    if ( ss == "OBJ" )
+    {
+        bbot = NOMAD::OBJ;
+        return true;
+    }
+    if ( ss == "EB" )
+    {
+        bbot = NOMAD::EB;
+        return true;
+    }
+    if ( ss == "PB" || ss == "CSTR" )
+    {
+        bbot = NOMAD::PB;
+        return true;
+    }
+    if ( ss == "PEB" )
+    {
+        bbot = NOMAD::PEB_P;
+        return true;
+    }
+    if ( ss == "F" )
+    {
+        bbot = NOMAD::FILTER;
+        return true;
+    }
+    if ( ss == "STAT_AVG" )
+    {
+        bbot = NOMAD::STAT_AVG;
+        return true;
+    }
+    if ( ss == "STAT_SUM" )
+    {
+        bbot = NOMAD::STAT_SUM;
+        return true;
+    }
+    if ( ss == "CNT_EVAL" )
+    {
+        bbot = NOMAD::CNT_EVAL;
+        return true;
+    }
+    if ( ss == "NOTHING" || ss == "-" )
+    {
+        bbot = NOMAD::UNDEFINED_BBO;
+        return true;
+    }
+    return false;
 }
 
 /*-----------------------------------------------------------------*/
 /*                convert a string into a bb_input_type            */
 /*-----------------------------------------------------------------*/
 bool NOMAD::string_to_bb_input_type ( const std::string    & s    ,
-				      NOMAD::bb_input_type & bbit   )
+                                     NOMAD::bb_input_type & bbit   )
 {
-  std::string ss = s;
-  NOMAD::toupper ( ss );
-  if ( ss=="R" || ss=="REAL" ) {
-    bbit = NOMAD::CONTINUOUS;
-    return true;
-  }
-  if ( ss=="C" || ss=="CAT" ) {
-    bbit = NOMAD::CATEGORICAL;
-    return true;
-  }
-  if ( ss=="B" || ss=="BIN" ) {
-    bbit = NOMAD::BINARY;
-    return true;
-  }
-  if ( ss=="I" || ss=="INT" ) {
-    bbit = NOMAD::INTEGER;
-    return true;
-  }
-  return false;
+    std::string ss = s;
+    NOMAD::toupper ( ss );
+    if ( ss=="R" || ss=="REAL" )
+    {
+        bbit = NOMAD::CONTINUOUS;
+        return true;
+    }
+    if ( ss=="C" || ss=="CAT" )
+    {
+        bbit = NOMAD::CATEGORICAL;
+        return true;
+    }
+    if ( ss=="B" || ss=="BIN" )
+    {
+        bbit = NOMAD::BINARY;
+        return true;
+    }
+    if ( ss=="I" || ss=="INT" )
+    {
+        bbit = NOMAD::INTEGER;
+        return true;
+    }
+    return false;
 }
 
 /*-----------------------------------------------------------------*/
 /*                 convert a string into a model_type              */
 /*-----------------------------------------------------------------*/
 bool NOMAD::string_to_model_type ( const std::string & s  ,
-				   NOMAD::model_type & mt   )
+                                  NOMAD::model_type & mt   )
 {
-  std::string ss = s;
-  NOMAD::toupper ( ss );
-  if ( ss=="TGP" || ss=="TGP_MODEL" ) {
-    mt = NOMAD::TGP_MODEL;
-    return true;
-  }
-  if ( ss=="QUADRATIC" || ss=="QUADRATIC_MODEL" ) {
-    mt = NOMAD::QUADRATIC_MODEL;
-    return true;
-  }
+    std::string ss = s;
+    NOMAD::toupper ( ss );
 
-  mt = NOMAD::NO_MODEL;
-  return false;
+    if ( ss=="QUADRATIC" || ss=="QUADRATIC_MODEL" )
+    {
+        mt = NOMAD::QUADRATIC_MODEL;
+        return true;
+    }
+    
+    
+    mt = NOMAD::NO_MODEL;
+    return false;
 }
 
+/*-----------------------------------------------------------------*/
+/*                 convert a string into a mesh_type              */
+/*-----------------------------------------------------------------*/
+bool NOMAD::string_to_mesh_type ( const std::string & s  ,
+                                  NOMAD::mesh_type  & mt   )
+{
+    std::string ss = s;
+    NOMAD::toupper ( ss );
+    if ( ss=="XMESH" || ss=="X" )
+    {
+        mt = NOMAD::XMESH;
+        return true;
+    }
+    if ( ss=="SMESH" || ss=="S" )
+    {
+        mt = NOMAD::SMESH;
+        return true;
+    }
+    
+    mt = NOMAD::NO_MESH_TYPE;
+    return false;
+}
+
+
+
 /*----------------------------------------------------------------------*/
 /*         convert a string in {"YES","NO","Y","N"} to a bool           */
 /*         value of return: -1: error                                   */
@@ -721,131 +820,137 @@ bool NOMAD::string_to_model_type ( const std::string & s  ,
 /*----------------------------------------------------------------------*/
 int NOMAD::string_to_bool ( const std::string & ss )
 {
-  std::string s = ss;
-  NOMAD::toupper ( s );
-  if ( s=="Y" || s=="YES" || s=="1" || s=="TRUE" )
-    return 1;
-  if ( s=="N" || s=="NO" || s=="0" || s=="FALSE" )
-    return 0;
-  return -1;
+    std::string s = ss;
+    NOMAD::toupper ( s );
+    if ( s=="Y" || s=="YES" || s=="1" || s=="TRUE" )
+        return 1;
+    if ( s=="N" || s=="NO" || s=="0" || s=="FALSE" )
+        return 0;
+    return -1;
 }
 
 /*---------------------------------------------------*/
 /*  convert a string 'i-j' to the integers i and j   */
 /*---------------------------------------------------*/
 bool NOMAD::string_to_index_range ( const std::string & s           ,
-				    int               & i           ,
-				    int               & j           ,
-				    int               * n           ,
-				    bool                check_order   )
+                                   int               & i           ,
+                                   int               & j           ,
+                                   int               * n           ,
+                                   bool                check_order   )
 {
-  if ( s.empty() )
-    return false;
-  
-  if ( s == "*" ) {
-    if ( !n )
-      return false;
-    i = 0;
-    j = *n-1;
-    return true;
-  }
-  
-  if ( s[0] == '-' ) {
-      
-    size_t ns = s.size();
-    if ( ns > 1 && s[1] == '-' )
-      return false;
+    if ( s.empty() )
+        return false;
     
-    std::string ss = s;
-    ss.erase ( ss.begin() );
-      
-    if ( NOMAD::string_to_index_range ( ss , i , j , n , false ) ) {
-      i = -i;
-      return true;
+    if ( s == "*" )
+    {
+        if ( !n )
+            return false;
+        i = 0;
+        j = *n-1;
+        return true;
     }
-    return false;
-  }
-
-  std::istringstream in (s);
-  std::string        s1;
-
-  getline ( in , s1 , '-' );
-
-  if (in.fail())
-    return false;
-
-  size_t k , n1 = s1.size();
-
-  if ( n1 >= s.size() - 1 ) {
-    for ( k = 0 ; k < n1 ; ++k )
-      if (!isdigit(s1[k]))
-	return false;
-    if ( !NOMAD::atoi ( s1 , i ) )
-      return false;
-    if ( n1 == s.size() ) {
-      j = i;
-      return true;
+    
+    if ( s[0] == '-' )
+    {
+        
+        size_t ns = s.size();
+        if ( ns > 1 && s[1] == '-' )
+            return false;
+        
+        std::string ss = s;
+        ss.erase ( ss.begin() );
+        
+        if ( NOMAD::string_to_index_range ( ss , i , j , n , false ) )
+        {
+            i = -i;
+            return true;
+        }
+        return false;
     }
-    if (n) {
-      j = *n-1;
-      return true;
+    
+    std::istringstream in (s);
+    std::string        s1;
+    
+    getline ( in , s1 , '-' );
+    
+    if (in.fail())
+        return false;
+    
+    size_t k , n1 = s1.size();
+    
+    if ( n1 >= s.size() - 1 )
+    {
+        for ( k = 0 ; k < n1 ; ++k )
+            if (!isdigit(s1[k]))
+                return false;
+        if ( !NOMAD::atoi ( s1 , i ) )
+            return false;
+        if ( n1 == s.size() )
+        {
+            j = i;
+            return true;
+        }
+        if (n)
+        {
+            j = *n-1;
+            return true;
+        }
+        return false;
     }
-    return false;
-  }
-
-  std::string s2;
-  getline (in, s2);
-
-  if (in.fail())
-    return false;
-
-  size_t n2 = s2.size();
-  for ( k = 0 ; k < n2 ; ++k )
-    if ( !isdigit(s2[k]) )
-      return false;
-
-  if ( !NOMAD::atoi ( s1, i ) || !NOMAD::atoi ( s2 , j ) )
-    return false;
-
-  return !check_order || i <= j;
+    
+    std::string s2;
+    getline (in, s2);
+    
+    if (in.fail())
+        return false;
+    
+    size_t n2 = s2.size();
+    for ( k = 0 ; k < n2 ; ++k )
+        if ( !isdigit(s2[k]) )
+            return false;
+    
+    if ( !NOMAD::atoi ( s1, i ) || !NOMAD::atoi ( s2 , j ) )
+        return false;
+    
+    return !check_order || i <= j;
 }
 
 
 int NOMAD::get_rank(double ** M,
-					size_t m,
-					size_t n)
+                    size_t m,
+                    size_t n)
 {
-	double  * W = new double  [n];
-	double ** V = new double *[n];
-	for (size_t i = 0 ; i < n ; ++i )
-	{
-		V[i]=new double [n];
-	}
-	
-	std::string error_msg;
-	NOMAD::SVD_decomposition ( error_msg , M , W , V , static_cast<int>(m) , static_cast<int>(n) );
-
-	for (size_t i=0;i<n;++i)
-		delete [] V[i];
-	delete [] V;
-
-	
- 	if (! error_msg.empty())
-	{
-		delete [] W;
-		return -1;
-	}
-	
-	int rank=0;
-	for (size_t i=0;i<n;i++)
-	{
-		if (fabs(W[i])>NOMAD::SVD_EPS)
-			rank++;
-	}
-	
-	delete [] W;
-	return rank;
-	
+    double  * W = new double  [n];
+    double ** V = new double *[n];
+    for (size_t i = 0 ; i < n ; ++i )
+    {
+        V[i]=new double [n];
+    }
+    
+    std::string error_msg;
+    NOMAD::SVD_decomposition ( error_msg , M , W , V , static_cast<int>(m) , static_cast<int>(n) );
+    
+    for (size_t i=0;i<n;++i)
+        delete [] V[i];
+    delete [] V;
+    
+    
+    if (! error_msg.empty())
+    {
+        delete [] W;
+        return -1;
+    }
+    
+    int rank=0;
+    for (size_t i=0;i<n;i++)
+    {
+        if (fabs(W[i])>NOMAD::SVD_EPS)
+            rank++;
+    }
+    
+    delete [] W;
+    return rank;
+    
 }
 
 
@@ -873,293 +978,311 @@ int NOMAD::get_rank(double ** M,
 /*           V is given, not V'                                 */
 /*                                                              */
 /*--------------------------------------------------------------*/
+/* 2011-08-16 -- BUG REPORT (found by Etienne Duclos)           */
+/*                                                              */
+/* the -Wall option gave a warning when nm was not initialized  */
+/*                                                              */
+/* Solution: initialize nm = 0                                  */
+/*                                                              */
+/*--------------------------------------------------------------*/
 bool NOMAD::SVD_decomposition ( std::string & error_msg ,
-				double     ** M         ,
-				double      * W         ,
-				double     ** V         ,
-				int           m         ,
-				int           n         ,
-				int           max_mpn     ) // default=1500
+                               double     ** M         ,
+                               double      * W         ,
+                               double     ** V         ,
+                               int           m         ,
+                               int           n         ,
+                               int           max_mpn     ) // default=1500
 {
-	error_msg.clear();
-	
-	if ( max_mpn > 0 && m+n > max_mpn ) {
-		error_msg = "SVD_decomposition() error: m+n > " + NOMAD::itos ( max_mpn );
-		return false;
-	}
-	
-	double * rv1   = new double[n];
-	double   scale = 0.0;
-	double   g     = 0.0;
-	double   norm  = 0.0;
-	
-	int      nm1   = n - 1;
-	
-	bool   flag;
-	int    i , j , k , l , its , jj , nm = 0;
-	double s , f , h , tmp , c , x , y , z , absf , absg , absh;
-	
-	const int NITER = 30;
-	
-	// Initialization W and V
-	for (i=0; i < n; ++i)
-	{
-		W[i]=0.0;
-		for (j=0; j < n ; ++j)
-			V[i][j]=0.0;
-	}
-	
-	// Householder reduction to bidiagonal form:
-	for ( i = 0 ; i < n ; ++i )
-	{
-		l      = i + 1;
-		rv1[i] = scale * g;
-		g      = s = scale = 0.0;
-		if ( i < m )
-		{
-			for ( k = i ; k < m ; ++k )
-				scale += fabs ( M[k][i] );
-			if ( scale ) {
-				for ( k = i ; k < m ; ++k ) 
-				{
-					M[k][i] /= scale;
-					s += M[k][i] * M[k][i];
-				}
-				f       = M[i][i];
-				g       = ( f >= 0.0 ) ? -fabs(sqrt(s)) : fabs(sqrt(s));
-				h       = f * g - s;
-				M[i][i] = f - g;
-				for ( j = l ; j < n ; ++j ) {
-					for ( s = 0.0 , k = i ; k < m ; ++k )
-						s += M[k][i] * M[k][j];
-					f = s / h;
-					for ( k = i ; k < m ; ++k )
-						M[k][j] += f * M[k][i];
-				}
-				for ( k = i ; k < m ; ++k )
-					M[k][i] *= scale;
-			}
-		}
-		W[i] = scale * g;
-		g    = s = scale = 0.0;
-		if ( i < m && i != nm1 ) 
-		{
-			for ( k = l ; k < n ; ++k )
-				scale += fabs ( M[i][k] );
-			if ( scale ) 
-			{
-				for ( k = l ; k < n ; ++k )
-				{
-					M[i][k] /= scale;
-					s       += M[i][k] * M[i][k];
-				}
-				f       = M[i][l];
-				g       = ( f >= 0.0 ) ? -fabs(sqrt(s)) : fabs(sqrt(s));
-				h       = f * g - s;
-				M[i][l] = f - g;
-				for ( k = l ; k < n ; ++k )
-					rv1[k] = M[i][k] / h;
-				for ( j = l ; j < m ; ++j ) {
-					for ( s=0.0,k=l ; k < n ; ++k )
-						s += M[j][k] * M[i][k];
-					for ( k=l ; k < n ; ++k )
-						M[j][k] += s * rv1[k];
-				}
-				for ( k = l ; k < n ; ++k )
-					M[i][k] *= scale;
-			}
-		}
-		tmp  = fabs ( W[i] ) + fabs ( rv1[i] );
-		norm = ( norm > tmp ) ? norm : tmp;
-	}
-	
-	// accumulation of right-hand transformations:
-	for ( i = nm1 ; i >= 0 ; --i )
-	{
-		if ( i < nm1 ) 
-		{
-			if ( g ) 
-			{
-				for ( j = l ; j < n ; ++j )
-					V[j][i] = ( M[i][j] / M[i][l] ) / g;
-				for ( j = l ; j < n ; ++j ) {
-					for ( s = 0.0 , k = l ; k < n ; ++k )
-						s += M[i][k] * V[k][j];
-					for ( k = l ; k < n ; ++k )
-						V[k][j] += s * V[k][i];
-				}
-			}
-			for ( j = l ; j < n ; ++j )
-				V[i][j] = V[j][i] = 0.0;
-		}
-		V[i][i] = 1.0;
-		g       = rv1[i];
-		l       = i;
-	}
-	
-	// accumulation of left-hand transformations:
-	for ( i = ( ( m < n ) ? m : n ) - 1 ; i >= 0 ; --i ) 
-	{
-		l = i + 1;
-		g = W[i];
-		for ( j = l ; j < n ; ++j )
-			M[i][j] = 0.0;
-		if ( g ) {
-			g = 1.0 / g;
-			for ( j = l ; j < n ; ++j ) 
-			{
-				for ( s = 0.0 , k = l ; k < m ; ++k )
-					s += M[k][i] * M[k][j];
-				f = ( s / M[i][i] ) * g;
-				for ( k = i ; k < m ; ++k )
-					M[k][j] += f * M[k][i];
-			}
-			for ( j = i ; j < m ; ++j )
-				M[j][i] *= g;
-		}
-		else
-			for ( j = i ; j < m ; ++j )
-				M[j][i] = 0.0;
-		++M[i][i];
-	}
-	
-	// diagonalization of the bidiagonal form:
-	for ( k = nm1 ; k >= 0 ; --k )
-	{
-		for ( its = 1 ; its <= NITER ; its++ ) 
-		{
-			flag = true;
-			for ( l = k ; l >= 0 ; l-- ) 
-			{
-				nm = l - 1;
-				if ( nm < 0 || fabs ( rv1[l]) + norm == norm )
-				{
-					flag = false;
-					break;
-				}
-				if ( fabs ( W[nm] ) + norm == norm )
-					break;
-			}
-			if ( flag )
-			{
-				c = 0.0;
-				s = 1.0;
-				for ( i = l ; i <= k ; i++ )
-				{
-					f      = s * rv1[i];
-					rv1[i] = c * rv1[i];
-					if ( fabs(f) + norm == norm )
-						break;
-					g = W[i];
-					
-					absf = fabs(f);
-					absg = fabs(g);
-					h    = ( absf > absg ) ?
-					absf * sqrt ( 1.0 + pow ( absg/absf , 2.0 ) ) :
-					( ( absg==0 ) ? 0.0 : absg * sqrt ( 1.0 + pow ( absf/absg , 2.0 ) ) );
-					
-					W[i] =  h;
-					h    =  1.0 / h;
-					c    =  g * h;
-					s    = -f * h;
-					for ( j = 0 ; j < m ; ++j ) {
-						y = M[j][nm];
-						z = M[j][ i];
-						M[j][nm] = y * c + z * s;
-						M[j][ i] = z * c - y * s;
-					}
-				}
-			}
-			z = W[k];
-			if ( l == k) {
-				if ( z < 0.0 ) {
-					W[k] = -z;
-					for ( j = 0 ; j < n ; j++ )
-						V[j][k] = -V[j][k];
-				}
-				break;  // this 'break' is always active if k==0
-			}
-			if ( its == NITER ) 
-			{
-				error_msg = "SVD_decomposition() error: no convergence in " +
-	            NOMAD::itos ( NITER ) + " iterations";
-				delete [] rv1;
-				return false;
-			}
-			x  = W[l];
-			nm = k - 1;
-			y  = W[nm];
-			g  = rv1[nm];
-			h  = rv1[k];
-			f  = ( (y-z) * (y+z) + (g-h) * (g+h) ) / ( 2.0 * h * y );
-			
-			absf = fabs(f);
-			g    = ( absf > 1.0 ) ?
-			absf * sqrt ( 1.0 + pow ( 1.0/absf , 2.0 ) ) :
-			sqrt ( 1.0 + pow ( absf , 2.0 ) );
-			
-			f = ( (x-z) * (x+z) +
-				 h * ( ( y / ( f + ( (f >= 0)? fabs(g) : -fabs(g) ) ) ) - h ) ) / x;
-			c = s = 1.0;
-			
-			for ( j = l ; j <= nm ; ++j ) {
-				i = j + 1;
-				g = rv1[i];
-				y = W[i];
-				h = s * g;
-				g = c * g;
-				
-				absf = fabs(f);
-				absh = fabs(h);
-				z    = ( absf > absh ) ?
-				absf * sqrt ( 1.0 + pow ( absh/absf , 2.0 ) ) :
-				( ( absh==0 ) ? 0.0 : absh * sqrt ( 1.0 + pow ( absf/absh , 2.0 ) ) );
-				
-				rv1[j] = z;
-				c      = f / z;
-				s      = h / z;
-				f      = x * c + g * s;
-				g      = g * c - x * s;
-				h      = y * s;
-				y     *= c;
-				for ( jj = 0 ; jj < n ; ++jj )
-				{
-					x = V[jj][j];
-					z = V[jj][i];
-					V[jj][j] = x * c + z * s;
-					V[jj][i] = z * c - x * s;
-				}
-				
-				absf = fabs(f);
-				absh = fabs(h);
-				z    = ( absf > absh ) ?
-				absf * sqrt ( 1.0 + pow ( absh/absf , 2.0 ) ) :
-				( ( absh==0 ) ? 0.0 : absh * sqrt ( 1.0 + pow ( absf/absh , 2.0 ) ) );
-				
-				W[j] = z;
-				
-				if ( z ) 
-				{
-					z = 1.0 / z;
-					c = f * z;
-					s = h * z;
-				}
-				f = c * g + s * y;
-				x = c * y - s * g;
-				for ( jj = 0 ; jj < m ; ++jj )
-				{
-					y = M[jj][j];
-					z = M[jj][i];
-					M[jj][j] = y * c + z * s;
-					M[jj][i] = z * c - y * s;
-				}
-			}
-			rv1[l] = 0.0;
-			rv1[k] = f;
-			W  [k] = x;
-		}
-	}
-	
-	delete [] rv1;
-	return true;
+    error_msg.clear();
+    
+    if ( max_mpn > 0 && m+n > max_mpn )
+    {
+        error_msg = "SVD_decomposition() error: m+n > " + NOMAD::itos ( max_mpn );
+        return false;
+    }
+    
+    double * rv1   = new double[n];
+    double   scale = 0.0;
+    double   g     = 0.0;
+    double   norm  = 0.0;
+    
+    int      nm1   = n - 1;
+    
+    bool   flag;
+    int    i , j , k , l , its , jj , nm = 0;
+    double s , f , h , tmp , c , x , y , z , absf , absg , absh;
+    
+    const int NITER = 30;
+    
+    // Initialization W and V
+    for (i=0; i < n; ++i)
+    {
+        W[i]=0.0;
+        for (j=0; j < n ; ++j)
+            V[i][j]=0.0;
+    }
+    
+    // Householder reduction to bidiagonal form:
+    for ( i = 0 ; i < n ; ++i )
+    {
+        l      = i + 1;
+        rv1[i] = scale * g;
+        g      = s = scale = 0.0;
+        if ( i < m )
+        {
+            for ( k = i ; k < m ; ++k )
+                scale += fabs ( M[k][i] );
+            if ( scale )
+            {
+                for ( k = i ; k < m ; ++k )
+                {
+                    M[k][i] /= scale;
+                    s += M[k][i] * M[k][i];
+                }
+                f       = M[i][i];
+                g       = ( f >= 0.0 ) ? -fabs(sqrt(s)) : fabs(sqrt(s));
+                h       = f * g - s;
+                M[i][i] = f - g;
+                for ( j = l ; j < n ; ++j )
+                {
+                    for ( s = 0.0 , k = i ; k < m ; ++k )
+                        s += M[k][i] * M[k][j];
+                    f = s / h;
+                    for ( k = i ; k < m ; ++k )
+                        M[k][j] += f * M[k][i];
+                }
+                for ( k = i ; k < m ; ++k )
+                    M[k][i] *= scale;
+            }
+        }
+        W[i] = scale * g;
+        g    = s = scale = 0.0;
+        if ( i < m && i != nm1 )
+        {
+            for ( k = l ; k < n ; ++k )
+                scale += fabs ( M[i][k] );
+            if ( scale )
+            {
+                for ( k = l ; k < n ; ++k )
+                {
+                    M[i][k] /= scale;
+                    s       += M[i][k] * M[i][k];
+                }
+                f       = M[i][l];
+                g       = ( f >= 0.0 ) ? -fabs(sqrt(s)) : fabs(sqrt(s));
+                h       = f * g - s;
+                M[i][l] = f - g;
+                for ( k = l ; k < n ; ++k )
+                    rv1[k] = M[i][k] / h;
+                for ( j = l ; j < m ; ++j )
+                {
+                    for ( s=0.0,k=l ; k < n ; ++k )
+                        s += M[j][k] * M[i][k];
+                    for ( k=l ; k < n ; ++k )
+                        M[j][k] += s * rv1[k];
+                }
+                for ( k = l ; k < n ; ++k )
+                    M[i][k] *= scale;
+            }
+        }
+        tmp  = fabs ( W[i] ) + fabs ( rv1[i] );
+        norm = ( norm > tmp ) ? norm : tmp;
+    }
+    
+    // accumulation of right-hand transformations:
+    l=0;
+    for ( i = nm1 ; i >= 0 ; --i )
+    {
+        if ( i < nm1 )
+        {
+            if ( g )
+            {
+                for ( j = l ; j < n ; ++j )
+                    V[j][i] = ( M[i][j] / M[i][l] ) / g;
+                for ( j = l ; j < n ; ++j )
+                {
+                    for ( s = 0.0 , k = l ; k < n ; ++k )
+                        s += M[i][k] * V[k][j];
+                    for ( k = l ; k < n ; ++k )
+                        V[k][j] += s * V[k][i];
+                }
+            }
+            for ( j = l ; j < n ; ++j )
+                V[i][j] = V[j][i] = 0.0;
+        }
+        V[i][i] = 1.0;
+        g       = rv1[i];
+        l       = i;
+    }
+    
+    // accumulation of left-hand transformations:
+    for ( i = ( ( m < n ) ? m : n ) - 1 ; i >= 0 ; --i )
+    {
+        l = i + 1;
+        g = W[i];
+        for ( j = l ; j < n ; ++j )
+            M[i][j] = 0.0;
+        if ( g )
+        {
+            g = 1.0 / g;
+            for ( j = l ; j < n ; ++j )
+            {
+                for ( s = 0.0 , k = l ; k < m ; ++k )
+                    s += M[k][i] * M[k][j];
+                f = ( s / M[i][i] ) * g;
+                for ( k = i ; k < m ; ++k )
+                    M[k][j] += f * M[k][i];
+            }
+            for ( j = i ; j < m ; ++j )
+                M[j][i] *= g;
+        }
+        else
+            for ( j = i ; j < m ; ++j )
+                M[j][i] = 0.0;
+        ++M[i][i];
+    }
+    
+    // diagonalization of the bidiagonal form:
+    for ( k = nm1 ; k >= 0 ; --k )
+    {
+        for ( its = 1 ; its <= NITER ; its++ )
+        {
+            flag = true;
+            for ( l = k ; l >= 0 ; l-- )
+            {
+                nm = l - 1;
+                if ( nm < 0 || fabs ( rv1[l]) + norm == norm )
+                {
+                    flag = false;
+                    break;
+                }
+                if ( fabs ( W[nm] ) + norm == norm )
+                    break;
+            }
+            if ( flag )
+            {
+                c = 0.0;
+                s = 1.0;
+                for ( i = l ; i <= k ; i++ )
+                {
+                    f      = s * rv1[i];
+                    rv1[i] = c * rv1[i];
+                    if ( fabs(f) + norm == norm )
+                        break;
+                    g = W[i];
+                    
+                    absf = fabs(f);
+                    absg = fabs(g);
+                    h    = ( absf > absg ) ?
+                    absf * sqrt ( 1.0 + pow ( absg/absf , 2.0 ) ) :
+                    ( ( absg==0 ) ? 0.0 : absg * sqrt ( 1.0 + pow ( absf/absg , 2.0 ) ) );
+                    
+                    W[i] =  h;
+                    h    =  1.0 / h;
+                    c    =  g * h;
+                    s    = -f * h;
+                    for ( j = 0 ; j < m ; ++j )
+                    {
+                        y = M[j][nm];
+                        z = M[j][ i];
+                        M[j][nm] = y * c + z * s;
+                        M[j][ i] = z * c - y * s;
+                    }
+                }
+            }
+            z = W[k];
+            if ( l == k)
+            {
+                if ( z < 0.0 )
+                {
+                    W[k] = -z;
+                    for ( j = 0 ; j < n ; j++ )
+                        V[j][k] = -V[j][k];
+                }
+                break;  // this 'break' is always active if k==0
+            }
+            if ( its == NITER )
+            {
+                error_msg = "SVD_decomposition() error: no convergence in " +
+                NOMAD::itos ( NITER ) + " iterations";
+                delete [] rv1;
+                return false;
+            }
+            x  = W[l];
+            nm = k - 1;
+            y  = W[nm];
+            g  = rv1[nm];
+            h  = rv1[k];
+            f  = ( (y-z) * (y+z) + (g-h) * (g+h) ) / ( 2.0 * h * y );
+            
+            absf = fabs(f);
+            g    = ( absf > 1.0 ) ?
+            absf * sqrt ( 1.0 + pow ( 1.0/absf , 2.0 ) ) :
+            sqrt ( 1.0 + pow ( absf , 2.0 ) );
+            
+            f = ( (x-z) * (x+z) +
+                 h * ( ( y / ( f + ( (f >= 0)? fabs(g) : -fabs(g) ) ) ) - h ) ) / x;
+            c = s = 1.0;
+            
+            for ( j = l ; j <= nm ; ++j )
+            {
+                i = j + 1;
+                g = rv1[i];
+                y = W[i];
+                h = s * g;
+                g = c * g;
+                
+                absf = fabs(f);
+                absh = fabs(h);
+                z    = ( absf > absh ) ?
+                absf * sqrt ( 1.0 + pow ( absh/absf , 2.0 ) ) :
+                ( ( absh==0 ) ? 0.0 : absh * sqrt ( 1.0 + pow ( absf/absh , 2.0 ) ) );
+                
+                rv1[j] = z;
+                c      = f / z;
+                s      = h / z;
+                f      = x * c + g * s;
+                g      = g * c - x * s;
+                h      = y * s;
+                y     *= c;
+                for ( jj = 0 ; jj < n ; ++jj )
+                {
+                    x = V[jj][j];
+                    z = V[jj][i];
+                    V[jj][j] = x * c + z * s;
+                    V[jj][i] = z * c - x * s;
+                }
+                
+                absf = fabs(f);
+                absh = fabs(h);
+                z    = ( absf > absh ) ?
+                absf * sqrt ( 1.0 + pow ( absh/absf , 2.0 ) ) :
+                ( ( absh==0 ) ? 0.0 : absh * sqrt ( 1.0 + pow ( absf/absh , 2.0 ) ) );
+                
+                W[j] = z;
+                
+                if ( z )
+                {
+                    z = 1.0 / z;
+                    c = f * z;
+                    s = h * z;
+                }
+                f = c * g + s * y;
+                x = c * y - s * g;
+                for ( jj = 0 ; jj < m ; ++jj )
+                {
+                    y = M[jj][j];
+                    z = M[jj][i];
+                    M[jj][j] = y * c + z * s;
+                    M[jj][i] = z * c - y * s;
+                }
+            }
+            rv1[l] = 0.0;
+            rv1[k] = f;
+            W  [k] = x;
+        }
+    }
+    
+    delete [] rv1;
+    return true;
 }
diff --git a/src/utils.hpp b/src/utils.hpp
index 0fd19d5..8496a70 100644
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -1,16 +1,23 @@
 /*-------------------------------------------------------------------------------------*/
-/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.2      */
+/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct search - version 3.7.3      */
 /*                                                                                     */
-/*  Copyright (C) 2001-2015  Mark Abramson        - the Boeing Company, Seattle        */
-/*                           Charles Audet        - Ecole Polytechnique, Montreal      */
-/*                           Gilles Couture       - Ecole Polytechnique, Montreal      */
-/*                           John Dennis          - Rice University, Houston           */
-/*                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      */
-/*                           Christophe Tribes    - Ecole Polytechnique, Montreal      */
 /*                                                                                     */
-/*  funded in part by AFOSR and Exxon Mobil                                            */
+/*  NOMAD - version 3.7.3 has been created by                                          */
+/*                 Charles Audet        - Ecole Polytechnique de Montreal              */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  The copyright of NOMAD - version 3.7.3 is owned by                                 */
+/*                 Sebastien Le Digabel - Ecole Polytechnique de Montreal              */
+/*                 Christophe Tribes    - Ecole Polytechnique de Montreal              */
+/*                                                                                     */
+/*  NOMAD v3 has been funded by AFOSR and Exxon Mobil.                                 */
+/*                                                                                     */
+/*  NOMAD v3 is a new version of Nomad v1 and v2. Nomad v1 and v2 were created and     */
+/*  developed by Mark A. Abramson from The Boeing Company, Charles Audet and           */
+/*  Gilles Couture from Ecole Polytechnique de Montreal, and John E. Dennis Jr. from   */
+/*  Rice University, and were funded by AFOSR and Exxon Mobil.                         */
 /*                                                                                     */
-/*  Author: Sebastien Le Digabel                                                       */
 /*                                                                                     */
 /*  Contact information:                                                               */
 /*    Ecole Polytechnique de Montreal - GERAD                                          */
@@ -34,12 +41,12 @@
 /*  You can find information on the NOMAD software at www.gerad.ca/nomad               */
 /*-------------------------------------------------------------------------------------*/
 /**
-  \file   utils.hpp
-  \brief  Utility functions (headers)
-  \author Sebastien Le Digabel
-  \date   2010-03-23
-  \see    utils.cpp
-*/
+ \file   utils.hpp
+ \brief  Utility functions (headers)
+ \author Sebastien Le Digabel
+ \date   2010-03-23
+ \see    utils.cpp
+ */
 #ifndef __UTILS__
 #define __UTILS__
 
@@ -66,225 +73,226 @@
 
 
 namespace NOMAD {
-
-  /// Convert a string into a NOMAD::bb_input_type.
-  /**
+    
+    /// Convert a string into a NOMAD::bb_input_type.
+    /**
      \param  s    The string               -- \b IN.
      \param  bbit The NOMAD::bb_input_type -- \b OUT.
      \return      A boolean equal to \c true if the conversion was possible.
-  */
-  bool string_to_bb_input_type ( const std::string & s , NOMAD::bb_input_type & bbit );
-
-  /// Convert a string into a NOMAD::bb_output_type.
-  /**
+     */
+    bool string_to_bb_input_type ( const std::string & s , NOMAD::bb_input_type & bbit );
+    
+    /// Convert a string into a NOMAD::bb_output_type.
+    /**
      \param s    The string                -- \b IN.
      \param bbot The NOMAD::bb_output_type -- \b OUT.
      \return     A boolean equal to \c true if the conversion was possible.
-  */
-  bool string_to_bb_output_type ( const std::string & s , NOMAD::bb_output_type & bbot );
-  
-  /// Convert a string into a NOMAD::hnorm_type.
-  /**
+     */
+    bool string_to_bb_output_type ( const std::string & s , NOMAD::bb_output_type & bbot );
+    
+    /// Convert a string into a NOMAD::hnorm_type.
+    /**
      \param  s  The string            -- \b IN.
      \param  hn The NOMAD::hnorm_type -- \b OUT.
      \return    A boolean equal to \c true if the conversion was possible.
-  */
-  bool string_to_hnorm_type ( const std::string & s , NOMAD::hnorm_type & hn );
-
-  /// Convert a string into a NOMAD::TGP_mode_type.
-  /**
-     \param  s The string               -- \b IN.
-     \param  m The NOMAD::TGP_mode_type -- \b OUT.
-     \return   A boolean equal to \c true if the conversion was possible.
-  */
-  bool string_to_TGP_mode_type ( const std::string & s , NOMAD::TGP_mode_type & m );
-
-  /// Convert a string into a multi_formulation_type.
-  /**
+     */
+    bool string_to_hnorm_type ( const std::string & s , NOMAD::hnorm_type & hn );
+        
+    /// Convert a string into a multi_formulation_type.
+    /**
      \param  s   The string                        -- \b IN.
      \param  mft The NOMAD::multi_formulation_type -- \b OUT.
      \return     A boolean equal to \c true if the conversion was possible.
-  */
-  bool string_to_multi_formulation_type ( const std::string             & s   ,
-					  NOMAD::multi_formulation_type & mft   );
-
-  /// Convert a string with format "i-j" into two integers i and j.
-  /**
+     */
+    bool string_to_multi_formulation_type ( const std::string             & s   ,
+                                           NOMAD::multi_formulation_type & mft   );
+    
+    /// Convert a string with format "i-j" into two integers i and j.
+    /**
      If s=="*" and if n is defined, then i=0 and j=*n-1.
-
+     
      \param  s The string              -- \b IN.
      \param  i The first integer \c i  -- \b OUT.
      \param  j The second integer \c j -- \b OUT.
      \param  n Number of variables; use \c NULL if unknown
-               -- \b IN -- \b optional (default = \c NULL).
+     -- \b IN -- \b optional (default = \c NULL).
      \param  check_order A boolean indicating if \c i and \c j are to be compared
-             -- \b IN -- \b optional (default = \c true).
+     -- \b IN -- \b optional (default = \c true).
      \return A boolean equal to \c true if the conversion was possible.
-  */
-  bool string_to_index_range ( const std::string & s                  ,
-			       int               & i                  ,
-			       int               & j                  ,
-			       int               * n           = NULL ,
-			       bool                check_order = true   );
-
-
-  /// Convert a string in {"QUADRATIC","TGP"} to a \c NOMAD::model_type.
-  /**
+     */
+    bool string_to_index_range ( const std::string & s                  ,
+                                int               & i                  ,
+                                int               & j                  ,
+                                int               * n           = NULL ,
+                                bool                check_order = true   );
+    
+    /// Convert a string in {"QUADRATIC"} to a \c NOMAD::model_type.
+    /**
      \param  s  The string            -- \b IN.
      \param  mt The NOMAD::model_type -- \b OUT.
      \return    A boolean equal to \c true if the conversion was possible.
-  */
-  bool string_to_model_type ( const std::string & s , NOMAD::model_type & mt );
+     */
+    bool string_to_model_type ( const std::string & s , NOMAD::model_type & mt );
+    
 
-  /// Convert a string in {"YES","NO","Y","N","0","1","TRUE","FALSE"} to a boolean.
-  /**
+    /// Convert a string in {"XMESH","SMESH"} to a \c NOMAD::mesh_type.
+    /**
+     \param  s  The string            -- \b IN.
+     \param  mt The NOMAD::mesh_type -- \b OUT.
+     \return    A boolean equal to \c true if the conversion was possible.
+     */
+    bool string_to_mesh_type ( const std::string & s , NOMAD::mesh_type & mt );
+    
+    
+    /// Convert a string in {"YES","NO","Y","N","0","1","TRUE","FALSE"} to a boolean.
+    /**
      \param s The string -- \b IN.
      \return  An integer equal to \c 0 for \c false, \c 1 for \c true,
-              and \c -1 if the conversion failed.
-  */
-  int string_to_bool ( const std::string & s );
-  
-  /// Interpret a list of strings as a direction type.
-  /**
+     and \c -1 if the conversion failed.
+     */
+    int string_to_bool ( const std::string & s );
+    
+    /// Interpret a list of strings as a direction type.
+    /**
      \param ls The list of strings -- \b IN.
      \param dt The NOMAD::direction_type -- \b OUT.
      \return   A boolean equal to \c true if the conversion was possible.
-  */
-  bool strings_to_direction_type ( const std::list<std::string> & ls ,
-				   NOMAD::direction_type        & dt   );
-
-  /// If a NOMAD::bb_output_type variable corresponds to a constraint.
-  /**
+     */
+    bool strings_to_direction_type ( const std::list<std::string> & ls ,
+                                    NOMAD::direction_type        & dt   );
+    
+    /// If a NOMAD::bb_output_type variable corresponds to a constraint.
+    /**
      \param bbot The NOMAD::bb_output_type -- \b IN.
      \return     A boolean equal to \c true if \c bbot corresponds to a constraint.
-  */
-  bool bbot_is_constraint ( NOMAD::bb_output_type bbot );
-
-  /// If a NOMAD::direction_type variable corresponds to a MADS direction.
-  /**
+     */
+    bool bbot_is_constraint ( NOMAD::bb_output_type bbot );
+    
+    /// If a NOMAD::direction_type variable corresponds to a MADS direction.
+    /**
      \param dt The NOMAD::direction_type -- \b IN.
      \return   A boolean equal to \c true if \c dt corresponds to a MADS direction.
-  */
-  bool dir_is_mads ( NOMAD::direction_type dt );
-
-  /// If a NOMAD::direction_type variable corresponds to a GPS direction.
-  /**
+     */
+    bool dir_is_mads ( NOMAD::direction_type dt );
+    
+    /// If a NOMAD::direction_type variable corresponds to a GPS direction.
+    /**
      \param dt The NOMAD::direction_type -- \b IN.
      \return   A boolean equal to \c true if \c dt corresponds to a GPS direction.
-  */
-  bool dir_is_gps ( NOMAD::direction_type dt );
-  
-  /// If a NOMAD::direction_type variable corresponds to a LT-MADS direction.
-  /**
+     */
+    bool dir_is_gps ( NOMAD::direction_type dt );
+    
+    /// If a NOMAD::direction_type variable corresponds to a LT-MADS direction.
+    /**
      \param dt The NOMAD::direction_type -- \b IN.
      \return   A boolean equal to \c true if \c dt corresponds to a LT-MADS direction.
-  */
-  bool dir_is_ltmads ( NOMAD::direction_type dt );
-
-  /// If a NOMAD::direction_type variable corresponds to a random direction.
-  /**
+     */
+    bool dir_is_ltmads ( NOMAD::direction_type dt );
+    
+    /// If a NOMAD::direction_type variable corresponds to a random direction.
+    /**
      \param dt The NOMAD::direction_type -- \b IN.
      \return   A boolean equal to \c true if \c dt corresponds to a random direction.
-  */
-  bool dir_is_random ( NOMAD::direction_type dt );
-
-
-  /// If a NOMAD::direction_type variable corresponds to a Ortho-MADS direction.
-  /**
+     */
+    bool dir_is_random ( NOMAD::direction_type dt );
+    
+    
+    /// If a NOMAD::direction_type variable corresponds to a Ortho-MADS direction.
+    /**
      \param dt The NOMAD::direction_type -- \b IN.
      \return   A boolean equal to \c true if \c dt corresponds to a Ortho-MADS direction.
-  */
-  bool dir_is_orthomads ( NOMAD::direction_type dt );
-
-	/// If a NOMAD::direction_type variable corresponds to a Ortho-MADS direction using XMesh.
-	/**
+     */
+    bool dir_is_orthomads ( NOMAD::direction_type dt );
+    
+    /// If a NOMAD::direction_type variable corresponds to a Ortho-MADS direction using XMesh.
+    /**
      \param dt The NOMAD::direction_type -- \b IN.
      \return   A boolean equal to \c true if \c dt corresponds to a Ortho-MADS direction using XMesh.
-	 */	
-	bool dir_is_orthomads_xmesh ( NOMAD::direction_type dt );	
-	
-  /// Check if a set of directions include Ortho-MADS direction.
-  /**
+     */
+    bool dir_is_orthomads_xmesh ( NOMAD::direction_type dt );
+    
+    /// Check if a set of directions include Ortho-MADS direction.
+    /**
      \param dir_types Set of direction types -- \b IN.
      \return A boolean equal to \c true if at
      least one direction in the set is
      of type Ortho-MADS.
-  */
-  bool dirs_have_orthomads ( const std::set<NOMAD::direction_type> & dir_types );
-
-	/// Check if a set of directions include Ortho-MADS direction using XMesh.
-	/**
+     */
+    bool dirs_have_orthomads ( const std::set<NOMAD::direction_type> & dir_types );
+    
+    /// Check if a set of directions include Ortho-MADS direction using XMesh.
+    /**
      \param dir_types Set of direction types -- \b IN.
      \return A boolean equal to \c true if at
      least one direction in the set is
      of type Ortho-MADS+XMesh.
-	 */
-	bool dirs_have_orthomads_xmesh ( const std::set<NOMAD::direction_type> & dir_types );	
-	
-	
-	/// Check if a set of direction types include Ortho-MADS N+1 direction.
-	/**
+     */
+    bool dirs_have_orthomads_xmesh ( const std::set<NOMAD::direction_type> & dir_types );
+    
+    
+    /// Check if a set of direction types include Ortho-MADS N+1 direction.
+    /**
      \param dir_types Set of direction types -- \b IN.
      \return A boolean equal to \c true if at
      least one direction in the set is
      of type Ortho-MADS N+1.
-	 */
-	bool dirs_have_orthomads_np1 ( const std::set<NOMAD::direction_type> & dir_types );	
-	
-	
-  /// Construct the n first prime numbers.
-  /**
+     */
+    bool dirs_have_orthomads_np1 ( const std::set<NOMAD::direction_type> & dir_types );
+    
+    
+    /// Construct the n first prime numbers.
+    /**
      \param n      The integer \c n-- \b IN.
      \param primes An integer array of size \c n for the prime numbers;
-                   must be previously allocated -- \b OUT.
-  */
-  void construct_primes ( int n , int * primes );
-  
-  /// Decompose a string (sentence) into a list of strings (words).
-  /**
+     must be previously allocated -- \b OUT.
+     */
+    void construct_primes ( int n , int * primes );
+    
+    /// Decompose a string (sentence) into a list of strings (words).
+    /**
      \param sentence The sentence -- \b IN.
      \param words    The words    -- \b OUT.
-  */
-  void get_words ( const std::string & sentence , std::list<std::string> & words );
-
-  /// Check if a file exists and is executable.
-  /**
+     */
+    void get_words ( const std::string & sentence , std::list<std::string> & words );
+    
+    /// Check if a file exists and is executable.
+    /**
      \param file_name A string corresponding to a file name -- \b IN.
      \return          A boolean equal to \c true if the file is executable.
-  */
-  bool check_exe_file  ( const std::string & file_name );
-
-  /// Check if a file exists and is readable.
-  /**
+     */
+    bool check_exe_file  ( const std::string & file_name );
+    
+    /// Check if a file exists and is readable.
+    /**
      \param file_name A string corresponding to a file name -- \b IN.
      \return          A boolean equal to \c true if the file exists and is readable.
-  */
-  bool check_read_file ( const std::string & file_name );
-
-  /// Get the process id (pid); useful for unique random seeds.
-  /**
+     */
+    bool check_read_file ( const std::string & file_name );
+    
+    /// Get the process id (pid); useful for unique random seeds.
+    /**
      \return An integer corresponding to the pid.
-  */
-  int get_pid ( void );
-
-  /// Called at the beginning of NOMAD.
-  /**
+     */
+    int get_pid ( void );
+    
+    /// Called at the beginning of NOMAD.
+    /**
      \param argc Number of command line arguments.
      \param argv Command line arguments.
-  */
-  void begin ( int argc , char ** argv );
-
-  /// Called at the end of NOMAD.
-  void end ( void );
-
-  
-  /// Transform an integer into a string.
-  /**
+     */
+    void begin ( int argc , char ** argv );
+    
+    /// Called at the end of NOMAD.
+    void end ( void );
+    
+    
+    /// Transform an integer into a string.
+    /**
      \param i The integer -- \b IN.
      \return  The string.
-  */
-  std::string itos ( int i );
-
+     */
+    std::string itos ( int i );
+    
     
     /// Transform a unsigned long (size_t) into a string.
     /**
@@ -292,63 +300,71 @@ namespace NOMAD {
      \return  The string.
      */
     std::string itos ( size_t i );
-
     
-  /// Put a string into upper cases.
-  /**
+    /// Remove leading, trailing and double spaces in a string.
+    /**
      \param s The string -- \b IN/OUT.
-  */
-  void toupper ( std::string & s );
-
-  /// Put a list of strings into upper cases.
-  /**
+     */
+    void deblank ( std::string & s );
+    
+    
+    
+    
+    /// Put a string into upper cases.
+    /**
+     \param s The string -- \b IN/OUT.
+     */
+    void toupper ( std::string & s );
+    
+    /// Put a list of strings into upper cases.
+    /**
      \param ls The list of strings -- \b IN/OUT.
-  */
-  void toupper  ( std::list<std::string> & ls );
-
-  /// Convert a string into an integer.
-  /**
+     */
+    void toupper  ( std::list<std::string> & ls );
+    
+    /// Convert a string into an integer.
+    /**
      \param s The string  -- \b IN.
      \param i The integer -- \b OUT.
      \return  A boolean equal to \c true if the conversion was possible.
-  */
-  bool atoi ( const std::string & s , int & i );
-
-  /// Convert a character into an integer.
-  /**
+     */
+    bool atoi ( const std::string & s , int & i );
+    
+    /// Convert a character into an integer.
+    /**
      \param c The character -- \b IN.
      \param i The integer   -- \b OUT.
      \return  A boolean equal to \c true if the conversion was possible.
-  */
-  bool atoi ( char c , int & i );
- 
-  /// Search a list of string inside a string.
-  /**
+     */
+    bool atoi ( char c , int & i );
+    
+    /// Search a list of string inside a string.
+    /**
      \param  s  The string          -- \b IN.
      \param  ls The list of strings -- \b IN.
      \return    A boolean equal to \c true if one of the string of ls is in s.
-  */
-  bool string_find ( const std::string & s , const std::list<std::string> & ls );
-
-  /// Search a string into another string.
-  /**
+     */
+    bool string_find ( const std::string & s , const std::list<std::string> & ls );
+    
+    /// Search a string into another string.
+    /**
      \param  s1 A string -- \b IN.
      \param  s2 A string -- \b IN.
      \return    A boolean equal to \c true if \c s2 is in \c s1.
-  */
-  bool string_find ( const std::string & s1 , const std::string & s2 );
-	
-	/// Search if a string matches an element in a list of string.
-	/**
+     */
+    bool string_find ( const std::string & s1 , const std::string & s2 );
+    
+    /// Search if a string matches an element in a list of string.
+    /**
      \param  s  A string -- \b IN.
      \param  ls A list of strings -- \b IN.
      \return    A boolean equal to \c true if \c s matches an element in \c ls.
-	 */
-	bool string_match ( const std::string & s , const std::list<std::string> & ls );
-	
-
-  /// SVD decomposition.
-  /**
+     */
+    bool string_match ( const std::string & s , const std::list<std::string> & ls );
+    
+    
+    /// SVD decomposition.
+    /**
      - The \c mxn \c M matrix is decomposed into \c M=U.W.V'.
      \param error_msg Error message when the function returns \c false    -- \b OUT.
      \param M         The input \c mxn matrix; Will be replaced by \c U   -- \b IN/OUT.
@@ -357,31 +373,30 @@ namespace NOMAD {
      \param m         Number of rows in M                                 -- \b IN.
      \param n         Number of columns in M                              -- \b IN.
      \param max_mpn   Maximum allowed value for \c m+n; ignored if \c <=0 -- \b IN
-                      -- \b optional (default = \c 1500).
+     -- \b optional (default = \c 1500).
      \return A boolean equal to \c true if the decomposition worked.
-  */
-  bool SVD_decomposition ( std::string & error_msg      ,
-			   double     ** M              ,
-			   double      * W              ,
-			   double     ** V              ,
-			   int           m              ,
-			   int           n              ,
-			   int           max_mpn = 1500   );
-	
-	
-	// Get rank of a matrix  using SVD decomposition
-	/**
+     */
+    bool SVD_decomposition ( std::string & error_msg      ,
+                            double     ** M              ,
+                            double      * W              ,
+                            double     ** V              ,
+                            int           m              ,
+                            int           n              ,
+                            int           max_mpn = 1500   );
+    
+    
+    // Get rank of a matrix  using SVD decomposition
+    /**
      - The \c mxn \c M matrix is decomposed into \c M=U.W.V'. The rank equals the size of W
-     \param M         The input \c mxn matrix								-- \b IN.
+     \param M         The input \c mxn matrix                             -- \b IN.
      \param m         Number of rows in M                                 -- \b IN.
      \param n         Number of columns in M                              -- \b IN.
      \return The rank>0 if the decomposition worked else 0.
-	 */	
-	int get_rank(double **M,
-				 size_t m,
-				 size_t n);
-	
-	
+     */
+    int get_rank(double **M,
+                 size_t m,
+                 size_t n);
+    
 }
 
 #endif
diff --git a/tools/COOP-MADS/makefile b/tools/COOP-MADS/makefile
index 56ef9d2..0c3c6f0 100644
--- a/tools/COOP-MADS/makefile
+++ b/tools/COOP-MADS/makefile
@@ -1,17 +1,24 @@
-EXE                 = coopmads.exe
-COMPILATOR = mpic++
-SUNAME = $(shell uname)
-OSS=$(findstring MINGW32,$(SUNAME)) 
-ifneq "$(strip $(OSS))" ""
-COMPILATOR = g++
+UNAME := $(shell uname)
+
+EXE                    = coopmads.exe
+
+COMPILATOR             = mpic++
+COMPILATOR_OPTIONS     = -ansi -O2
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               = -DUSE_MPI         
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
 endif
 
-COMPILATOR_OPTIONS  = -ansi -O2
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lm -lmpi
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = main.o Cache_Server.o
+LDLIBS                 = -lm -lnomad -lmpi
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+OBJS                   = main.o Cache_Server.o
 
 ifndef NOMAD_HOME
 define ECHO_NOMAD
@@ -20,20 +27,21 @@ define ECHO_NOMAD
 endef
 endif
 
-$(EXE): $(OBJS) $(L1)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
+	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR)
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
 main.o: main.cpp 
+	$(ECHO_NOMAD)
 	$(COMPILE) main.cpp
 
 Cache_Server.o: Cache_Server.cpp Cache_Server.hpp 
 	$(ECHO_NOMAD)
 	$(COMPILE) Cache_Server.cpp
-	
-$(L1): ;
-	$(ECHO_NOMAD)	
-
+		
 clean:
 	@echo "cleaning obj files"
 	@rm -f $(OBJS)
@@ -44,4 +52,4 @@ del:
 	@echo "cleaning obj files"
 	@rm -f $(OBJS)
 	@echo "cleaning exe file"
-	@rm -f $(EXE)
+	@rm -f $(EXE)
\ No newline at end of file
diff --git a/tools/COOP-MADS/problems/G2_10/runExample.log b/tools/COOP-MADS/problems/G2_10/runExample.log
index 133b63d..b591c85 100644
--- a/tools/COOP-MADS/problems/G2_10/runExample.log
+++ b/tools/COOP-MADS/problems/G2_10/runExample.log
@@ -2,22 +2,19 @@
 TIME	BBE	OBJ
 
 0	1	-0.001746040966254643
-0	2	-0.08743509125381764
-0	3	-0.09502614738887308
-0	12	-0.1241414508378795
-0	13	-0.1243880456661476
-0	14	-0.1282392319163835
-0	17	-0.1473005317907833
-0	35	-0.150183285112481
-0	46	-0.1572895785336448
-0	65	-0.194312112152985
-1	99	-0.215523726538665
-2	100	-0.215523726538665
+0	2	-0.08528561640409191
+0	4	-0.1217773504383107
+0	5	-0.1279124163911427
+0	9	-0.1683898819115072
+0	15	-0.1736961324904976
+0	25	-0.1977471952080628
+0	33	-0.2013413195042891
+0	34	-0.2200888366995143
+0	39	-0.256670797710581
+1	101	-0.256670797710581
 
-evaluations           : 100
+evaluations           : 101
 multiple evaluations  : 0
-cache hits            : 1374
-cache search points   : 26
-best feasible solution: x=( 9 8 6 3 6 3.5 3 3 5 3 ) F(x)=[ -3674159.25 -25.5 -0.215523726538665 ] h=0 f=-0.215523726538665
-best infeas. sol. #1  : x=( 6 10 8.5 8.5 7.5 0 5.5 0.5 6.5 3.5 ) F(x)=[ 0.75 -18.5 -0.1232423970453351 ] h=0.75 f=-0.1232423970453351
-best infeas. sol. #2  : x=( 5.5 9 9.5 2.5 6.5 1 0 2 5.5 5 ) F(x)=[ 0.75 -28.5 -0.1303069434264795 ] h=0.75 f=-0.1303069434264795
+cache hits            : 1449
+cache search points   : 18
+best feasible solution: x=( 1 7 3 3 3 7 3 3 3 3 ) F(x)=[ -107162.25 -39 -0.256670797710581 ] h=0 f=-0.256670797710581
diff --git a/tools/COOP-MADS/problems/RHEOLOGY/runExample.log b/tools/COOP-MADS/problems/RHEOLOGY/runExample.log
index 3342d27..5b83178 100644
--- a/tools/COOP-MADS/problems/RHEOLOGY/runExample.log
+++ b/tools/COOP-MADS/problems/RHEOLOGY/runExample.log
@@ -2,121 +2,122 @@
 TIME	BBE	OBJ
 
 0	1	409.067422156616
-0	2	407.173143113625
-0	7	326.103515990633
-0	42	325.623426986692
-0	59	295.895440816156
-0	72	293.4555631559
-0	90	279.968263515696
-0	139	275.288266367226
-0	187	275.132352128014
-0	209	275.075795191333
-0	210	274.976333696773
-0	241	274.933105934363
-0	250	274.790628310616
-0	270	274.36972472876
-0	289	274.275563955637
-0	326	274.268484588901
-0	338	274.064933108817
-1	386	274.062269914507
-1	387	274.054281384837
-1	391	274.049026282641
-1	401	273.920837770762
-1	404	273.508720307709
-1	424	273.331822600277
-1	428	273.234004939865
-1	445	272.832477208338
-1	467	272.636358518916
-1	485	272.016936191517
-1	522	271.675223302068
-1	528	271.458245294985
-1	563	271.409843575617
-1	566	271.294040864725
-1	575	271.203751307945
-1	580	270.867285707472
-1	582	270.135910598837
-1	584	268.624704712738
-1	586	264.655640417888
-1	626	264.547329099114
-1	629	264.369411744322
-1	636	259.186132611454
-1	670	259.111109366001
-1	694	258.526885252145
-1	737	258.461782617644
-1	741	258.254128487816
-2	743	257.637827815885
-2	751	257.487467885692
-2	763	256.062079426438
-2	784	255.55667512634
-2	822	255.301356122905
-2	827	255.062123107245
-2	852	254.969793840294
-2	872	254.961280633716
-2	874	254.872629390701
-2	892	254.11730737943
-2	901	252.429482703112
-2	913	247.734161777393
-2	943	246.281383367226
-2	950	244.871940734504
-2	955	243.687522298512
-2	968	240.313783391124
-2	994	225.924186834258
-2	1027	225.375287811551
-2	1030	223.59959141347
-2	1033	214.372939666438
-2	1075	212.392129645385
-2	1079	202.458511181126
-3	1118	201.385729843192
-3	1121	200.414479846749
-3	1122	197.265532908615
-3	1130	196.484237748458
-3	1143	195.363761230687
-3	1150	194.180926892312
-3	1164	186.886694594438
-3	1229	186.775564288857
-3	1235	185.543088875516
-3	1247	184.315879020582
-3	1250	183.591281538454
-3	1251	180.585581615803
-3	1252	176.910717859633
-3	1256	151.835774047001
-3	1288	151.049164181499
-3	1289	143.621877654316
-3	1298	138.52428369358
-3	1300	130.977242901418
-3	1304	100.267474292617
-3	1325	99.71006688112919
-3	1363	94.56656135601661
-3	1379	79.3308117287512
-3	1411	62.8192798819504
-4	1413	57.1236275580665
-4	1433	45.5493739549428
-4	1482	44.5241434513005
-4	1485	42.8758586335358
-4	1494	40.173767108364
-4	1520	35.9160626502317
-4	1541	35.4706065363053
-4	1625	35.3985432229957
-4	1626	34.7705213812039
-4	1648	33.7365638550162
-4	1654	33.2736870837588
-4	1721	33.1821599854517
-4	1756	33.1640101150454
-4	1759	33.1094860838809
-5	1772	33.0242678796706
-5	1817	32.9941537610489
-5	1827	32.993685905707
-5	1860	32.9805924282463
-5	1912	32.9797736631138
-5	1936	32.979572485373
-5	1941	32.9794989828924
-5	1943	32.978674947399
-5	1980	32.9781395291375
-5	1983	32.9779413611568
-5	2001	32.9779413611568
+0	5	322.714672991286
+0	11	265.453635576699
+0	59	253.700379372787
+0	86	253.508031417864
+0	118	253.201633640789
+0	135	252.358093402554
+0	160	251.197472707471
+1	182	251.197301214826
+1	190	251.07713195817
+1	207	250.997447369686
+1	234	250.863129878857
+1	239	250.348565958289
+1	259	250.085055415213
+1	263	249.552570436516
+1	265	248.815865880956
+1	301	247.44992060398
+1	331	247.112498030273
+1	334	246.811892550734
+1	370	246.500086500941
+1	387	246.419187625588
+1	391	245.966804212317
+1	401	245.796743257507
+1	425	245.525068769592
+1	475	245.218533633366
+1	486	244.90846223392
+1	493	244.849644072153
+1	546	244.676306494478
+2	565	244.582999118234
+2	586	244.575839696815
+2	594	244.378107909394
+2	595	243.796461173388
+2	598	241.642674855193
+2	619	240.954865563714
+2	620	239.095740614928
+2	630	239.042233330649
+2	663	238.392177294901
+2	687	237.14673675086
+2	698	236.447365897648
+2	720	236.114659332555
+2	739	235.691225738535
+2	761	234.102484883206
+2	764	229.340323724089
+2	767	216.522605525348
+2	771	196.963059945103
+2	787	196.847112442146
+2	788	196.509148264238
+2	859	196.472844306831
+2	860	195.917100202077
+2	877	195.52911433773
+2	894	195.32691063284
+2	909	194.6659700126
+3	954	193.250827222827
+3	956	192.675360163547
+3	960	191.754551114895
+3	963	187.293158675319
+3	965	173.11436821721
+3	992	168.278990026847
+3	996	168.241191748863
+3	997	164.093855182351
+3	1027	154.594844826658
+3	1046	146.464758975961
+3	1048	145.102201089468
+3	1062	109.906215853184
+3	1069	106.774234762506
+3	1074	95.0780580563132
+3	1108	69.93773412990249
+3	1134	67.7573780014974
+3	1157	61.2885209600909
+3	1200	60.431575681709
+3	1204	60.4294769846275
+3	1206	58.3738847038617
+3	1222	56.6121681907407
+3	1237	55.9551830235949
+3	1252	48.9988231468474
+4	1292	45.6702759695433
+4	1343	43.8079499580428
+4	1352	42.9716585947603
+4	1360	42.0929043227586
+4	1376	39.949447504498
+4	1399	39.4932283554129
+4	1402	39.2287376352352
+4	1427	38.9784559612383
+4	1450	38.2078899027391
+4	1462	36.2656269613614
+4	1464	35.580177483812
+4	1498	33.7818737227238
+4	1535	33.4939643479363
+4	1543	33.0918450456313
+4	1606	33.0590338343981
+4	1609	33.0200589300374
+4	1638	33.0156952097848
+4	1641	33.0026037040469
+5	1655	32.9969719389035
+5	1686	32.9957520259869
+5	1750	32.9878641371004
+5	1783	32.9850410001756
+5	1838	32.9838371886284
+5	1865	32.9837327800898
+5	1870	32.9825522627429
+5	1873	32.9806229180508
+5	1875	32.9758135809074
+5	1878	32.9685718485421
+5	1889	32.9678022774788
+5	1893	32.9662494690148
+5	1894	32.965099452368
+5	1896	32.9646828629751
+5	1898	32.9561254938631
+5	1953	32.9557769687585
+5	1956	32.9547315431167
+5	1957	32.953487367693
+6	1985	32.9499524280818
+6	2000	32.9469957498619
+6	2001	32.9469957498619
 
 evaluations           : 2001
 multiple evaluations  : 0
-cache hits            : 258
-cache search points   : 221
-best feasible solution: x=( 5.167878504178415 3.051154465074881 9.460783454109679 ) F(x)=[ 32.9779413611568 ] h=0 f=32.9779413611568
+cache hits            : 436
+cache search points   : 220
+best feasible solution: x=( 5.168634764722022 3.052322762740134 9.462490982212969 ) F(x)=[ 32.9469957498619 ] h=0 f=32.9469957498619
diff --git a/tools/COOP-MADS/readme.txt b/tools/COOP-MADS/readme.txt
index 44a9a0e..f28b904 100644
--- a/tools/COOP-MADS/readme.txt
+++ b/tools/COOP-MADS/readme.txt
@@ -1,3 +1,5 @@
+Procedure for Unix/Linux/mac OSX
+
 1- Set the NOMAD_HOME environment variable
 2- Compile with the command make
 3- Go to one of the problem directory
diff --git a/tools/PSD-MADS/makefile b/tools/PSD-MADS/makefile
index ffc34f7..ab23da4 100644
--- a/tools/PSD-MADS/makefile
+++ b/tools/PSD-MADS/makefile
@@ -1,17 +1,25 @@
-EXE                 = psdmads.exe
-COMPILATOR = mpic++
-SUNAME = $(shell uname)
-OSS=$(findstring MINGW32,$(SUNAME)) 
-ifneq "$(strip $(OSS))" ""
-COMPILATOR = g++
+UNAME := $(shell uname)
+
+EXE                    = psdmads.exe
+COMPILATOR             = mpic++
+
+COMPILATOR_OPTIONS     = -ansi -O2
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
 endif
 
-COMPILATOR_OPTIONS  = -ansi -O2
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lm -lmpi
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = main.o Cache_Server.o Master_Slaves.o
+
+LDLIBS                 = -lm -lnomad -lmpi
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+OBJS                   = main.o Cache_Server.o Master_Slaves.o
 
 ifndef NOMAD_HOME
 define ECHO_NOMAD
@@ -20,11 +28,15 @@ define ECHO_NOMAD
 endef
 endif
 
-$(EXE): $(OBJS) $(L1)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
+	$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
 main.o: main.cpp Master_Slaves.o
+	$(ECHO_NOMAD)
 	$(COMPILE) main.cpp
 
 Master_Slaves.o: Master_Slaves.cpp Master_Slaves.hpp Cache_Server.o
@@ -35,9 +47,6 @@ Cache_Server.o: Cache_Server.cpp Cache_Server.hpp
 	$(ECHO_NOMAD)
 	$(COMPILE) Cache_Server.cpp
 	
-$(L1): ;
-	$(ECHO_NOMAD)	
-
 clean:
 	@echo "cleaning obj files"
 	@rm -f $(OBJS)
@@ -48,4 +57,4 @@ del:
 	@echo "cleaning obj files"
 	@rm -f $(OBJS)
 	@echo "cleaning exe file"
-	@rm -f $(EXE)
\ No newline at end of file
+	@rm -f $(EXE)
diff --git a/tools/PSD-MADS/problems/G2_10/runExample.log b/tools/PSD-MADS/problems/G2_10/runExample.log
index 77b68db..2065ff7 100644
--- a/tools/PSD-MADS/problems/G2_10/runExample.log
+++ b/tools/PSD-MADS/problems/G2_10/runExample.log
@@ -1,34 +1,44 @@
-
+  
+mpirun -np 4 ../../psdmads.exe param.txt 20 3 > runExample.log
+ 
 TIME	BBE	OBJ
 
 0	1	-0.001746040966254643
 0	2	-0.1020265638285207
 0	6	-0.1441632798005752
-0	15	-0.1542510749518172
-0	22	-0.1577316768630335
-0	37	-0.183989373943974
-0	38	-0.2020008666180557
-0	39	-0.2129271506181529
-0	40	-0.2361644054928127
-1	75	-0.2374148796747058
-1	94	-0.2603035160235741
-1	116	-0.2684048733308141
-2	174	-0.2821001936977113
-3	212	-0.2866228068210581
-4	298	-0.2898075435824587
-4	322	-0.316703796586124
-5	350	-0.338651875099582
-6	412	-0.3480692693344858
-7	506	-0.4056438193796689
-8	550	-0.4404750660164174
-9	598	-0.4453605848005951
-11	758	-0.4502266934808508
-12	780	-0.4606308402126712
-12	794	-0.4678396551609023
-12	804	-0.4864410201396533
-13	836	-0.5028952047514585
-15	961	-0.513267791679749
-29	1001	-0.513267791679749
-evaluations: 1001
-cache hits : 14460
-best feasible solution: x=( 3.125 3.125 3.25 1.5 2.375 0.25 2.625 0.125 0.5 0.875 ) F(x)=[ -3.307846963405609 -57.25 -0.513267791679749 ] h=0 f=-0.513267791679749
+0	19	-0.1479342881281465
+0	25	-0.1841215568617915
+0	28	-0.1849197713114521
+0	38	-0.1916931712633913
+0	40	-0.2227632234775169
+0	87	-0.2412462955044069
+1	95	-0.2527350956716981
+1	114	-0.2704851250098481
+1	128	-0.2717551757304079
+1	153	-0.2878109208445224
+1	157	-0.3235573809157189
+1	168	-0.3308416194351365
+2	209	-0.3537076003988114
+2	216	-0.3785183934692382
+2	226	-0.3932656382622645
+2	235	-0.397226624873137
+2	269	-0.4026098831965045
+2	279	-0.402851775010626
+2	302	-0.4131889647727121
+3	315	-0.4304862626819641
+3	318	-0.4558590836833153
+3	336	-0.4848732170447992
+4	497	-0.4924809666931201
+4	525	-0.5119819323392423
+5	553	-0.5173948676971726
+5	618	-0.6229712809770065
+5	626	-0.6535294804372643
+6	711	-0.6729611996573323
+6	717	-0.6878450704721685
+6	722	-0.693572111946147
+7	838	-0.7163568681615147
+8	902	-0.7202155341278618
+23	1000	-0.7202155341278618
+evaluations: 1000
+cache hits : 7323
+best feasible solution: x=( 3.078125 3.109375 2.9765625 2.9296875 0.71875 0.453125 0.3359375 0.375 0.3828125 0.578125 ) F(x)=[ -0.007860294779722617 -60.0625 -0.7202155341278618 ] h=0 f=-0.7202155341278618
diff --git a/tools/PSD-MADS/readme.txt b/tools/PSD-MADS/readme.txt
index 62a9c97..fc125f1 100644
--- a/tools/PSD-MADS/readme.txt
+++ b/tools/PSD-MADS/readme.txt
@@ -1,3 +1,5 @@
+Procedure for Unix/Linux/mac OSX
+
 1- Set the NOMAD_HOME environment variable
 2- Compile with the command make
 3- Go to one of the problem directory
diff --git a/tools/PSD-MADS_library_mode/makefile b/tools/PSD-MADS_library_mode/makefile
index ffc34f7..29093ff 100644
--- a/tools/PSD-MADS_library_mode/makefile
+++ b/tools/PSD-MADS_library_mode/makefile
@@ -1,17 +1,24 @@
-EXE                 = psdmads.exe
-COMPILATOR = mpic++
-SUNAME = $(shell uname)
-OSS=$(findstring MINGW32,$(SUNAME)) 
-ifneq "$(strip $(OSS))" ""
-COMPILATOR = g++
+UNAME := $(shell uname)
+
+EXE                    = psdmads.exe
+
+COMPILATOR             = mpic++
+COMPILATOR_OPTIONS     = -ansi -O2
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               = 
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
 endif
 
-COMPILATOR_OPTIONS  = -ansi -O2
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lm -lmpi
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = main.o Cache_Server.o Master_Slaves.o
+LDLIBS                 = -lm -lnomad
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+OBJS                   = main.o Cache_Server.o Master_Slaves.o
 
 ifndef NOMAD_HOME
 define ECHO_NOMAD
@@ -20,11 +27,15 @@ define ECHO_NOMAD
 endef
 endif
 
-$(EXE): $(OBJS) $(L1)
+$(EXE): $(OBJS) 
 	$(ECHO_NOMAD)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
+	$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
 main.o: main.cpp Master_Slaves.o
+	$(ECHO_NOMAD)
 	$(COMPILE) main.cpp
 
 Master_Slaves.o: Master_Slaves.cpp Master_Slaves.hpp Cache_Server.o
@@ -34,9 +45,6 @@ Master_Slaves.o: Master_Slaves.cpp Master_Slaves.hpp Cache_Server.o
 Cache_Server.o: Cache_Server.cpp Cache_Server.hpp 
 	$(ECHO_NOMAD)
 	$(COMPILE) Cache_Server.cpp
-	
-$(L1): ;
-	$(ECHO_NOMAD)	
 
 clean:
 	@echo "cleaning obj files"
diff --git a/tools/SENSITIVITY/cache_inspect/makefile b/tools/SENSITIVITY/cache_inspect/makefile
index 70e3082..87af147 100644
--- a/tools/SENSITIVITY/cache_inspect/makefile
+++ b/tools/SENSITIVITY/cache_inspect/makefile
@@ -1,28 +1,35 @@
-EXE                 = cache_inspect
-COMPILATOR          = g++
-COMPILATOR_OPTIONS  = -ansi -Wall -O2
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lc -lm
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = cache_inspect.o
+UNAME := $(shell uname)
+
+EXE                    = cache_inspect.exe
+COMPILATOR             = g++
+COMPILATOR_OPTIONS     = -ansi -Wall -O2
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+
+LDLIBS                 = -lm -lnomad
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+OBJS                   = cache_inspect.o
 
 $(EXE): $(OBJS)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
+	$(ECHO_NOMAD)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
-cache_inspect.o: cache_inspect.cpp $(L1)
-	$(COMPILE) cache_inspect.cpp
 
-mpi: COMPILATOR          = mpic++
-mpi: EXE                 = cache_inspect_MPI
-mpi: L1                  = $(NOMAD_HOME)/lib/nomad.MPI.a
-mpi: LIBS                = $(L1) -lc -lm
-mpi: COMPILATOR_OPTIONS += -DUSE_MPI
-mpi: clean $(OBJS)
-	@echo "   building the MPI version ..."
-	@echo "   exe file : "$(EXE)
-	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip  $(EXE)
+cache_inspect.o: cache_inspect.cpp
+	$(ECHO_NOMAD)
+	$(COMPILE) cache_inspect.cpp
 
 clean:
 	@echo "   cleaning obj files"
diff --git a/tools/SENSITIVITY/detailed_analysis/makefile b/tools/SENSITIVITY/detailed_analysis/makefile
index b067cc7..a9115ac 100644
--- a/tools/SENSITIVITY/detailed_analysis/makefile
+++ b/tools/SENSITIVITY/detailed_analysis/makefile
@@ -1,28 +1,38 @@
-EXE                 = detailed_analysis.exe
-COMPILATOR          = g++
-COMPILATOR_OPTIONS  = -ansi -Wall -O2
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lc -lm
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = detailed_analysis.o
+UNAME := $(shell uname)
+
+EXE                    = detailed_analysis.exe
+
+COMPILATOR             = g++
+COMPILATOR_OPTIONS     = -ansi -Wall -O2
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+
+LDLIBS                 = -lm -lnomad
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+
+OBJS                   = detailed_analysis.o
 
 $(EXE): $(OBJS)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
+	$(ECHO_NOMAD)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
 
-detailed_analysis.o: detailed_analysis.cpp $(L1)
-	$(COMPILE) detailed_analysis.cpp
 
-mpi: COMPILATOR          = mpic++
-mpi: EXE                 = detailed_analysis_MPI.exe
-mpi: L1                  = $(NOMAD_HOME)/lib/nomad.MPI.a
-mpi: LIBS                = $(L1) -lc -lm
-mpi: COMPILATOR_OPTIONS += -DUSE_MPI
-mpi: clean $(OBJS)
-	@echo "   building the MPI version ..."
-	@echo "   exe file : "$(EXE)
-	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip  $(EXE)
+detailed_analysis.o: detailed_analysis.cpp
+	$(ECHO_NOMAD)
+	$(COMPILE) detailed_analysis.cpp
 
 clean:
 	@echo "   cleaning obj files"
diff --git a/utils/DisplayCacheFile/Readme.txt b/utils/DisplayCacheFile/Readme.txt
new file mode 100644
index 0000000..ad6122c
--- /dev/null
+++ b/utils/DisplayCacheFile/Readme.txt
@@ -0,0 +1,20 @@
+A cache file from a different run of the same problem can be reused in a later optimization or to continue an optimization.
+The code can  display a binary cache file whose name is provided as first argument.
+
+Please note that binary cache files must be from the same OS. The provided cache.bin file has been created under OSX.
+
+1- Using the OS (linux and OSX) command line 
+
+- On the command line execute the make command
+
+- Execute  ./displayCache.exe cache.bin 
+
+2- Using Matlab environment
+
+- If not already done, setup the mex Matlab External Interface with the command mex -setup at the command prompt. Please refer to Matlab documentation for details.
+
+- Change the Current Folder to %NOMAD_HOME%/utils/DisplayCacheFile
+
+- Run the command build.m
+
+- Run the command displayM(‘cache.bin’)
diff --git a/utils/DisplayCacheFile/build.m b/utils/DisplayCacheFile/build.m
new file mode 100644
index 0000000..a23f282
--- /dev/null
+++ b/utils/DisplayCacheFile/build.m
@@ -0,0 +1,87 @@
+%% GERAD NOMAD Build for Matlab
+
+% This file will help you compile NOMAD for use with MATLAB.
+
+% To recompile you will need to get / do the following:
+
+% 1) Get NOMAD
+% NOMAD is available from https://www.gerad.ca/nomad
+% Complete the download form then download the latest version. Define the
+% $NOMAD_HOME environment variable.
+
+% 2) Start Matlab and go into $NOMAD_HOME/examples/interfaces/Matlab_Mex
+% The NOMAD MEX Interface is a simple MEX interface written to use NOMAD.
+
+% 3) Compile the MEX File
+% The code below will build the NOMAD MEX file and set the Matlab path.
+
+clear nomad
+
+% Default library names
+nameLibNomad = 'libnomad.so';
+
+% Default update LDFLAGS
+updateLDFLAGS= '';
+
+% Current directory
+cdir = cd;
+
+% Check and set nomad_home and create variables for path
+clear nomad_home nomad_src;
+nomad_home = getenv('NOMAD_HOME');
+
+
+if ( length(nomad_home)<1 )
+% Get a default directory for NOMAD_HOME
+cd ..
+cd ..
+nomad_home = cd;
+
+if ( ~ exist(nomad_home,'dir') )
+error('The default NOMAD_HOME directory does not exist. Please provide a correct value for the NOMAD_HOME variables with the command setenv(''NOMAD_HOME'',ARG1)');
+end
+
+setenv('NOMAD_HOME',nomad_home);
+warning('The NOMAD_HOME variable is set with its default value %s. The default can be replaced by using the command setenv(''NOMAD_HOME'',ARG1)! before runner the GERAD_NOMAD_build command.',nomad_home);
+cd(cdir);
+end
+nomad_src=[nomad_home filesep 'src' filesep];
+nomad_lib=[nomad_home filesep 'lib' filesep];
+nomad_bin=[nomad_home filesep 'bin' filesep];
+
+switch(computer)
+case 'PCWIN'
+libdir = ' -Lwin32\';
+nameLibNomad = 'nomad.dll';
+case 'PCWIN64'
+libdir = ' -Lwin64\';
+nameLibNomad = 'nomad.dll';
+case 'GLNX86'
+libdir = 'glnx86/';
+updateLDFLAGS = 'LDFLAGS=''$LDFLAGS -Wl,-rpath,''''$ORIGIN/../lib/'''' '' ';
+case 'GLNXA64'
+libdir = 'glnxa64/';
+updateLDFLAGS = 'LDFLAGS=''$LDFLAGS -Wl,-rpath,''''$ORIGIN/../lib/'''' '' ';
+case 'MACI64'
+libdir = 'maci64/';
+end
+
+%Get NOMAD Libraries
+post = [' -I.  -I' nomad_src ' -lm -lut -lnomad -L ' nomad_lib ' -output displayCacheM'];
+
+%Compile & Move
+pre = ['mex -v -largeArrayDims ' updateLDFLAGS ' displayCacheM.cpp ' ];
+
+try
+    eval([pre post])
+    if ( strcmp(computer,'MACI64') )
+        install_cmd = ['install_name_tool -change libnomad.so ' nomad_lib 'libnomad.so displayCacheM.mexmaci64' ]; 
+        system(install_cmd);
+    end
+    clear nomad_home nomad_src cdir post pre libdir;
+    fprintf('Done!\n');
+catch ME
+	clear nomad_home nomad_src cdir post pre libdir;
+    error('opti:nomad','Error Compiling NOMAD!\n%s',ME.message);
+end
+fprintf('------------------------------------------------\n');
diff --git a/utils/DisplayCacheFile/cache1.bin b/utils/DisplayCacheFile/cache1.bin
new file mode 100644
index 0000000000000000000000000000000000000000..d2bc763560c37723713a363869fd2c1189d04184
GIT binary patch
literal 17715
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
D8LrLM

literal 0
HcmV?d00001

diff --git a/utils/DisplayCacheFile/displayCache.cpp b/utils/DisplayCacheFile/displayCache.cpp
new file mode 100644
index 0000000..ccc6010
--- /dev/null
+++ b/utils/DisplayCacheFile/displayCache.cpp
@@ -0,0 +1,66 @@
+/*-----------------------------------------------------*/
+/*  how to use the NOMAD library with a user function  */
+/*-----------------------------------------------------*/
+#include "nomad.hpp"
+using namespace std;
+// using namespace NOMAD; avoids putting NOMAD:: everywhere
+
+
+/*------------------------------------------*/
+/*            NOMAD main function           */
+/*------------------------------------------*/
+int main ( int argc , char ** argv )
+{
+    
+    // display:
+    NOMAD::Display out ( std::cout );
+    out.precision ( NOMAD::DISPLAY_PRECISION_STD );
+    
+    try
+    {
+        
+        // NOMAD initializations:
+        NOMAD::begin ( argc , argv );
+        
+        if ( argc != 2 )
+        {
+            out << "\n Provide a cache file name on the commande line" <<endl;
+            return EXIT_FAILURE;
+        }
+        
+        // parameters file:
+        std::string cache_file_name = argv[1];
+        
+        NOMAD::Display out ( std::cout );
+        out.precision ( NOMAD::DISPLAY_PRECISION_STD );
+        
+        // parameters creation:
+        NOMAD::Cache cache1 ( out );
+        
+        cache1.load(cache_file_name);
+        
+        const NOMAD::Eval_Point * cur = cache1.begin();
+        int  nb = cache1.size();
+        int cnt = 0;
+        while ( cur )
+        {
+            out << "point ";
+            out.display_int_w ( ++cnt , nb );
+            out << "/" << nb << ": ";
+            cur->display_eval ( out , false );
+            out << " obj=" << cur->get_f() << std::endl;
+            
+            cur = cache1.next();
+        }
+        out.close_block();
+        
+        
+    }
+    catch ( exception & e )
+    {
+        cerr << "\n Cache display triggered an exception (" << e.what() << ")\n\n";
+    }
+    
+        
+     return EXIT_SUCCESS;
+}
diff --git a/utils/DisplayCacheFile/displayCacheM.cpp b/utils/DisplayCacheFile/displayCacheM.cpp
new file mode 100644
index 0000000..a431e77
--- /dev/null
+++ b/utils/DisplayCacheFile/displayCacheM.cpp
@@ -0,0 +1,89 @@
+/*-----------------------------------------------------*/
+/*  Merge cache files from NOMAD                       */
+/*-----------------------------------------------------*/
+#include "mex.h"
+#include "nomad.hpp"
+
+using namespace std;
+// using namespace NOMAD; avoids putting NOMAD:: everywhere
+
+
+struct printfbuf : std::streambuf {
+public:
+     //Constructor
+	 printfbuf() 
+	 { 
+		 setp(m_buffer, m_buffer + s_size - 2); 
+	 }	 
+private:
+    enum { s_size = 1024 }; //not sure on this size
+	char m_buffer[s_size];
+	int_type overflow(int_type c) 
+	{
+		if (!traits_type::eq_int_type(c, traits_type::eof())) {
+			*pptr() = traits_type::to_char_type(c);
+			pbump(1);
+		}
+		return sync() != -1 ? traits_type::not_eof(c) : traits_type::eof();
+	}
+
+	int sync() {
+		*pptr() = 0;
+		mexPrintf(pbase());
+        mexEvalString("drawnow;");
+		setp(m_buffer, m_buffer + s_size - 2);
+		return 0;
+	} 
+ };
+
+// Main Entry Function
+// -----------------------------------------------------------------
+void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
+{
+    // display:
+
+    
+    try
+    {
+        
+        if( nrhs != 1 || !mxIsChar(prhs[0]) )
+            mexErrMsgTxt("You must supply the name of a cache file for display \n");
+        
+        
+        char *cache_file_name_1 = NULL;
+        cache_file_name_1 = mxArrayToString(prhs[0]);
+        
+        printfbuf buf;
+        std::streambuf *cout_sbuf = std::cout.rdbuf(); //keep existing buffer
+        std::cout.rdbuf(&buf); //redirect buffer
+        
+        NOMAD::Display out ( std::cout );
+        out.precision ( NOMAD::DISPLAY_PRECISION_STD );
+        
+        // parameters creation:
+        NOMAD::Cache cache1 ( out );
+       
+        cache1.load(cache_file_name_1);
+        
+        const NOMAD::Eval_Point * cur = cache1.begin();
+        int  nb = cache1.size();
+        int cnt = 0;
+        while ( cur )
+        {
+            out << "point ";
+            out.display_int_w ( ++cnt , nb );
+            out << "/" << nb << ": ";
+            cur->display_eval ( out , false );
+            out << std::endl;
+            cur = cache1.next();
+        }
+        out.close_block();
+
+        
+    }
+    catch ( exception & e )
+    {
+        cerr << "\n Cache display triggered an exception (" << e.what() << ")\n\n";
+    }
+  
+}
diff --git a/utils/DisplayCacheFile/makefile b/utils/DisplayCacheFile/makefile
new file mode 100644
index 0000000..195338a
--- /dev/null
+++ b/utils/DisplayCacheFile/makefile
@@ -0,0 +1,60 @@
+UNAME := $(shell uname)
+
+EXE                    = displayCache.exe
+
+COMPILATOR             = g++
+COMPILATOR_OPTIONS     = -O2 -ansi 
+
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,’$(LIB_DIR)’
+CXXFLAGS              += -ansi
+endif
+
+LDLIBS                 = -lm -lnomad
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+
+OBJS                   = displayCache.o
+
+ifndef NOMAD_HOME
+define ECHO_NOMAD
+	@echo Please set NOMAD_HOME environment variable!
+	@false
+endef
+endif
+
+
+$(EXE): $(OBJS)
+	$(ECHO_NOMAD)
+	@echo "   building the executable "$(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
+
+
+displayCache.o: displayCache.cpp
+	$(ECHO_NOMAD)
+	@$(COMPILE) displayCache.cpp
+
+
+all: $(EXE)
+
+clean: ;
+	@echo "   cleaning obj files"
+	@rm -f $(OBJS)
+
+del: ;
+	@echo "   cleaning trash files"
+	@rm -f core *~
+	@echo "   cleaning obj files"
+	@rm -f $(OBJS)
+	@echo "   cleaning exe file"
+	@rm -f $(EXE) 
+
+
diff --git a/utils/MergeCacheFiles/build.m b/utils/MergeCacheFiles/build.m
index 5017f5c..9a1ce33 100644
--- a/utils/MergeCacheFiles/build.m
+++ b/utils/MergeCacheFiles/build.m
@@ -1,68 +1,83 @@
 %% GERAD NOMAD Build for Matlab
 
-% This file will help you compile NOMAD for use with MATLAB. 
+% This file will help you compile NOMAD for use with MATLAB.
 
 % To recompile you will need to get / do the following:
 
 % 1) Get NOMAD
-% NOMAD is available from http://www.gerad.ca/NOMAD/PHP_Forms/Download.php.
+% NOMAD is available from https://www.gerad.ca/nomad
 % Complete the download form then download the latest version. Define the
 % $NOMAD_HOME environment variable.
 
-% 2) NOMAD MEX Interface
+% 2) Start Matlab and go into $NOMAD_HOME/examples/interfaces/Matlab_Mex
 % The NOMAD MEX Interface is a simple MEX interface written to use NOMAD.
 
 % 3) Compile the MEX File
-% The code below will build the NOMAD MEX file. Once you have completed all the
-% above steps, simply run this file to compile NOMAD! You MUST BE in the 
-% base directory of OPTI!
+% The code below will build the NOMAD MEX file and set the Matlab path.
 
 clear nomad
 
+% Default library names
+nameLibNomad = 'libnomad.so';
+
+% Default update LDFLAGS
+updateLDFLAGS= '';
+
+% Current directory
+cdir = cd;
+
+% Check and set nomad_home and create variables for path
+clear nomad_home nomad_src;
+nomad_home = getenv('NOMAD_HOME');
+
+
+if ( length(nomad_home)<1 )
+% Get a default directory for NOMAD_HOME
+cd ..
+cd ..
+nomad_home = cd;
+
+if ( ~ exist(nomad_home,'dir') )
+error('The default NOMAD_HOME directory does not exist. Please provide a correct value for the NOMAD_HOME variables with the command setenv(''NOMAD_HOME'',ARG1)');
+end
+
+setenv('NOMAD_HOME',nomad_home);
+warning('The NOMAD_HOME variable is set with its default value %s. The default can be replaced by using the command setenv(''NOMAD_HOME'',ARG1)! before runner the GERAD_NOMAD_build command.',nomad_home);
+cd(cdir);
+end
+nomad_src=[nomad_home filesep 'src' filesep];
+nomad_lib=[nomad_home filesep 'lib' filesep];
+nomad_bin=[nomad_home filesep 'bin' filesep];
+
 switch(computer)
 case 'PCWIN'
 libdir = ' -Lwin32\';
-case 'PCWIN64' 
-libdir = ' -Lwin64\';        
+nameLibNomad = 'nomad.dll';
+case 'PCWIN64'
+libdir = ' -Lwin64\';
+nameLibNomad = 'nomad.dll';
 case 'GLNX86'
 libdir = 'glnx86/';
+updateLDFLAGS = 'LDFLAGS=''$LDFLAGS -Wl,-rpath,''''$ORIGIN/../lib/'''' '' ';
 case 'GLNXA64'
 libdir = 'glnxa64/';
+updateLDFLAGS = 'LDFLAGS=''$LDFLAGS -Wl,-rpath,''''$ORIGIN/../lib/'''' '' ';
 case 'MACI64'
 libdir = 'maci64/';
 end
 
-clear nomad_home nomad_src;
-
-
-fprintf('\n------------------------------------------------\n');
-fprintf('NOMAD CACHE MERGE BUILD \n\n');
-
-nomad_home = getenv('NOMAD_HOME');
-if (length(nomad_home)<1)
-    error('opti:nomad','Please set NOMAD_HOME variables properly with the command setenv(''NOMAD_HOME'',ARG1)!');
-end
-nomad_src=[nomad_home filesep 'src' filesep];
-
-
 %Get NOMAD Libraries
-post = [' -I.  -I' nomad_src ' -lm -lut -output mergeM'];
+post = [' -I.  -I' nomad_src ' -lm -lut -lnomad -L ' nomad_lib ' -output mergeM'];
 
 %Compile & Move
-pre = ['mex -v -largeArrayDims mergeM.cpp ' nomad_src 'Parameters.cpp ' nomad_src 'Barrier.cpp ' nomad_src 'Cache.cpp '...
-nomad_src 'Cache_File_Point.cpp ' nomad_src 'Cache_Point.cpp ' nomad_src 'Cache_Search.cpp ' nomad_src 'Clock.cpp '...
-nomad_src 'Direction.cpp ' nomad_src 'Directions.cpp ' nomad_src 'Display.cpp '...
-nomad_src 'Double.cpp ' nomad_src 'Eval_Point.cpp ' nomad_src 'Evaluator.cpp ' nomad_src 'Evaluator_Control.cpp ' nomad_src 'Exception.cpp '...
-nomad_src 'Extended_Poll.cpp ' nomad_src 'L_Curve.cpp ' nomad_src 'LH_Search.cpp ' nomad_src 'OrthogonalMesh.cpp ' nomad_src 'Mads.cpp ' nomad_src 'Model_Sorted_Point.cpp '...
-nomad_src 'Model_Stats.cpp ' nomad_src 'Multi_Obj_Evaluator.cpp ' nomad_src 'Parameter_Entries.cpp '...
-nomad_src 'Parameter_Entry.cpp ' nomad_src 'Pareto_Front.cpp ' nomad_src 'Pareto_Point.cpp ' nomad_src 'Phase_One_Evaluator.cpp '...
-nomad_src 'Phase_One_Search.cpp ' nomad_src 'Point.cpp ' nomad_src 'Priority_Eval_Point.cpp ' nomad_src 'Quad_Model.cpp '...
-nomad_src 'Quad_Model_Evaluator.cpp ' nomad_src 'Quad_Model_Search.cpp ' nomad_src 'Random_Pickup.cpp ' nomad_src 'RNG.cpp '...
-nomad_src 'Signature.cpp ' nomad_src 'Slave.cpp ' nomad_src 'SMesh.cpp ' nomad_src 'Speculative_Search.cpp ' nomad_src 'Stats.cpp ' nomad_src 'utils.cpp '...
-nomad_src 'Variable_Group.cpp ' nomad_src 'VNS_Search.cpp ' nomad_src 'XMesh.cpp'];
+pre = ['mex -v -largeArrayDims ' updateLDFLAGS ' mergeM.cpp ' ];
 
 try
     eval([pre post])
+    if ( strcmp(computer,'MACI64') )
+        install_cmd = ['install_name_tool -change libnomad.so ' nomad_lib 'libnomad.so mergeM.mexmaci64' ]; 
+        system(install_cmd);
+    end
     clear nomad_home nomad_src cdir post pre libdir;
     fprintf('Done!\n');
 catch ME
diff --git a/utils/MergeCacheFiles/makefile b/utils/MergeCacheFiles/makefile
index 965ba81..d86324c 100644
--- a/utils/MergeCacheFiles/makefile
+++ b/utils/MergeCacheFiles/makefile
@@ -1,14 +1,25 @@
-EXE                 = merge.exe
+UNAME := $(shell uname)
 
-COMPILATOR          = g++
+EXE                    = merge.exe
 
-COMPILATOR_OPTIONS  = -O2 -ansi 
-L1                  = $(NOMAD_HOME)/lib/nomad.a
-LIBS                = $(L1) -lm
-INCLUDE             = -I$(NOMAD_HOME)/src -I.
-COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS                = merge.o
+COMPILATOR             = g++
+COMPILATOR_OPTIONS     = -O2 -ansi 
 
+LIB_DIR                = $(NOMAD_HOME)/lib
+LIB_NOMAD              = libnomad.so 
+
+CXXFLAGS               =           
+ifeq ($(UNAME), Linux)
+CXXFLAGS              += -Wl,-rpath,'$(LIB_DIR)'
+CXXFLAGS              += -ansi
+endif
+
+LDLIBS                 = -lm -lnomad
+
+INCLUDE                = -I$(NOMAD_HOME)/src -I.
+COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
+
+OBJS                   = merge.o
 
 ifndef NOMAD_HOME
 define ECHO_NOMAD
@@ -18,33 +29,34 @@ endef
 endif
 
 
-$(EXE): $(L1) $(OBJS)
+$(EXE): $(OBJS)
 	$(ECHO_NOMAD)
 	@echo "   building the scalar version ..."
 	@echo "   exe file : "$(EXE)
-	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip  $(EXE)
+	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LDLIBS) $(CXXFLAGS) -L$(LIB_DIR) 
+ifeq ($(UNAME), Darwin)
+	@install_name_tool -change $(LIB_NOMAD) $(NOMAD_HOME)/lib/$(LIB_NOMAD) $(EXE)
+endif
+
 
 
 merge.o: merge.cpp
 	$(ECHO_NOMAD)
 	@$(COMPILE) merge.cpp
 
-$(L1) $(L1_MPI): ;
-	$(ECHO_NOMAD)
 
-all: $(EXE) $(EXE_MPI)
+all: $(EXE)
 
 clean: ;
 	@echo "   cleaning obj files"
-	@rm -f $(OBJS) $(OBJS_MPI)
+	@rm -f $(OBJS)
 
 del: ;
 	@echo "   cleaning trash files"
 	@rm -f core *~
 	@echo "   cleaning obj files"
-	@rm -f $(OBJS) $(OBJS_MPI)
+	@rm -f $(OBJS)
 	@echo "   cleaning exe file"
-	@rm -f $(EXE) $(EXE_MPI)
+	@rm -f $(EXE) 
 
 
diff --git a/utils/Run_TestSuite/readme.txt b/utils/Run_TestSuite/readme.txt
index b99438f..d1205a4 100644
--- a/utils/Run_TestSuite/readme.txt
+++ b/utils/Run_TestSuite/readme.txt
@@ -1,3 +1,5 @@
+The test script is for OSX and Linux only
+
 1- Set the NOMAD_HOME environment variable
 2- Execute the perl script (perl ./runNomadAll_parallel.pl 4)
 3- Check the execution logs if necessary
\ No newline at end of file
diff --git a/utils/Run_TestSuite/runNomadAll_parallel.pl b/utils/Run_TestSuite/runNomadAll_parallel.pl
index f7be08f..dd90b38 100755
--- a/utils/Run_TestSuite/runNomadAll_parallel.pl
+++ b/utils/Run_TestSuite/runNomadAll_parallel.pl
@@ -34,7 +34,7 @@ if ( grep(/MINGW/,<aComRes>) ){
 	$MPIcommand="mpirun -n";    # version OSX and linux
 }
 
-my $keySearch=" Error | error | error: | Exception | NOMAD::Exception | Failed | Arrêt | Stop";
+my $keySearch=" Erreur | Error | error | error: | Exception | NOMAD::Exception | Failed | Arrêt | Stop";
 
 my $nombre_de_jobs_en_parallele:shared;
 if ( ! exists $ARGV[0]) {
@@ -78,8 +78,8 @@ my @list = (
 # 	["cd $ENV{NOMAD_HOME}/examples/interfaces/CUTEr ; sleep 10 ; if [ ! -e bb  ] ; then ./compile 2>&1 ; fi ; $MPIcommand 3 $ENV{NOMAD_HOME}/bin/$nomadMPI_EXE parameters.txt 2>&1 "],
 # 	["cd $ENV{NOMAD_HOME}/examples/interfaces/DLL/single_obj ; if [ -e nomad_for_dll  ] ; then rm -f nomad_for_dll  ; fi ; echo ; make 2>&1; ./nomad_for_dll  parameters.txt 2>&1"],
 # 	["cd $ENV{NOMAD_HOME}/examples/interfaces/DLL/bi_obj ; if [ -e nomad_for_dll  ] ; then rm -f nomad_for_dll  ; fi ; echo ; make clean 2>&1 ; make 2>&1; ./nomad_for_dll  parameters.txt 2>&1"],
-#   ["cd $ENV{NOMAD_HOME}/examples/interfaces/FORTRAN/example1 ; if [ -e test  ] ; then rm -f test  ; fi ; make clean 2>&1 ; make 2>&1; ./test  2>&1"],
-# 	["cd $ENV{NOMAD_HOME}/examples/interfaces/FORTRAN/example2 ; if [ -e test  ] ; then rm -f test  ; fi ; make clean 2>&1 ; make 2>&1; ./test  2>&1"],
+#   ["cd $ENV{NOMAD_HOME}/examples/interfaces/FORTRAN/example1 ; if [ -e test.exe  ] ; then rm -f test.exe  ; fi ; make clean 2>&1 ; make 2>&1; ./test.exe  2>&1"],
+# 	["cd $ENV{NOMAD_HOME}/examples/interfaces/FORTRAN/example2 ; if [ -e test.exe  ] ; then rm -f test.exe  ; fi ; make clean 2>&1 ; make 2>&1; ./test.exe  2>&1"],
 	["cd $ENV{NOMAD_HOME}/tools/COOP-MADS ; if [ -e coopmads.exe  ] ; then rm -f *.exe  *.o ; fi ; make 2>&1 ; cd problems/G2_10 ; g++ -o bb.exe  bb.cpp 2>&1; $MPIcommand 3 ../../coopmads.exe  param.txt 2>&1"],
 	["cd $ENV{NOMAD_HOME}/tools/COOP-MADS ; sleep 10 ; if [ ! -e coopmads.exe  ] ; then  make 2>&1 ; fi ; cd problems/RHEOLOGY ; g++ -o bb.exe  bb.cpp 2>&1; $MPIcommand 3 ../../coopmads.exe  param.txt 2>&1"],
 	["cd $ENV{NOMAD_HOME}/tools/PSD-MADS ; if [ -e psdmads.exe  ] ; then rm -f *.exe  *.o ; fi ; make 2>&1 ; cd problems/G2_20 ; g++ -o bb.exe  bb.cpp 2>&1; $MPIcommand 6 ../../psdmads.exe  param.txt 50 5 2>&1"]
@@ -127,7 +127,7 @@ sub RunProblem($$$$$){
  	    print WRITE_LOG "Path to problem: $Path[1] \n Command: $Problem[$nmax] ; Managed as process $index \n";
  	    open(LOG,"$command |") or die "Can't run program: $!\n";
 		if ($? != 0) {
-	        print "Echec d'exécution de la commande $! du process $index \n";
+	        print "Failed execution: command $! du process $index \n";
 			$$failed_ref++;
 			$fail=0;
     	}
@@ -135,7 +135,7 @@ sub RunProblem($$$$$){
  		   	@lines = <LOG>;
  		   	foreach $line (@lines){
 				if (my @foo = grep(/$keySearch/, $line) ) {
-					print "????????? Probleme a l'execution de la commande du process $index :\n     ----->   @foo\n";
+					print "????????? Problem executing command of process $index:\n     ----->   @foo\n";
  	      			print WRITE_LOG "     !!!!!!!!!!!!!!!   @foo \n ";
  	      			$$failed_ref++;
 					$fail=0;
@@ -183,13 +183,13 @@ sub CompileNOMAD($$$){
  	    print WRITE_LOG "Path: $Path[1] \n Command: $Problem[1] ; Managed as process $index \n";
  	    open(LOG,"$command |") or die "Can't run program: $!\n";
 		if ($? != 0) {
-	        print "Echec d'exécution de la compilation de NOMAD par la commande $! process $index \n";
+	        print "Failed compilation of NOMAD: command $! process $index \n";
 			$$failed=0;
     	}
     	else {
 			while (<LOG>){
 				if (my @foo = grep(/error/, $_) ) {
-					print "??????? Probleme a la compilation de NOMAD dans le process $index:\n     ----->     @foo\n";
+					print "??????? Problem encountered when compiling NOMAD in process $index:\n     ----->     @foo\n";
  	      			print WRITE_LOG "     ----->   @foo \n ";
 					$$failed=0;
  	      			last;   			
@@ -213,44 +213,42 @@ sub CompileNOMAD($$$){
 #####################################
 # nettoie les fichiers de log
 print "########################################################\n";
-print "On nettoie les anciens fichiers de log \n";
+print "Cleaning old log files\n";
 system ("rm -f log*.txt");
 
 
 # démarre la compilation de nomad 
 my $failedCompileNOMAD=1;
 my $thrNOMAD = threads->create("CompileNOMAD",($NOMADcompilations[0],1,\$failedCompileNOMAD));    ### Version parallele
-#CompileNOMAD($NOMADcompilations[0],1,\$failedCompileNOMAD);     ### Version scalaire 
 print "########################################################\n";
-print "La compilation de NOMAD (non mpi) vient de commencer \n";
+print "NOMAD compilation (not mpi) started \n";
 
 
 # démarre la compilation de nomad_mpi 
 my $failedCompileNOMAD_MPI=1;
 my $thrNOMAD_MPI = threads->create("CompileNOMAD",($NOMADcompilations[1],2,\$failedCompileNOMAD_MPI));  ### Version parallele
-#CompileNOMAD($NOMADcompilations[1],2,\$failedCompileNOMAD_MPI);  ### Version scalaire 
-print "La compilation de NOMAD (mpi) vient de commencer \n";
+print "NOMAD compilation (mpi) started\n";
 
 $thrNOMAD->join();
 $thrNOMAD_MPI->join();
 
 if ($failedCompileNOMAD==0){
-	print "La compilation de NOMAD (non mpi) a echoue. On s'arrete la! \n";
+	print "NOMAD compilation (not mpi) failed. Stopping here! \n";
 }
 
 if ($failedCompileNOMAD_MPI==0){
-	print "La compilation de NOMAD (mpi) a echoue. On s'arrete la! \n";
+	print "NOMAD compilation (mpi) failed. Stoppinf here! \n";
 }
 
 if ($failedCompileNOMAD==0 or $failedCompileNOMAD_MPI==0){
 	exit 0;
 }
 
-print "Les compilations de nomad ont réussi \n";
+print "NOMAD compilation(s) success\n";
 print "########################################################\n\n";
 
 print "########################################################\n";
-print "Démarrage des executions en parallele pour les problemes \n";
+print "Starting parallel executions of problems \n";
 print "########################################################\n";
 
 
@@ -265,7 +263,7 @@ while ($started < scalar @list ){
 	$semaphoreProblems->down();
  
 	# si le sémaphore est a 0, le processus principal va se bloquer en attendant une nouvelle place
-	print "Creation du job $started\n";
+	print "Creating job $started\n";
 	my $thr = threads->create("RunProblem", (
 		$aRefToAListOfCommands,
 		$started,
@@ -281,24 +279,36 @@ while ($started < scalar @list ){
 	# $thr->join();
 }
  
+print "########################################################\n";
+ 
 # attend les derniers jobs
+my $cpt_Prev = $cpt;
+print "\n $cpt jobs completed for $started jobs started, patience!\n";
+# Disable buffering 
+$| = 1;
 while ($cpt < $started){
-	print "Seul $cpt jobs finis sur $started, on patiente!\n";
+    print ".";
+	if ( $cpt > $cpt_Prev) {
+		print "\n $cpt jobs completed for $started jobs started, patience!\n";
+		}
+	$cpt_Prev = $cpt;	
 	sleep(3);
 }
-print "$cpt jobs lances, $failed échoués, sur les ".scalar @list." prévus\n";
+print "\n $cpt jobs started, $failed jobs failed, ".scalar @list." jobs to be done\n";
+
+print "########################################################\n";
 
 if ($failed !=0) {
 	print "----->  Check the readme file for the failed problem(s)!!! \n"; 
 }
 
-print "On combine tous les logs en un seul\n";
+print "All logs are combined in a single log file\n";
 my $i=0;
-open (LOGALL, '>', "logAll.txt") or die("impossible d'ecrire dans le fichier logAll.txt, $!");
+open (LOGALL, '>', "logAll.txt") or die("Not able to write in logAll.txt, $!");
 while ($i < scalar @list ){
 	# incrémente le compteur
 	$i++;
-	open (LOGI, '<', "log$i.txt") or die("Impossible de lire log$i.txt, $!\n");	
+	open (LOGI, '<', "log$i.txt") or die("Cannot read file log$i.txt, $!\n");	
 	print LOGALL "*********************************************************\n";
   	while (my $Ligne = <LOGI> ) {
     	print LOGALL $Ligne;
-- 
GitLab