[chronojump] RDotNet working on Windows



commit ee96bfe64e9b93a641d55d8f2d67edec572ef6e6
Author: Windows Build <windows chronojump org>
Date:   Mon Mar 3 02:15:29 2014 +0100

    RDotNet working on Windows

 Makefile.am                                        |    2 +-
 libcesarplayer/baconvideowidget-marshal.c          |  494 +-
 libcesarplayer/baconvideowidget-marshal.h          |   88 +-
 rdotnet/Makefile                                   |  620 +++
 rdotnet/Makefile.in                                |  620 +++
 rdotnet/R.NET/BuiltinFunction.cs                   |   56 +-
 rdotnet/R.NET/CharacterMatrix.cs                   |  203 +-
 rdotnet/R.NET/CharacterVector.cs                   |  187 +-
 rdotnet/R.NET/Closure.cs                           |  128 +-
 rdotnet/R.NET/ComplexMatrix.cs                     |  196 +-
 rdotnet/R.NET/ComplexVector.cs                     |  175 +-
 rdotnet/R.NET/DataFrame.cs                         |  463 +-
 rdotnet/R.NET/DataFrameColumnAttribute.cs          |   74 +
 rdotnet/R.NET/DataFrameRow.cs                      |  178 +-
 rdotnet/R.NET/DataFrameRowAttribute.cs             |   62 +
 rdotnet/R.NET/Devices/CharacterDeviceAdapter.cs    |  505 +-
 rdotnet/R.NET/Devices/ConsoleDevice.cs             |  276 +-
 rdotnet/R.NET/Devices/ICharacterDevice.cs          |  276 +-
 rdotnet/R.NET/Devices/NullCharacterDevice.cs       |  162 +-
 .../R.NET/Diagnostics/DataFrameColumnDisplay.cs    |   50 +
 rdotnet/R.NET/Diagnostics/DataFrameDebugView.cs    |   26 +
 rdotnet/R.NET/Diagnostics/FactorDebugView.cs       |   24 +
 rdotnet/R.NET/Diagnostics/MatrixDebugView.cs       |   25 +
 rdotnet/R.NET/Diagnostics/VectorDebugView.cs       |   25 +
 rdotnet/R.NET/Dynamic/DataFrameDynamicMeta.cs      |   56 +-
 rdotnet/R.NET/Dynamic/ListDynamicMeta.cs           |   56 +-
 .../R.NET/Dynamic/SymbolicExpressionDynamicMeta.cs |   56 +-
 rdotnet/R.NET/DynamicVector.cs                     |  462 +-
 rdotnet/R.NET/Environment.cs                       |  185 +-
 rdotnet/R.NET/Expression.cs                        |  110 +-
 rdotnet/R.NET/ExpressionVector.cs                  |  120 +-
 rdotnet/R.NET/Factor.cs                            |  108 +
 rdotnet/R.NET/Function.cs                          |   42 +-
 rdotnet/R.NET/GenericVector.cs                     |  191 +-
 rdotnet/R.NET/IntegerMatrix.cs                     |  189 +-
 rdotnet/R.NET/IntegerVector.cs                     |  248 +-
 rdotnet/R.NET/InternalString.cs                    |  103 +-
 rdotnet/R.NET/Internals/BusyType.cs                |   30 +-
 rdotnet/R.NET/Internals/ConsoleOutputType.cs       |   22 +-
 rdotnet/R.NET/Internals/Delegates.cs               |  201 +-
 rdotnet/R.NET/Internals/OutputMode.cs              |   48 +-
 rdotnet/R.NET/Internals/ParseStatus.cs             |   78 +-
 rdotnet/R.NET/Internals/SEXPREC.cs                 |  264 +-
 rdotnet/R.NET/Internals/SEXPREC_HEADER.cs          |   18 +-
 rdotnet/R.NET/Internals/SaveActions.cs             |   90 +-
 rdotnet/R.NET/Internals/SymbolicExpressionType.cs  |  368 +-
 rdotnet/R.NET/Internals/Unix/Delegates.cs          |   72 +-
 rdotnet/R.NET/Internals/Unix/RStart.cs             |   72 +-
 rdotnet/R.NET/Internals/VECTOR_SEXPREC.cs          |   98 +-
 rdotnet/R.NET/Internals/Windows/Delegates.cs       |   32 +-
 rdotnet/R.NET/Internals/Windows/RStart.cs          |   46 +-
 rdotnet/R.NET/Internals/Windows/UiMode.cs          |   14 +-
 rdotnet/R.NET/Internals/YesNoCancel.cs             |   38 +-
 rdotnet/R.NET/Internals/sxpinfo.cs                 |  112 +-
 rdotnet/R.NET/Language.cs                          |   68 +-
 rdotnet/R.NET/LogicalMatrix.cs                     |  187 +-
 rdotnet/R.NET/LogicalVector.cs                     |  175 +-
 rdotnet/R.NET/Makefile                             |  843 ++++
 rdotnet/R.NET/Makefile.am                          |   10 +-
 rdotnet/R.NET/Makefile.in                          |  843 ++++
 rdotnet/R.NET/Matrix.cs                            |  552 ++-
 rdotnet/R.NET/NumericMatrix.cs                     |  205 +-
 rdotnet/R.NET/NumericVector.cs                     |  253 +-
 rdotnet/R.NET/Pairlist.cs                          |   80 +-
 rdotnet/R.NET/ParseException.cs                    |  118 +-
 rdotnet/R.NET/Properties/AssemblyInfo.cs           |   37 +-
 rdotnet/R.NET/ProtectedPointer.cs                  |   78 +-
 rdotnet/R.NET/RDotNet.csproj                       |   21 +-
 rdotnet/R.NET/REngine.cs                           | 1066 ++--
 rdotnet/R.NET/REngineExtension.cs                  |  933 ++--
 rdotnet/R.NET/RawMatrix.cs                         |  183 +-
 rdotnet/R.NET/RawVector.cs                         |  242 +-
 rdotnet/R.NET/SpecialFunction.cs                   |   56 +-
 rdotnet/R.NET/StartupParameter.cs                  |  546 +-
 rdotnet/R.NET/Symbol.cs                            |  136 +-
 rdotnet/R.NET/SymbolicExpression.cs                |  469 +-
 rdotnet/R.NET/SymbolicExpressionExtension.cs       | 1210 +++---
 rdotnet/R.NET/Utility.cs                           |  117 +-
 rdotnet/R.NET/Vector.cs                            |  435 +-
 rdotnet/RDotNet.NativeLibrary/Makefile             |  777 +++
 rdotnet/RDotNet.NativeLibrary/Makefile.in          |  777 +++
 rdotnet/RDotNet.NativeLibrary/NativeUtility.cs     |   88 +-
 .../Properties/AssemblyInfo.cs                     |   37 +-
 .../RDotNet.NativeLibrary.csproj                   |   13 +-
 rdotnet/RDotNet.NativeLibrary/UnmanagedDll.cs      |  385 +-
 rdotnet/Rdll/i386/R.dll                            |  Bin 0 -> 2928640 bytes
 rdotnet/Rdll/i386/R.exe                            |  Bin 0 -> 34816 bytes
 rdotnet/Rdll/i386/RSetReg.exe                      |  Bin 0 -> 20480 bytes
 rdotnet/Rdll/i386/Rblas.dll                        |  Bin 0 -> 239777 bytes
 rdotnet/Rdll/i386/Rcmd.exe                         |  Bin 0 -> 34304 bytes
 rdotnet/Rdll/i386/Rgraphapp.dll                    |  Bin 0 -> 348963 bytes
 rdotnet/Rdll/i386/Rgui.exe                         |  Bin 0 -> 17920 bytes
 rdotnet/Rdll/i386/Riconv.dll                       |  Bin 0 -> 102975 bytes
 rdotnet/Rdll/i386/Rlapack.dll                      |  Bin 0 -> 1914368 bytes
 rdotnet/Rdll/i386/Rscript.exe                      |  Bin 0 -> 21504 bytes
 rdotnet/Rdll/i386/Rterm.exe                        |  Bin 0 -> 18432 bytes
 rdotnet/Rdll/i386/Rzlib.dll                        |  Bin 0 -> 154917 bytes
 rdotnet/Rdll/i386/open.exe                         |  Bin 0 -> 12800 bytes
 rdotnet/Rdll/x64/R.dll                             |  Bin 0 -> 3056128 bytes
 rdotnet/Rdll/x64/R.exe                             |  Bin 0 -> 39424 bytes
 rdotnet/Rdll/x64/RSetReg.exe                       |  Bin 0 -> 23552 bytes
 rdotnet/Rdll/x64/Rblas.dll                         |  Bin 0 -> 343623 bytes
 rdotnet/Rdll/x64/Rcmd.exe                          |  Bin 0 -> 39424 bytes
 rdotnet/Rdll/x64/Rgraphapp.dll                     |  Bin 0 -> 377496 bytes
 rdotnet/Rdll/x64/Rgui.exe                          |  Bin 0 -> 22016 bytes
 rdotnet/Rdll/x64/Riconv.dll                        |  Bin 0 -> 131391 bytes
 rdotnet/Rdll/x64/Rlapack.dll                       |  Bin 0 -> 2120192 bytes
 rdotnet/Rdll/x64/Rscript.exe                       |  Bin 0 -> 25088 bytes
 rdotnet/Rdll/x64/Rterm.exe                         |  Bin 0 -> 22528 bytes
 rdotnet/Rdll/x64/Rzlib.dll                         |  Bin 0 -> 181309 bytes
 rdotnet/Rdll/x64/open.exe                          |  Bin 0 -> 16384 bytes
 src/chronojump.cs                                  |   35 +-
 src/gui/encoder.cs                                 |   16 +-
 src/util.cs                                        |    6 +-
 win32/Makefile.am                                  |    4 +
 win32/deps/bin/R.exe                               |  Bin 19456 -> 19456 bytes
 win32/deps/bin/Rscript.exe                         |  Bin 19456 -> 19456 bytes
 win32/deps/bin/i386/R.dll                          |  Bin 3491840 -> 2928640 bytes
 win32/deps/bin/i386/R.exe                          |  Bin 34816 -> 34816 bytes
 win32/deps/bin/i386/RSetReg.exe                    |  Bin 20480 -> 20480 bytes
 win32/deps/bin/i386/Rblas.dll                      |  Bin 238241 -> 239777 bytes
 win32/deps/bin/i386/Rcmd.exe                       |  Bin 34304 -> 34304 bytes
 win32/deps/bin/i386/Rgraphapp.dll                  |  Bin 348963 -> 348963 bytes
 win32/deps/bin/i386/Rgui.exe                       |  Bin 17920 -> 17920 bytes
 win32/deps/bin/i386/Riconv.dll                     |  Bin 102975 -> 102975 bytes
 win32/deps/bin/i386/Rlapack.dll                    |  Bin 1914368 -> 1914368 bytes
 win32/deps/bin/i386/Rscript.exe                    |  Bin 21504 -> 21504 bytes
 win32/deps/bin/i386/Rterm.exe                      |  Bin 18432 -> 18432 bytes
 win32/deps/bin/i386/Rzlib.dll                      |  Bin 154877 -> 154917 bytes
 win32/deps/bin/i386/open.exe                       |  Bin 12800 -> 12800 bytes
 win32/deps/library/Cairo/DESCRIPTION               |   26 +-
 win32/deps/library/Cairo/MD5                       |   38 +-
 win32/deps/library/Cairo/Meta/Rd.rds               |  Bin 558 -> 558 bytes
 win32/deps/library/Cairo/Meta/hsearch.rds          |  Bin 576 -> 576 bytes
 win32/deps/library/Cairo/Meta/links.rds            |  Bin 232 -> 232 bytes
 win32/deps/library/Cairo/Meta/nsInfo.rds           |  Bin 186 -> 186 bytes
 win32/deps/library/Cairo/Meta/package.rds          |  Bin 1205 -> 1205 bytes
 win32/deps/library/Cairo/NEWS                      |   29 +
 win32/deps/library/Cairo/R/Cairo                   |   26 +-
 win32/deps/library/Cairo/R/Cairo.rdb               |  Bin 7271 -> 6891 bytes
 win32/deps/library/Cairo/R/Cairo.rdx               |  Bin 525 -> 512 bytes
 win32/deps/library/Cairo/help/Cairo.rdb            |  Bin 24254 -> 24539 bytes
 win32/deps/library/Cairo/help/Cairo.rdx            |  Bin 309 -> 310 bytes
 win32/deps/library/Cairo/help/aliases.rds          |  Bin 181 -> 181 bytes
 win32/deps/library/Cairo/help/paths.rds            |  Bin 167 -> 167 bytes
 win32/deps/library/Cairo/html/00Index.html         |    2 +-
 win32/deps/library/Cairo/libs/i386/Cairo.dll       |  Bin 1009152 -> 1009152 bytes
 win32/deps/library/Cairo/libs/i386/symbols.rds     |  Bin 2398 -> 2397 bytes
 win32/deps/library/Cairo/libs/x64/Cairo.dll        |  Bin 1046016 -> 1046016 bytes
 win32/deps/library/Cairo/libs/x64/symbols.rds      |  Bin 2373 -> 2371 bytes
 win32/deps/library/EMD/DESCRIPTION                 |   19 -
 win32/deps/library/EMD/INDEX                       |   22 -
 win32/deps/library/EMD/MD5                         |   31 -
 win32/deps/library/EMD/Meta/Rd.rds                 |  Bin 961 -> 0 bytes
 win32/deps/library/EMD/Meta/data.rds               |  Bin 214 -> 0 bytes
 win32/deps/library/EMD/Meta/hsearch.rds            |  Bin 910 -> 0 bytes
 win32/deps/library/EMD/Meta/links.rds              |  Bin 405 -> 0 bytes
 win32/deps/library/EMD/Meta/nsInfo.rds             |  Bin 215 -> 0 bytes
 win32/deps/library/EMD/Meta/package.rds            |  Bin 855 -> 0 bytes
 win32/deps/library/EMD/NAMESPACE                   |   10 -
 win32/deps/library/EMD/R/EMD                       |    9 -
 win32/deps/library/EMD/R/EMD.rdb                   |  Bin 21138 -> 0 bytes
 win32/deps/library/EMD/R/EMD.rdx                   |  Bin 499 -> 0 bytes
 win32/deps/library/EMD/data/beryllium.rda          |  Bin 1765 -> 0 bytes
 win32/deps/library/EMD/data/datalist               |    7 -
 win32/deps/library/EMD/data/kospi200.rda           |  Bin 5036 -> 0 bytes
 win32/deps/library/EMD/data/lena.rda               |  Bin 188871 -> 0 bytes
 win32/deps/library/EMD/data/lennon.rda             |  Bin 38130 -> 0 bytes
 win32/deps/library/EMD/data/solar.hs.rda           |  Bin 1436 -> 0 bytes
 win32/deps/library/EMD/data/solar.lean.rda         |  Bin 2346 -> 0 bytes
 win32/deps/library/EMD/data/sunspot.rda            |  Bin 1850 -> 0 bytes
 win32/deps/library/EMD/help/AnIndex                |   27 -
 win32/deps/library/EMD/help/EMD.rdb                |  Bin 51544 -> 0 bytes
 win32/deps/library/EMD/help/EMD.rdx                |  Bin 586 -> 0 bytes
 win32/deps/library/EMD/help/aliases.rds            |  Bin 304 -> 0 bytes
 win32/deps/library/EMD/help/paths.rds              |  Bin 260 -> 0 bytes
 win32/deps/library/EMD/html/00Index.html           |   67 -
 win32/deps/library/EMD/html/R.css                  |   57 -
 win32/deps/library/EMD/libs/i386/EMD.dll           |  Bin 20992 -> 0 bytes
 win32/deps/library/EMD/libs/i386/symbols.rds       |  Bin 286 -> 0 bytes
 win32/deps/library/EMD/libs/x64/EMD.dll            |  Bin 23040 -> 0 bytes
 win32/deps/library/EMD/libs/x64/symbols.rds        |  Bin 284 -> 0 bytes
 win32/deps/library/KernSmooth/DESCRIPTION          |   22 -
 win32/deps/library/KernSmooth/INDEX                |    8 -
 win32/deps/library/KernSmooth/LICENCE              |    5 -
 win32/deps/library/KernSmooth/Meta/Rd.rds          |  Bin 449 -> 0 bytes
 win32/deps/library/KernSmooth/Meta/hsearch.rds     |  Bin 462 -> 0 bytes
 win32/deps/library/KernSmooth/Meta/links.rds       |  Bin 165 -> 0 bytes
 win32/deps/library/KernSmooth/Meta/nsInfo.rds      |  Bin 344 -> 0 bytes
 win32/deps/library/KernSmooth/Meta/package.rds     |  Bin 852 -> 0 bytes
 win32/deps/library/KernSmooth/NAMESPACE            |    3 -
 win32/deps/library/KernSmooth/R/KernSmooth         |    9 -
 win32/deps/library/KernSmooth/R/KernSmooth.rdb     |  Bin 33968 -> 0 bytes
 win32/deps/library/KernSmooth/R/KernSmooth.rdx     |  Bin 433 -> 0 bytes
 win32/deps/library/KernSmooth/help/AnIndex         |    7 -
 win32/deps/library/KernSmooth/help/KernSmooth.rdb  |  Bin 26530 -> 0 bytes
 win32/deps/library/KernSmooth/help/KernSmooth.rdx  |  Bin 283 -> 0 bytes
 win32/deps/library/KernSmooth/help/aliases.rds     |  Bin 102 -> 0 bytes
 win32/deps/library/KernSmooth/help/paths.rds       |  Bin 154 -> 0 bytes
 win32/deps/library/KernSmooth/html/00Index.html    |   37 -
 win32/deps/library/KernSmooth/html/R.css           |   57 -
 .../library/KernSmooth/libs/i386/KernSmooth.dll    |  Bin 25600 -> 0 bytes
 .../KernSmooth/po/de/LC_MESSAGES/R-KernSmooth.mo   |  Bin 1276 -> 0 bytes
 .../po/en quot/LC_MESSAGES/R-KernSmooth.mo         |  Bin 1170 -> 0 bytes
 .../KernSmooth/po/pl/LC_MESSAGES/R-KernSmooth.mo   |  Bin 1446 -> 0 bytes
 win32/deps/library/KernSmooth/tests/bkfe.R         |    8 -
 win32/deps/library/MASS/CITATION                   |   18 -
 win32/deps/library/MASS/DESCRIPTION                |   28 -
 win32/deps/library/MASS/INDEX                      |  175 -
 win32/deps/library/MASS/LICENCE                    |   49 -
 win32/deps/library/MASS/Meta/Rd.rds                |  Bin 6435 -> 0 bytes
 win32/deps/library/MASS/Meta/data.rds              |  Bin 2310 -> 0 bytes
 win32/deps/library/MASS/Meta/hsearch.rds           |  Bin 5915 -> 0 bytes
 win32/deps/library/MASS/Meta/links.rds             |  Bin 2468 -> 0 bytes
 win32/deps/library/MASS/Meta/nsInfo.rds            |  Bin 1421 -> 0 bytes
 win32/deps/library/MASS/Meta/package.rds           |  Bin 1034 -> 0 bytes
 win32/deps/library/MASS/NAMESPACE                  |  174 -
 win32/deps/library/MASS/NEWS                       |  189 -
 win32/deps/library/MASS/R/MASS                     |    9 -
 win32/deps/library/MASS/R/MASS.rdb                 |  Bin 323730 -> 0 bytes
 win32/deps/library/MASS/R/MASS.rdx                 |  Bin 2893 -> 0 bytes
 win32/deps/library/MASS/data/Rdata.rdb             |  Bin 140875 -> 0 bytes
 win32/deps/library/MASS/data/Rdata.rds             |  Bin 766 -> 0 bytes
 win32/deps/library/MASS/data/Rdata.rdx             |  Bin 1203 -> 0 bytes
 win32/deps/library/MASS/help/AnIndex               |  251 -
 win32/deps/library/MASS/help/MASS.rdb              |  Bin 441807 -> 0 bytes
 win32/deps/library/MASS/help/MASS.rdx              |  Bin 3253 -> 0 bytes
 win32/deps/library/MASS/help/aliases.rds           |  Bin 1778 -> 0 bytes
 win32/deps/library/MASS/help/paths.rds             |  Bin 1170 -> 0 bytes
 win32/deps/library/MASS/html/00Index.html          |  645 ---
 win32/deps/library/MASS/html/R.css                 |   57 -
 win32/deps/library/MASS/libs/i386/MASS.dll         |  Bin 29696 -> 0 bytes
 .../deps/library/MASS/po/de/LC_MESSAGES/R-MASS.mo  |  Bin 17842 -> 0 bytes
 .../library/MASS/po/en quot/LC_MESSAGES/R-MASS.mo  |  Bin 16844 -> 0 bytes
 .../deps/library/MASS/po/fr/LC_MESSAGES/R-MASS.mo  |  Bin 17848 -> 0 bytes
 .../deps/library/MASS/po/pl/LC_MESSAGES/R-MASS.mo  |  Bin 18323 -> 0 bytes
 win32/deps/library/MASS/scripts/ch01.R             |  114 -
 win32/deps/library/MASS/scripts/ch02.R             |  199 -
 win32/deps/library/MASS/scripts/ch03.R             |  185 -
 win32/deps/library/MASS/scripts/ch04.R             |  253 -
 win32/deps/library/MASS/scripts/ch05.R             |  283 --
 win32/deps/library/MASS/scripts/ch06.R             |  358 --
 win32/deps/library/MASS/scripts/ch07.R             |  184 -
 win32/deps/library/MASS/scripts/ch08.R             |  457 --
 win32/deps/library/MASS/scripts/ch09.R             |  104 -
 win32/deps/library/MASS/scripts/ch10.R             |  278 --
 win32/deps/library/MASS/scripts/ch11.R             |  223 -
 win32/deps/library/MASS/scripts/ch12.R             |  434 --
 win32/deps/library/MASS/scripts/ch13.R             |  285 --
 win32/deps/library/MASS/scripts/ch14.R             |  258 -
 win32/deps/library/MASS/scripts/ch15.R             |  188 -
 win32/deps/library/MASS/scripts/ch16.R             |  168 -
 win32/deps/library/MASS/tests/BankWages.rda        |  Bin 1985 -> 0 bytes
 .../library/MASS/tests/Examples/MASS-Ex.Rout.save  | 5231 --------------------
 win32/deps/library/MASS/tests/confint.R            |   26 -
 win32/deps/library/MASS/tests/fitdistr.R           |   30 -
 win32/deps/library/MASS/tests/fitdistr.Rout.save   |   76 -
 win32/deps/library/MASS/tests/glm.nb.R             |   49 -
 win32/deps/library/MASS/tests/hubers.R             |    5 -
 win32/deps/library/MASS/tests/lme.R                |   16 -
 win32/deps/library/MASS/tests/polr.R               |   48 -
 win32/deps/library/MASS/tests/profile.R            |   10 -
 win32/deps/library/MASS/tests/regression.R         |    9 -
 win32/deps/library/MASS/tests/regression.Rout.save |   47 -
 win32/deps/library/MASS/tests/rlm.R                |   91 -
 win32/deps/library/MASS/tests/scripts.R            |   36 -
 win32/deps/library/Matrix/Copyrights               |   58 -
 win32/deps/library/Matrix/DESCRIPTION              |   28 -
 win32/deps/library/Matrix/Doxyfile                 | 1720 -------
 win32/deps/library/Matrix/INDEX                    |  152 -
 win32/deps/library/Matrix/Meta/Rd.rds              |  Bin 13215 -> 0 bytes
 win32/deps/library/Matrix/Meta/data.rds            |  Bin 205 -> 0 bytes
 win32/deps/library/Matrix/Meta/hsearch.rds         |  Bin 13733 -> 0 bytes
 win32/deps/library/Matrix/Meta/links.rds           |  Bin 11118 -> 0 bytes
 win32/deps/library/Matrix/Meta/nsInfo.rds          |  Bin 1530 -> 0 bytes
 win32/deps/library/Matrix/Meta/package.rds         |  Bin 1118 -> 0 bytes
 win32/deps/library/Matrix/Meta/vignette.rds        |  Bin 380 -> 0 bytes
 win32/deps/library/Matrix/NAMESPACE                |  317 --
 win32/deps/library/Matrix/R/Matrix                 |    9 -
 win32/deps/library/Matrix/R/Matrix.rdb             |  Bin 1923241 -> 0 bytes
 win32/deps/library/Matrix/R/Matrix.rdx             |  Bin 11141 -> 0 bytes
 win32/deps/library/Matrix/data/CAex.R              |   18 -
 win32/deps/library/Matrix/data/KNex.R              |   11 -
 win32/deps/library/Matrix/data/USCounties.R        |   17 -
 win32/deps/library/Matrix/doc/Announce.txt         |   83 -
 win32/deps/library/Matrix/doc/Comparisons.R        |  164 -
 win32/deps/library/Matrix/doc/Comparisons.Rnw      |  257 -
 win32/deps/library/Matrix/doc/Comparisons.pdf      |  Bin 76267 -> 0 bytes
 win32/deps/library/Matrix/doc/Design-issues.R      |   46 -
 win32/deps/library/Matrix/doc/Design-issues.Rnw    |  170 -
 win32/deps/library/Matrix/doc/Design-issues.pdf    |  Bin 59895 -> 0 bytes
 win32/deps/library/Matrix/doc/Intro2Matrix.R       |   99 -
 win32/deps/library/Matrix/doc/Intro2Matrix.Rnw     |  450 --
 win32/deps/library/Matrix/doc/Intro2Matrix.pdf     |  Bin 128938 -> 0 bytes
 win32/deps/library/Matrix/doc/Introduction.R       |    8 -
 win32/deps/library/Matrix/doc/Introduction.Rnw     |  169 -
 win32/deps/library/Matrix/doc/Introduction.pdf     |  Bin 70547 -> 0 bytes
 win32/deps/library/Matrix/doc/Matrix.bib           |  483 --
 win32/deps/library/Matrix/doc/SuiteSparse/AMD.txt  |  213 -
 .../library/Matrix/doc/SuiteSparse/CHOLMOD.txt     |   81 -
 .../deps/library/Matrix/doc/SuiteSparse/COLAMD.txt |  118 -
 win32/deps/library/Matrix/doc/SuiteSparse/SPQR.txt |   56 -
 .../Matrix/doc/SuiteSparse/SuiteSparse_config.txt  |   44 -
 .../library/Matrix/doc/SuiteSparse/UserGuides.txt  |   20 -
 win32/deps/library/Matrix/doc/index.html           |   47 -
 win32/deps/library/Matrix/doc/sparseModels.R       |  157 -
 win32/deps/library/Matrix/doc/sparseModels.Rnw     |  295 --
 win32/deps/library/Matrix/doc/sparseModels.pdf     |  Bin 98855 -> 0 bytes
 win32/deps/library/Matrix/external/CAex_slots.rda  |  Bin 1672 -> 0 bytes
 win32/deps/library/Matrix/external/KNex_slots.rda  |  Bin 56448 -> 0 bytes
 .../library/Matrix/external/USCounties_slots.rda   |  Bin 30347 -> 0 bytes
 win32/deps/library/Matrix/external/lund_a.mtx      | 1300 -----
 win32/deps/library/Matrix/external/lund_a.rsa      |  356 --
 win32/deps/library/Matrix/external/pores_1.mtx     |  182 -
 win32/deps/library/Matrix/external/test3comp.rda   |  Bin 4497 -> 0 bytes
 win32/deps/library/Matrix/external/utm300.rua      | 1295 -----
 win32/deps/library/Matrix/external/wrong.mtx       |    4 -
 win32/deps/library/Matrix/help/AnIndex             | 1991 --------
 win32/deps/library/Matrix/help/Matrix.rdb          |  Bin 471121 -> 0 bytes
 win32/deps/library/Matrix/help/Matrix.rdx          |  Bin 2354 -> 0 bytes
 win32/deps/library/Matrix/help/aliases.rds         |  Bin 12034 -> 0 bytes
 win32/deps/library/Matrix/help/paths.rds           |  Bin 861 -> 0 bytes
 win32/deps/library/Matrix/html/00Index.html        | 1411 ------
 win32/deps/library/Matrix/html/R.css               |   57 -
 win32/deps/library/Matrix/include/Matrix.h         |   90 -
 win32/deps/library/Matrix/include/Matrix_stubs.c   |  667 ---
 win32/deps/library/Matrix/include/cholmod.h        |  979 ----
 win32/deps/library/Matrix/libs/i386/Matrix.dll     |  Bin 684544 -> 0 bytes
 .../library/Matrix/po/de/LC_MESSAGES/Matrix.mo     |  Bin 23301 -> 0 bytes
 .../library/Matrix/po/de/LC_MESSAGES/R-Matrix.mo   |  Bin 22982 -> 0 bytes
 .../Matrix/po/en quot/LC_MESSAGES/Matrix.mo        |  Bin 22282 -> 0 bytes
 .../Matrix/po/en quot/LC_MESSAGES/R-Matrix.mo      |  Bin 24228 -> 0 bytes
 .../library/Matrix/po/pl/LC_MESSAGES/Matrix.mo     |  Bin 24212 -> 0 bytes
 .../library/Matrix/po/pl/LC_MESSAGES/R-Matrix.mo   |  Bin 26518 -> 0 bytes
 win32/deps/library/Matrix/test-tools-1.R           |  200 -
 win32/deps/library/Matrix/test-tools-Matrix.R      |  633 ---
 win32/deps/library/Matrix/test-tools.R             |   10 -
 win32/deps/library/Matrix/tests/Class+Meth.R       |  348 --
 win32/deps/library/Matrix/tests/Simple.R           |  837 ----
 win32/deps/library/Matrix/tests/abIndex-tsts.R     |  121 -
 win32/deps/library/Matrix/tests/base-matrix-fun.R  |   45 -
 win32/deps/library/Matrix/tests/bind.R             |  131 -
 win32/deps/library/Matrix/tests/bind.Rout.save     |  385 --
 win32/deps/library/Matrix/tests/dg_Matrix.R        |   95 -
 win32/deps/library/Matrix/tests/dpo-test.R         |  171 -
 win32/deps/library/Matrix/tests/dtpMatrix.R        |   63 -
 win32/deps/library/Matrix/tests/factorizing.R      |  399 --
 win32/deps/library/Matrix/tests/group-methods.R    |  272 -
 win32/deps/library/Matrix/tests/indexing.R         |  839 ----
 win32/deps/library/Matrix/tests/indexing.Rout.save | 1634 ------
 win32/deps/library/Matrix/tests/matprod.R          |  435 --
 win32/deps/library/Matrix/tests/matr-exp.R         |   79 -
 win32/deps/library/Matrix/tests/other-pkgs.R       |  139 -
 win32/deps/library/Matrix/tests/spModel.matrix.R   |  190 -
 win32/deps/library/Matrix/tests/validObj.R         |  177 -
 win32/deps/library/Matrix/tests/write-read.R       |   57 -
 win32/deps/library/akima/DESCRIPTION               |   19 -
 win32/deps/library/akima/INDEX                     |    8 -
 win32/deps/library/akima/LICENSE                   |   26 -
 win32/deps/library/akima/MD5                       |   25 -
 win32/deps/library/akima/Meta/Rd.rds               |  Bin 432 -> 0 bytes
 win32/deps/library/akima/Meta/data.rds             |  Bin 120 -> 0 bytes
 win32/deps/library/akima/Meta/hsearch.rds          |  Bin 455 -> 0 bytes
 win32/deps/library/akima/Meta/links.rds            |  Bin 169 -> 0 bytes
 win32/deps/library/akima/Meta/nsInfo.rds           |  Bin 234 -> 0 bytes
 win32/deps/library/akima/Meta/package.rds          |  Bin 768 -> 0 bytes
 win32/deps/library/akima/NAMESPACE                 |    2 -
 win32/deps/library/akima/R/akima                   |    9 -
 win32/deps/library/akima/R/akima.rdb               |  Bin 7882 -> 0 bytes
 win32/deps/library/akima/R/akima.rdx               |  Bin 339 -> 0 bytes
 win32/deps/library/akima/data/akima.rda            |  Bin 660 -> 0 bytes
 win32/deps/library/akima/help/AnIndex              |    9 -
 win32/deps/library/akima/help/akima.rdb            |  Bin 25737 -> 0 bytes
 win32/deps/library/akima/help/akima.rdx            |  Bin 247 -> 0 bytes
 win32/deps/library/akima/help/aliases.rds          |  Bin 126 -> 0 bytes
 win32/deps/library/akima/help/paths.rds            |  Bin 128 -> 0 bytes
 win32/deps/library/akima/html/00Index.html         |   41 -
 win32/deps/library/akima/html/R.css                |   57 -
 win32/deps/library/akima/libs/i386/akima.dll       |  Bin 305152 -> 0 bytes
 win32/deps/library/akima/libs/i386/symbols.rds     |  Bin 1100 -> 0 bytes
 win32/deps/library/akima/libs/x64/akima.dll        |  Bin 292352 -> 0 bytes
 win32/deps/library/akima/libs/x64/symbols.rds      |  Bin 1112 -> 0 bytes
 win32/deps/library/base/CITATION                   |    3 +-
 win32/deps/library/base/DESCRIPTION                |    6 +-
 win32/deps/library/base/INDEX                      |   11 +-
 win32/deps/library/base/Meta/Rd.rds                |  Bin 20020 -> 20223 bytes
 win32/deps/library/base/Meta/demo.rds              |  Bin 244 -> 244 bytes
 win32/deps/library/base/Meta/hsearch.rds           |  Bin 20612 -> 20830 bytes
 win32/deps/library/base/Meta/links.rds             |  Bin 11724 -> 11924 bytes
 win32/deps/library/base/Meta/package.rds           |  Bin 464 -> 470 bytes
 win32/deps/library/base/R/Rprofile                 |   12 +
 win32/deps/library/base/R/base                     |   45 +-
 win32/deps/library/base/R/base.rdb                 |  Bin 729357 -> 721071 bytes
 win32/deps/library/base/R/base.rdx                 |  Bin 12444 -> 12384 bytes
 win32/deps/library/base/demo/error.catching.R      |   13 +-
 win32/deps/library/base/demo/is.things.R           |    2 +-
 win32/deps/library/base/help/AnIndex               |   55 +-
 win32/deps/library/base/help/aliases.rds           |  Bin 10955 -> 11149 bytes
 win32/deps/library/base/help/base.rdb              |  Bin 1853302 -> 1875156 bytes
 win32/deps/library/base/help/base.rdx              |  Bin 8590 -> 8603 bytes
 win32/deps/library/base/help/paths.rds             |  Bin 2894 -> 2907 bytes
 win32/deps/library/base/html/00Index.html          |   76 +-
 .../deps/library/base/po/da/LC_MESSAGES/R-base.mo  |  Bin 30956 -> 0 bytes
 .../deps/library/base/po/de/LC_MESSAGES/R-base.mo  |  Bin 56538 -> 0 bytes
 .../library/base/po/en quot/LC_MESSAGES/R-base.mo  |  Bin 54616 -> 0 bytes
 .../deps/library/base/po/fr/LC_MESSAGES/R-base.mo  |  Bin 59345 -> 0 bytes
 .../deps/library/base/po/it/LC_MESSAGES/R-base.mo  |  Bin 29168 -> 0 bytes
 .../deps/library/base/po/ja/LC_MESSAGES/R-base.mo  |  Bin 66795 -> 0 bytes
 .../deps/library/base/po/ko/LC_MESSAGES/R-base.mo  |  Bin 62254 -> 0 bytes
 .../deps/library/base/po/nn/LC_MESSAGES/R-base.mo  |  Bin 55876 -> 0 bytes
 .../deps/library/base/po/pl/LC_MESSAGES/R-base.mo  |  Bin 59276 -> 0 bytes
 .../library/base/po/pt_BR/LC_MESSAGES/R-base.mo    |  Bin 45775 -> 0 bytes
 .../deps/library/base/po/ru/LC_MESSAGES/R-base.mo  |  Bin 55858 -> 0 bytes
 .../deps/library/base/po/tr/LC_MESSAGES/R-base.mo  |  Bin 882 -> 0 bytes
 .../library/base/po/zh_CN/LC_MESSAGES/R-base.mo    |  Bin 49375 -> 0 bytes
 win32/deps/library/boot/CITATION                   |   33 -
 win32/deps/library/boot/DESCRIPTION                |   25 -
 win32/deps/library/boot/INDEX                      |   76 -
 win32/deps/library/boot/Meta/Rd.rds                |  Bin 3407 -> 0 bytes
 win32/deps/library/boot/Meta/data.rds              |  Bin 1322 -> 0 bytes
 win32/deps/library/boot/Meta/hsearch.rds           |  Bin 3089 -> 0 bytes
 win32/deps/library/boot/Meta/links.rds             |  Bin 1164 -> 0 bytes
 win32/deps/library/boot/Meta/nsInfo.rds            |  Bin 493 -> 0 bytes
 win32/deps/library/boot/Meta/package.rds           |  Bin 1003 -> 0 bytes
 win32/deps/library/boot/NAMESPACE                  |   19 -
 win32/deps/library/boot/R/boot                     |    9 -
 win32/deps/library/boot/R/boot.rdb                 |  Bin 156279 -> 0 bytes
 win32/deps/library/boot/R/boot.rdx                 |  Bin 1290 -> 0 bytes
 win32/deps/library/boot/data/Rdata.rdb             |  Bin 52441 -> 0 bytes
 win32/deps/library/boot/data/Rdata.rds             |  Bin 469 -> 0 bytes
 win32/deps/library/boot/data/Rdata.rdx             |  Bin 749 -> 0 bytes
 win32/deps/library/boot/help/AnIndex               |  101 -
 win32/deps/library/boot/help/aliases.rds           |  Bin 744 -> 0 bytes
 win32/deps/library/boot/help/boot.rdb              |  Bin 316922 -> 0 bytes
 win32/deps/library/boot/help/boot.rdx              |  Bin 1967 -> 0 bytes
 win32/deps/library/boot/help/paths.rds             |  Bin 730 -> 0 bytes
 win32/deps/library/boot/html/00Index.html          |  221 -
 win32/deps/library/boot/html/R.css                 |   57 -
 .../deps/library/boot/po/de/LC_MESSAGES/R-boot.mo  |  Bin 8552 -> 0 bytes
 .../library/boot/po/en quot/LC_MESSAGES/R-boot.mo  |  Bin 8187 -> 0 bytes
 .../deps/library/boot/po/fr/LC_MESSAGES/R-boot.mo  |  Bin 8639 -> 0 bytes
 .../deps/library/boot/po/pl/LC_MESSAGES/R-boot.mo  |  Bin 7329 -> 0 bytes
 .../deps/library/boot/po/ru/LC_MESSAGES/R-boot.mo  |  Bin 6520 -> 0 bytes
 .../library/boot/tests/Examples/boot-Ex.Rout.save  | 2029 --------
 win32/deps/library/class/CITATION                  |   18 -
 win32/deps/library/class/DESCRIPTION               |   18 -
 win32/deps/library/class/INDEX                     |   16 -
 win32/deps/library/class/LICENCE                   |   43 -
 win32/deps/library/class/Meta/Rd.rds               |  Bin 667 -> 0 bytes
 win32/deps/library/class/Meta/hsearch.rds          |  Bin 640 -> 0 bytes
 win32/deps/library/class/Meta/links.rds            |  Bin 270 -> 0 bytes
 win32/deps/library/class/Meta/nsInfo.rds           |  Bin 387 -> 0 bytes
 win32/deps/library/class/Meta/package.rds          |  Bin 745 -> 0 bytes
 win32/deps/library/class/NAMESPACE                 |   10 -
 win32/deps/library/class/NEWS                      |   14 -
 win32/deps/library/class/R/class                   |    9 -
 win32/deps/library/class/R/class.rdb               |  Bin 22898 -> 0 bytes
 win32/deps/library/class/R/class.rdx               |  Bin 480 -> 0 bytes
 win32/deps/library/class/help/AnIndex              |   17 -
 win32/deps/library/class/help/aliases.rds          |  Bin 176 -> 0 bytes
 win32/deps/library/class/help/class.rdb            |  Bin 39440 -> 0 bytes
 win32/deps/library/class/help/class.rdx            |  Bin 437 -> 0 bytes
 win32/deps/library/class/help/paths.rds            |  Bin 213 -> 0 bytes
 win32/deps/library/class/html/00Index.html         |   58 -
 win32/deps/library/class/html/R.css                |   57 -
 win32/deps/library/class/libs/i386/class.dll       |  Bin 17920 -> 0 bytes
 .../library/class/po/de/LC_MESSAGES/R-class.mo     |  Bin 1920 -> 0 bytes
 .../class/po/en quot/LC_MESSAGES/R-class.mo        |  Bin 1736 -> 0 bytes
 .../library/class/po/fr/LC_MESSAGES/R-class.mo     |  Bin 1891 -> 0 bytes
 .../library/class/po/pl/LC_MESSAGES/R-class.mo     |  Bin 2040 -> 0 bytes
 .../class/tests/Examples/class-Ex.Rout.save        |  580 ---
 win32/deps/library/cluster/CITATION                |   27 -
 win32/deps/library/cluster/DESCRIPTION             |   22 -
 win32/deps/library/cluster/INDEX                   |   65 -
 win32/deps/library/cluster/Meta/Rd.rds             |  Bin 2236 -> 0 bytes
 win32/deps/library/cluster/Meta/data.rds           |  Bin 344 -> 0 bytes
 win32/deps/library/cluster/Meta/hsearch.rds        |  Bin 2143 -> 0 bytes
 win32/deps/library/cluster/Meta/links.rds          |  Bin 945 -> 0 bytes
 win32/deps/library/cluster/Meta/nsInfo.rds         |  Bin 692 -> 0 bytes
 win32/deps/library/cluster/Meta/package.rds        |  Bin 869 -> 0 bytes
 win32/deps/library/cluster/NAMESPACE               |   76 -
 win32/deps/library/cluster/R/cluster               |    9 -
 win32/deps/library/cluster/R/cluster.rdb           |  Bin 119608 -> 0 bytes
 win32/deps/library/cluster/R/cluster.rdx           |  Bin 1208 -> 0 bytes
 win32/deps/library/cluster/data/Rdata.rdb          |  Bin 43277 -> 0 bytes
 win32/deps/library/cluster/data/Rdata.rds          |  Bin 166 -> 0 bytes
 win32/deps/library/cluster/data/Rdata.rdx          |  Bin 268 -> 0 bytes
 win32/deps/library/cluster/help/AnIndex            |   83 -
 win32/deps/library/cluster/help/aliases.rds        |  Bin 666 -> 0 bytes
 win32/deps/library/cluster/help/cluster.rdb        |  Bin 228260 -> 0 bytes
 win32/deps/library/cluster/help/cluster.rdx        |  Bin 1307 -> 0 bytes
 win32/deps/library/cluster/help/paths.rds          |  Bin 530 -> 0 bytes
 win32/deps/library/cluster/html/00Index.html       |  187 -
 win32/deps/library/cluster/html/R.css              |   57 -
 win32/deps/library/cluster/libs/i386/cluster.dll   |  Bin 59904 -> 0 bytes
 .../library/cluster/po/de/LC_MESSAGES/R-cluster.mo |  Bin 10744 -> 0 bytes
 .../cluster/po/en quot/LC_MESSAGES/R-cluster.mo    |  Bin 10590 -> 0 bytes
 .../library/cluster/po/pl/LC_MESSAGES/R-cluster.mo |  Bin 11053 -> 0 bytes
 win32/deps/library/cluster/tests/agnes-ex.R        |   35 -
 .../deps/library/cluster/tests/agnes-ex.Rout.save  |  610 ---
 win32/deps/library/cluster/tests/clara-NAs.R       |   46 -
 .../deps/library/cluster/tests/clara-NAs.Rout.save |  635 ---
 win32/deps/library/cluster/tests/clara-ex.R        |   23 -
 win32/deps/library/cluster/tests/clara.R           |  107 -
 win32/deps/library/cluster/tests/clara.Rout.save   | 1491 ------
 win32/deps/library/cluster/tests/clusplot-out.R    |   29 -
 .../library/cluster/tests/clusplot-out.Rout.save   |  121 -
 win32/deps/library/cluster/tests/daisy-ex.R        |  110 -
 .../deps/library/cluster/tests/daisy-ex.Rout.save  |  927 ----
 win32/deps/library/cluster/tests/diana-boots.R     |   31 -
 win32/deps/library/cluster/tests/diana-ex.R        |   31 -
 .../deps/library/cluster/tests/diana-ex.Rout.save  |  545 --
 win32/deps/library/cluster/tests/ellipsoid-ex.R    |   27 -
 .../library/cluster/tests/ellipsoid-ex.Rout.save   |  207 -
 win32/deps/library/cluster/tests/fanny-ex.R        |   72 -
 win32/deps/library/cluster/tests/mona.R            |   23 -
 win32/deps/library/cluster/tests/mona.Rout.save    |  118 -
 win32/deps/library/cluster/tests/pam.R             |  165 -
 win32/deps/library/cluster/tests/pam.Rout.save     | 1343 -----
 .../library/cluster/tests/silhouette-default.R     |   83 -
 .../cluster/tests/silhouette-default.Rout.save     |  616 ---
 win32/deps/library/cluster/tests/sweep-ex.R        |   69 -
 win32/deps/library/codetools/DESCRIPTION           |   13 -
 win32/deps/library/codetools/INDEX                 |    5 -
 win32/deps/library/codetools/Meta/Rd.rds           |  Bin 528 -> 0 bytes
 win32/deps/library/codetools/Meta/hsearch.rds      |  Bin 571 -> 0 bytes
 win32/deps/library/codetools/Meta/links.rds        |  Bin 301 -> 0 bytes
 win32/deps/library/codetools/Meta/nsInfo.rds       |  Bin 341 -> 0 bytes
 win32/deps/library/codetools/Meta/package.rds      |  Bin 587 -> 0 bytes
 win32/deps/library/codetools/NAMESPACE             |   18 -
 win32/deps/library/codetools/R/codetools           |    9 -
 win32/deps/library/codetools/R/codetools.rdb       |  Bin 54615 -> 0 bytes
 win32/deps/library/codetools/R/codetools.rdx       |  Bin 1509 -> 0 bytes
 win32/deps/library/codetools/help/AnIndex          |   20 -
 win32/deps/library/codetools/help/aliases.rds      |  Bin 266 -> 0 bytes
 win32/deps/library/codetools/help/codetools.rdb    |  Bin 9580 -> 0 bytes
 win32/deps/library/codetools/help/codetools.rdx    |  Bin 235 -> 0 bytes
 win32/deps/library/codetools/help/paths.rds        |  Bin 147 -> 0 bytes
 win32/deps/library/codetools/html/00Index.html     |   63 -
 win32/deps/library/codetools/html/R.css            |   57 -
 win32/deps/library/codetools/tests/tests.R         |   90 -
 win32/deps/library/compiler/DESCRIPTION            |    9 -
 win32/deps/library/compiler/INDEX                  |    1 -
 win32/deps/library/compiler/Meta/Rd.rds            |  Bin 300 -> 0 bytes
 win32/deps/library/compiler/Meta/hsearch.rds       |  Bin 369 -> 0 bytes
 win32/deps/library/compiler/Meta/links.rds         |  Bin 207 -> 0 bytes
 win32/deps/library/compiler/Meta/nsInfo.rds        |  Bin 250 -> 0 bytes
 win32/deps/library/compiler/Meta/package.rds       |  Bin 477 -> 0 bytes
 win32/deps/library/compiler/NAMESPACE              |    4 -
 win32/deps/library/compiler/R/compiler             |    9 -
 win32/deps/library/compiler/R/compiler.rdb         |  Bin 112850 -> 0 bytes
 win32/deps/library/compiler/R/compiler.rdx         |  Bin 2989 -> 0 bytes
 win32/deps/library/compiler/help/AnIndex           |    9 -
 win32/deps/library/compiler/help/aliases.rds       |  Bin 143 -> 0 bytes
 win32/deps/library/compiler/help/compiler.rdb      |  Bin 6867 -> 0 bytes
 win32/deps/library/compiler/help/compiler.rdx      |  Bin 148 -> 0 bytes
 win32/deps/library/compiler/help/paths.rds         |  Bin 100 -> 0 bytes
 win32/deps/library/compiler/html/00Index.html      |   41 -
 win32/deps/library/compiler/html/R.css             |   57 -
 .../compiler/po/da/LC_MESSAGES/R-compiler.mo       |  Bin 3490 -> 0 bytes
 .../compiler/po/de/LC_MESSAGES/R-compiler.mo       |  Bin 3616 -> 0 bytes
 .../compiler/po/en quot/LC_MESSAGES/R-compiler.mo  |  Bin 3426 -> 0 bytes
 .../compiler/po/fr/LC_MESSAGES/R-compiler.mo       |  Bin 3948 -> 0 bytes
 .../compiler/po/ja/LC_MESSAGES/R-compiler.mo       |  Bin 4282 -> 0 bytes
 .../compiler/po/ko/LC_MESSAGES/R-compiler.mo       |  Bin 3902 -> 0 bytes
 .../compiler/po/pl/LC_MESSAGES/R-compiler.mo       |  Bin 3889 -> 0 bytes
 .../compiler/po/pt_BR/LC_MESSAGES/R-compiler.mo    |  Bin 3824 -> 0 bytes
 .../compiler/po/ru/LC_MESSAGES/R-compiler.mo       |  Bin 5000 -> 0 bytes
 .../compiler/po/zh_CN/LC_MESSAGES/R-compiler.mo    |  Bin 3327 -> 0 bytes
 win32/deps/library/compiler/tests/assign.R         |  148 -
 win32/deps/library/compiler/tests/basics.R         |  101 -
 win32/deps/library/compiler/tests/const.R          |   65 -
 win32/deps/library/compiler/tests/envir.R          |   90 -
 win32/deps/library/compiler/tests/jit.R            |   16 -
 win32/deps/library/compiler/tests/loop.R           |   26 -
 win32/deps/library/compiler/tests/switch.R         |   86 -
 win32/deps/library/datasets/DESCRIPTION            |    6 +-
 win32/deps/library/datasets/INDEX                  |    1 +
 win32/deps/library/datasets/Meta/Rd.rds            |  Bin 3593 -> 3638 bytes
 win32/deps/library/datasets/Meta/data.rds          |  Bin 2641 -> 2665 bytes
 win32/deps/library/datasets/Meta/hsearch.rds       |  Bin 3197 -> 3227 bytes
 win32/deps/library/datasets/Meta/links.rds         |  Bin 1343 -> 1352 bytes
 win32/deps/library/datasets/Meta/nsInfo.rds        |  Bin 179 -> 179 bytes
 win32/deps/library/datasets/Meta/package.rds       |  Bin 465 -> 469 bytes
 win32/deps/library/datasets/data/Rdata.rdb         |  Bin 111904 -> 112228 bytes
 win32/deps/library/datasets/data/Rdata.rds         |  Bin 1043 -> 1049 bytes
 win32/deps/library/datasets/data/Rdata.rdx         |  Bin 1509 -> 1520 bytes
 win32/deps/library/datasets/help/AnIndex           |    1 +
 win32/deps/library/datasets/help/aliases.rds       |  Bin 885 -> 889 bytes
 win32/deps/library/datasets/help/datasets.rdb      |  Bin 191772 -> 194122 bytes
 win32/deps/library/datasets/help/datasets.rdx      |  Bin 1999 -> 2031 bytes
 win32/deps/library/datasets/help/paths.rds         |  Bin 818 -> 822 bytes
 win32/deps/library/datasets/html/00Index.html      |    4 +-
 win32/deps/library/fields/DESCRIPTION              |   33 -
 win32/deps/library/fields/INDEX                    |  122 -
 win32/deps/library/fields/LICENSE                  |   11 -
 win32/deps/library/fields/MD5                      |   37 -
 win32/deps/library/fields/Meta/Rd.rds              |  Bin 4959 -> 0 bytes
 win32/deps/library/fields/Meta/data.rds            |  Bin 639 -> 0 bytes
 win32/deps/library/fields/Meta/hsearch.rds         |  Bin 4834 -> 0 bytes
 win32/deps/library/fields/Meta/links.rds           |  Bin 2476 -> 0 bytes
 win32/deps/library/fields/Meta/nsInfo.rds          |  Bin 367 -> 0 bytes
 win32/deps/library/fields/Meta/package.rds         |  Bin 1267 -> 0 bytes
 win32/deps/library/fields/NAMESPACE                |   12 -
 win32/deps/library/fields/R/fields                 |    9 -
 win32/deps/library/fields/R/fields.rdb             |  Bin 131217 -> 0 bytes
 win32/deps/library/fields/R/fields.rdx             |  Bin 2972 -> 0 bytes
 win32/deps/library/fields/data/CO2.rda             |  Bin 455372 -> 0 bytes
 win32/deps/library/fields/data/COmonthlyMet.rda    |  Bin 681966 -> 0 bytes
 .../library/fields/data/NorthAmericanRainfall.rda  |  Bin 74279 -> 0 bytes
 win32/deps/library/fields/data/PRISMelevation.rda  |  Bin 667593 -> 0 bytes
 win32/deps/library/fields/data/RCMexample.rda      |  Bin 161424 -> 0 bytes
 win32/deps/library/fields/data/RMelevation.rda     |  Bin 94458 -> 0 bytes
 win32/deps/library/fields/data/US.dat.rda          |  Bin 44988 -> 0 bytes
 win32/deps/library/fields/data/WorldBankCO2.rda    |  Bin 3214 -> 0 bytes
 win32/deps/library/fields/data/datalist            |   11 -
 win32/deps/library/fields/data/lennon.rda          |  Bin 38012 -> 0 bytes
 win32/deps/library/fields/data/ozone2.rda          |  Bin 22876 -> 0 bytes
 win32/deps/library/fields/data/rat.diet.rda        |  Bin 579 -> 0 bytes
 win32/deps/library/fields/data/world.dat.rda       |  Bin 15254 -> 0 bytes
 win32/deps/library/fields/help/AnIndex             |  274 -
 win32/deps/library/fields/help/aliases.rds         |  Bin 2255 -> 0 bytes
 win32/deps/library/fields/help/fields.rdb          |  Bin 356112 -> 0 bytes
 win32/deps/library/fields/help/fields.rdx          |  Bin 1911 -> 0 bytes
 win32/deps/library/fields/help/paths.rds           |  Bin 734 -> 0 bytes
 win32/deps/library/fields/html/00Index.html        |  557 ---
 win32/deps/library/fields/html/R.css               |   57 -
 win32/deps/library/fields/libs/i386/fields.dll     |  Bin 39424 -> 0 bytes
 win32/deps/library/fields/libs/i386/symbols.rds    |  Bin 878 -> 0 bytes
 win32/deps/library/fields/libs/x64/fields.dll      |  Bin 46592 -> 0 bytes
 win32/deps/library/fields/libs/x64/symbols.rds     |  Bin 867 -> 0 bytes
 win32/deps/library/foreign/DESCRIPTION             |   46 -
 win32/deps/library/foreign/INDEX                   |   18 -
 win32/deps/library/foreign/LICENCE                 |    7 -
 win32/deps/library/foreign/Meta/Rd.rds             |  Bin 739 -> 0 bytes
 win32/deps/library/foreign/Meta/hsearch.rds        |  Bin 716 -> 0 bytes
 win32/deps/library/foreign/Meta/links.rds          |  Bin 287 -> 0 bytes
 win32/deps/library/foreign/Meta/nsInfo.rds         |  Bin 392 -> 0 bytes
 win32/deps/library/foreign/Meta/package.rds        |  Bin 1176 -> 0 bytes
 win32/deps/library/foreign/NAMESPACE               |   10 -
 win32/deps/library/foreign/R/foreign               |    9 -
 win32/deps/library/foreign/R/foreign.rdb           |  Bin 66577 -> 0 bytes
 win32/deps/library/foreign/R/foreign.rdx           |  Bin 672 -> 0 bytes
 win32/deps/library/foreign/files/HillRace.SYD      |  Bin 2070 -> 0 bytes
 win32/deps/library/foreign/files/Iris.syd          |  Bin 6462 -> 0 bytes
 win32/deps/library/foreign/files/sids.dbf          |  Bin 17282 -> 0 bytes
 win32/deps/library/foreign/help/AnIndex            |   17 -
 win32/deps/library/foreign/help/aliases.rds        |  Bin 194 -> 0 bytes
 win32/deps/library/foreign/help/foreign.rdb        |  Bin 49842 -> 0 bytes
 win32/deps/library/foreign/help/foreign.rdx        |  Bin 468 -> 0 bytes
 win32/deps/library/foreign/help/paths.rds          |  Bin 228 -> 0 bytes
 win32/deps/library/foreign/html/00Index.html       |   59 -
 win32/deps/library/foreign/html/R.css              |   57 -
 win32/deps/library/foreign/libs/i386/foreign.dll   |  Bin 120832 -> 0 bytes
 .../library/foreign/po/de/LC_MESSAGES/R-foreign.mo |  Bin 4986 -> 0 bytes
 .../library/foreign/po/de/LC_MESSAGES/foreign.mo   |  Bin 21879 -> 0 bytes
 .../foreign/po/en quot/LC_MESSAGES/R-foreign.mo    |  Bin 4615 -> 0 bytes
 .../foreign/po/en quot/LC_MESSAGES/foreign.mo      |  Bin 20384 -> 0 bytes
 .../library/foreign/po/fr/LC_MESSAGES/R-foreign.mo |  Bin 5260 -> 0 bytes
 .../library/foreign/po/fr/LC_MESSAGES/foreign.mo   |  Bin 23301 -> 0 bytes
 .../library/foreign/po/pl/LC_MESSAGES/R-foreign.mo |  Bin 5189 -> 0 bytes
 .../library/foreign/po/pl/LC_MESSAGES/foreign.mo   |  Bin 22061 -> 0 bytes
 win32/deps/library/foreign/tests/Alfalfa.xpt       |  Bin 3520 -> 0 bytes
 win32/deps/library/foreign/tests/S3.R              |    9 -
 win32/deps/library/foreign/tests/S3.Rout.save      |   59 -
 win32/deps/library/foreign/tests/arff.R            |    5 -
 win32/deps/library/foreign/tests/arff.Rout.save    |   36 -
 win32/deps/library/foreign/tests/auto8.dta         |  Bin 5781 -> 0 bytes
 win32/deps/library/foreign/tests/compressed.dta    |  Bin 38646 -> 0 bytes
 .../deps/library/foreign/tests/contact-lenses.arff |   85 -
 win32/deps/library/foreign/tests/create-dumpdata.S |    5 -
 win32/deps/library/foreign/tests/datefactor.dta    |  Bin 1205 -> 0 bytes
 win32/deps/library/foreign/tests/download.R        |    9 -
 win32/deps/library/foreign/tests/dumpdata          |   60 -
 win32/deps/library/foreign/tests/electric.por      |  123 -
 win32/deps/library/foreign/tests/electric.sav      |  Bin 12388 -> 0 bytes
 win32/deps/library/foreign/tests/ex1-51.mtp        |   15 -
 win32/deps/library/foreign/tests/minitab.R         |    7 -
 win32/deps/library/foreign/tests/minitab.Rout.save |   37 -
 win32/deps/library/foreign/tests/mySobj            |  Bin 293 -> 0 bytes
 win32/deps/library/foreign/tests/octave.R          |    5 -
 win32/deps/library/foreign/tests/octave.Rout.save  |   61 -
 win32/deps/library/foreign/tests/octave.dat        |  122 -
 win32/deps/library/foreign/tests/octave.m          |   22 -
 win32/deps/library/foreign/tests/pbc.por           |  340 --
 win32/deps/library/foreign/tests/pbc.sav           |  Bin 35232 -> 0 bytes
 win32/deps/library/foreign/tests/pbc.sys           |  Bin 42040 -> 0 bytes
 win32/deps/library/foreign/tests/pbcold.sav        |  Bin 35232 -> 0 bytes
 win32/deps/library/foreign/tests/pc5.dta           |  Bin 65013 -> 0 bytes
 win32/deps/library/foreign/tests/sample100.por     |  106 -
 win32/deps/library/foreign/tests/sample100.sav     |  Bin 11260 -> 0 bytes
 win32/deps/library/foreign/tests/sas.R             |   11 -
 win32/deps/library/foreign/tests/spss.R            |   52 -
 win32/deps/library/foreign/tests/spss.Rout.save    |  327 --
 win32/deps/library/foreign/tests/spss_long.sav     |  Bin 497 -> 0 bytes
 win32/deps/library/foreign/tests/stata.R           |   33 -
 win32/deps/library/foreign/tests/stata.Rout.save   |  308 --
 win32/deps/library/foreign/tests/stata7se.dta      |  Bin 603 -> 0 bytes
 win32/deps/library/foreign/tests/stata8mac.dta     |  Bin 603 -> 0 bytes
 win32/deps/library/foreign/tests/sun6.dta          |  Bin 37242 -> 0 bytes
 win32/deps/library/foreign/tests/test.xpt          |  Bin 1280 -> 0 bytes
 win32/deps/library/foreign/tests/tsdumpdata        |  455 --
 win32/deps/library/foreign/tests/xport.R           |    9 -
 win32/deps/library/foreign/tests/xport.Rout.save   |  115 -
 win32/deps/library/grDevices/DESCRIPTION           |    6 +-
 win32/deps/library/grDevices/Meta/Rd.rds           |  Bin 3089 -> 3088 bytes
 win32/deps/library/grDevices/Meta/hsearch.rds      |  Bin 3033 -> 3033 bytes
 win32/deps/library/grDevices/Meta/links.rds        |  Bin 1534 -> 1533 bytes
 win32/deps/library/grDevices/Meta/nsInfo.rds       |  Bin 1221 -> 1126 bytes
 win32/deps/library/grDevices/Meta/package.rds      |  Bin 521 -> 528 bytes
 win32/deps/library/grDevices/NAMESPACE             |   25 +-
 win32/deps/library/grDevices/R/grDevices           |   26 +-
 win32/deps/library/grDevices/R/grDevices.rdb       |  Bin 154510 -> 151415 bytes
 win32/deps/library/grDevices/R/grDevices.rdx       |  Bin 2501 -> 2504 bytes
 .../deps/library/grDevices/afm/CM_boldx_10.afm.gz  |  Bin 3053 -> 3053 bytes
 .../grDevices/afm/CM_boldx_italic_10.afm.gz        |  Bin 3149 -> 3149 bytes
 .../deps/library/grDevices/afm/CM_italic_10.afm.gz |  Bin 3048 -> 3048 bytes
 .../library/grDevices/afm/CM_regular_10.afm.gz     |  Bin 2953 -> 2953 bytes
 .../deps/library/grDevices/afm/CM_symbol_10.afm.gz |  Bin 2254 -> 2254 bytes
 .../deps/library/grDevices/afm/Courier-Bold.afm.gz |  Bin 3984 -> 3984 bytes
 .../grDevices/afm/Courier-BoldOblique.afm.gz       |  Bin 4112 -> 4112 bytes
 .../library/grDevices/afm/Courier-Oblique.afm.gz   |  Bin 4102 -> 4102 bytes
 win32/deps/library/grDevices/afm/Courier.afm.gz    |  Bin 3973 -> 3973 bytes
 .../library/grDevices/afm/Helvetica-Bold.afm.gz    |  Bin 13003 -> 13003 bytes
 .../grDevices/afm/Helvetica-BoldOblique.afm.gz     |  Bin 13213 -> 13213 bytes
 .../library/grDevices/afm/Helvetica-Oblique.afm.gz |  Bin 13825 -> 13825 bytes
 win32/deps/library/grDevices/afm/Helvetica.afm.gz  |  Bin 13638 -> 13638 bytes
 win32/deps/library/grDevices/afm/Symbol.afm.gz     |  Bin 3443 -> 3443 bytes
 win32/deps/library/grDevices/afm/Times-Bold.afm.gz |  Bin 12329 -> 12329 bytes
 .../library/grDevices/afm/Times-BoldItalic.afm.gz  |  Bin 11711 -> 11711 bytes
 .../deps/library/grDevices/afm/Times-Italic.afm.gz |  Bin 12658 -> 12658 bytes
 .../deps/library/grDevices/afm/Times-Roman.afm.gz  |  Bin 11845 -> 11845 bytes
 .../deps/library/grDevices/afm/ZapfDingbats.afm.gz |  Bin 2544 -> 2544 bytes
 win32/deps/library/grDevices/afm/a010013l.afm.gz   |  Bin 10225 -> 10225 bytes
 win32/deps/library/grDevices/afm/a010015l.afm.gz   |  Bin 10048 -> 10048 bytes
 win32/deps/library/grDevices/afm/a010033l.afm.gz   |  Bin 10273 -> 10273 bytes
 win32/deps/library/grDevices/afm/a010035l.afm.gz   |  Bin 10190 -> 10190 bytes
 win32/deps/library/grDevices/afm/agd_____.afm.gz   |  Bin 4903 -> 4903 bytes
 win32/deps/library/grDevices/afm/agdo____.afm.gz   |  Bin 4978 -> 4978 bytes
 win32/deps/library/grDevices/afm/agw_____.afm.gz   |  Bin 5059 -> 5059 bytes
 win32/deps/library/grDevices/afm/agwo____.afm.gz   |  Bin 5139 -> 5139 bytes
 win32/deps/library/grDevices/afm/b018012l.afm.gz   |  Bin 10253 -> 10253 bytes
 win32/deps/library/grDevices/afm/b018015l.afm.gz   |  Bin 10087 -> 10087 bytes
 win32/deps/library/grDevices/afm/b018032l.afm.gz   |  Bin 10361 -> 10361 bytes
 win32/deps/library/grDevices/afm/b018035l.afm.gz   |  Bin 10359 -> 10359 bytes
 win32/deps/library/grDevices/afm/bkd_____.afm.gz   |  Bin 4254 -> 4254 bytes
 win32/deps/library/grDevices/afm/bkdi____.afm.gz   |  Bin 4369 -> 4369 bytes
 win32/deps/library/grDevices/afm/bkl_____.afm.gz   |  Bin 4257 -> 4257 bytes
 win32/deps/library/grDevices/afm/bkli____.afm.gz   |  Bin 4331 -> 4331 bytes
 win32/deps/library/grDevices/afm/c059013l.afm.gz   |  Bin 10343 -> 10343 bytes
 win32/deps/library/grDevices/afm/c059016l.afm.gz   |  Bin 10247 -> 10247 bytes
 win32/deps/library/grDevices/afm/c059033l.afm.gz   |  Bin 10540 -> 10540 bytes
 win32/deps/library/grDevices/afm/c059036l.afm.gz   |  Bin 10474 -> 10474 bytes
 win32/deps/library/grDevices/afm/cmbxti10.afm.gz   |  Bin 2937 -> 2937 bytes
 win32/deps/library/grDevices/afm/cmti10.afm.gz     |  Bin 2915 -> 2915 bytes
 win32/deps/library/grDevices/afm/cob_____.afm.gz   |  Bin 3973 -> 3973 bytes
 win32/deps/library/grDevices/afm/cobo____.afm.gz   |  Bin 4084 -> 4084 bytes
 win32/deps/library/grDevices/afm/com_____.afm.gz   |  Bin 3972 -> 3972 bytes
 win32/deps/library/grDevices/afm/coo_____.afm.gz   |  Bin 4092 -> 4092 bytes
 win32/deps/library/grDevices/afm/hv______.afm.gz   |  Bin 4826 -> 4826 bytes
 win32/deps/library/grDevices/afm/hvb_____.afm.gz   |  Bin 4691 -> 4691 bytes
 win32/deps/library/grDevices/afm/hvbo____.afm.gz   |  Bin 4833 -> 4833 bytes
 win32/deps/library/grDevices/afm/hvn_____.afm.gz   |  Bin 4810 -> 4810 bytes
 win32/deps/library/grDevices/afm/hvnb____.afm.gz   |  Bin 4675 -> 4675 bytes
 win32/deps/library/grDevices/afm/hvnbo___.afm.gz   |  Bin 4826 -> 4826 bytes
 win32/deps/library/grDevices/afm/hvno____.afm.gz   |  Bin 4963 -> 4963 bytes
 win32/deps/library/grDevices/afm/hvo_____.afm.gz   |  Bin 4977 -> 4977 bytes
 win32/deps/library/grDevices/afm/n019003l.afm.gz   |  Bin 10217 -> 10217 bytes
 win32/deps/library/grDevices/afm/n019004l.afm.gz   |  Bin 10045 -> 10045 bytes
 win32/deps/library/grDevices/afm/n019023l.afm.gz   |  Bin 10484 -> 10484 bytes
 win32/deps/library/grDevices/afm/n019024l.afm.gz   |  Bin 10323 -> 10323 bytes
 win32/deps/library/grDevices/afm/n019043l.afm.gz   |  Bin 10095 -> 10095 bytes
 win32/deps/library/grDevices/afm/n019044l.afm.gz   |  Bin 9785 -> 9785 bytes
 win32/deps/library/grDevices/afm/n019063l.afm.gz   |  Bin 10284 -> 10284 bytes
 win32/deps/library/grDevices/afm/n019064l.afm.gz   |  Bin 10166 -> 10166 bytes
 win32/deps/library/grDevices/afm/n021003l.afm.gz   |  Bin 10539 -> 10539 bytes
 win32/deps/library/grDevices/afm/n021004l.afm.gz   |  Bin 10355 -> 10355 bytes
 win32/deps/library/grDevices/afm/n021023l.afm.gz   |  Bin 10545 -> 10545 bytes
 win32/deps/library/grDevices/afm/n021024l.afm.gz   |  Bin 10525 -> 10525 bytes
 win32/deps/library/grDevices/afm/n022003l.afm.gz   |  Bin 5477 -> 5477 bytes
 win32/deps/library/grDevices/afm/n022004l.afm.gz   |  Bin 5574 -> 5574 bytes
 win32/deps/library/grDevices/afm/n022023l.afm.gz   |  Bin 5872 -> 5872 bytes
 win32/deps/library/grDevices/afm/n022024l.afm.gz   |  Bin 5854 -> 5854 bytes
 win32/deps/library/grDevices/afm/ncb_____.afm.gz   |  Bin 4281 -> 4281 bytes
 win32/deps/library/grDevices/afm/ncbi____.afm.gz   |  Bin 4921 -> 4921 bytes
 win32/deps/library/grDevices/afm/nci_____.afm.gz   |  Bin 4519 -> 4519 bytes
 win32/deps/library/grDevices/afm/ncr_____.afm.gz   |  Bin 4453 -> 4453 bytes
 win32/deps/library/grDevices/afm/p052003l.afm.gz   |  Bin 10421 -> 10421 bytes
 win32/deps/library/grDevices/afm/p052004l.afm.gz   |  Bin 10230 -> 10230 bytes
 win32/deps/library/grDevices/afm/p052023l.afm.gz   |  Bin 10524 -> 10524 bytes
 win32/deps/library/grDevices/afm/p052024l.afm.gz   |  Bin 10281 -> 10281 bytes
 win32/deps/library/grDevices/afm/pob_____.afm.gz   |  Bin 4395 -> 4395 bytes
 win32/deps/library/grDevices/afm/pobi____.afm.gz   |  Bin 4432 -> 4432 bytes
 win32/deps/library/grDevices/afm/poi_____.afm.gz   |  Bin 4454 -> 4454 bytes
 win32/deps/library/grDevices/afm/por_____.afm.gz   |  Bin 4486 -> 4486 bytes
 win32/deps/library/grDevices/afm/s050000l.afm.gz   |  Bin 3383 -> 3383 bytes
 win32/deps/library/grDevices/afm/sy______.afm.gz   |  Bin 3398 -> 3398 bytes
 win32/deps/library/grDevices/afm/tib_____.afm.gz   |  Bin 5005 -> 5005 bytes
 win32/deps/library/grDevices/afm/tibi____.afm.gz   |  Bin 5102 -> 5102 bytes
 win32/deps/library/grDevices/afm/tii_____.afm.gz   |  Bin 5107 -> 5107 bytes
 win32/deps/library/grDevices/afm/tir_____.afm.gz   |  Bin 4983 -> 4983 bytes
 win32/deps/library/grDevices/help/aliases.rds      |  Bin 1291 -> 1291 bytes
 win32/deps/library/grDevices/help/grDevices.rdb    |  Bin 310263 -> 311200 bytes
 win32/deps/library/grDevices/help/grDevices.rdx    |  Bin 1596 -> 1596 bytes
 win32/deps/library/grDevices/help/paths.rds        |  Bin 646 -> 643 bytes
 win32/deps/library/grDevices/html/00Index.html     |    3 +-
 win32/deps/library/grDevices/libs/i386/Rbitmap.dll |  Bin 536576 -> 539648 bytes
 .../deps/library/grDevices/libs/i386/grDevices.dll |  Bin 239616 -> 304128 bytes
 .../deps/library/grDevices/libs/i386/winCairo.dll  |  Bin 993280 -> 992768 bytes
 .../grDevices/po/da/LC_MESSAGES/R-grDevices.mo     |  Bin 12591 -> 0 bytes
 .../grDevices/po/da/LC_MESSAGES/grDevices.mo       |  Bin 13555 -> 0 bytes
 .../grDevices/po/de/LC_MESSAGES/R-grDevices.mo     |  Bin 13006 -> 0 bytes
 .../grDevices/po/de/LC_MESSAGES/grDevices.mo       |  Bin 14960 -> 0 bytes
 .../po/en quot/LC_MESSAGES/R-grDevices.mo          |  Bin 12352 -> 0 bytes
 .../grDevices/po/en quot/LC_MESSAGES/grDevices.mo  |  Bin 13930 -> 0 bytes
 .../grDevices/po/en_GB/LC_MESSAGES/R-grDevices.mo  |  Bin 506 -> 0 bytes
 .../grDevices/po/en_GB/LC_MESSAGES/grDevices.mo    |  Bin 847 -> 0 bytes
 .../grDevices/po/fr/LC_MESSAGES/R-grDevices.mo     |  Bin 13623 -> 0 bytes
 .../grDevices/po/fr/LC_MESSAGES/grDevices.mo       |  Bin 15459 -> 0 bytes
 .../grDevices/po/it/LC_MESSAGES/R-grDevices.mo     |  Bin 7454 -> 0 bytes
 .../grDevices/po/it/LC_MESSAGES/grDevices.mo       |  Bin 7834 -> 0 bytes
 .../grDevices/po/ja/LC_MESSAGES/R-grDevices.mo     |  Bin 15081 -> 0 bytes
 .../grDevices/po/ja/LC_MESSAGES/grDevices.mo       |  Bin 17700 -> 0 bytes
 .../grDevices/po/ko/LC_MESSAGES/R-grDevices.mo     |  Bin 14623 -> 0 bytes
 .../grDevices/po/ko/LC_MESSAGES/grDevices.mo       |  Bin 16637 -> 0 bytes
 .../grDevices/po/pl/LC_MESSAGES/R-grDevices.mo     |  Bin 13806 -> 0 bytes
 .../grDevices/po/pl/LC_MESSAGES/grDevices.mo       |  Bin 15395 -> 0 bytes
 .../grDevices/po/pt_BR/LC_MESSAGES/R-grDevices.mo  |  Bin 12083 -> 0 bytes
 .../grDevices/po/pt_BR/LC_MESSAGES/grDevices.mo    |  Bin 2888 -> 0 bytes
 .../grDevices/po/ru/LC_MESSAGES/R-grDevices.mo     |  Bin 13215 -> 0 bytes
 .../grDevices/po/ru/LC_MESSAGES/grDevices.mo       |  Bin 14500 -> 0 bytes
 .../grDevices/po/zh_CN/LC_MESSAGES/R-grDevices.mo  |  Bin 11631 -> 0 bytes
 .../grDevices/po/zh_CN/LC_MESSAGES/grDevices.mo    |  Bin 13271 -> 0 bytes
 .../library/grDevices/tests/ps-tests.Rout.save     |   11 +-
 .../library/grDevices/tests/xfig-tests.Rout.save   |    9 +-
 win32/deps/library/graphics/DESCRIPTION            |    6 +-
 win32/deps/library/graphics/Meta/Rd.rds            |  Bin 3161 -> 3165 bytes
 win32/deps/library/graphics/Meta/demo.rds          |  Bin 261 -> 260 bytes
 win32/deps/library/graphics/Meta/hsearch.rds       |  Bin 3125 -> 3131 bytes
 win32/deps/library/graphics/Meta/links.rds         |  Bin 1310 -> 1309 bytes
 win32/deps/library/graphics/Meta/nsInfo.rds        |  Bin 869 -> 1142 bytes
 win32/deps/library/graphics/Meta/package.rds       |  Bin 511 -> 535 bytes
 win32/deps/library/graphics/NAMESPACE              |   38 +-
 win32/deps/library/graphics/R/graphics             |   26 +-
 win32/deps/library/graphics/R/graphics.rdb         |  Bin 246572 -> 249220 bytes
 win32/deps/library/graphics/R/graphics.rdx         |  Bin 1770 -> 1782 bytes
 win32/deps/library/graphics/demo/plotmath.R        |    7 +-
 win32/deps/library/graphics/help/aliases.rds       |  Bin 988 -> 988 bytes
 win32/deps/library/graphics/help/graphics.rdb      |  Bin 451705 -> 454831 bytes
 win32/deps/library/graphics/help/graphics.rdx      |  Bin 1642 -> 1647 bytes
 win32/deps/library/graphics/help/paths.rds         |  Bin 608 -> 603 bytes
 win32/deps/library/graphics/html/00Index.html      |    2 +-
 .../graphics/po/da/LC_MESSAGES/R-graphics.mo       |  Bin 1255 -> 0 bytes
 .../graphics/po/de/LC_MESSAGES/R-graphics.mo       |  Bin 14924 -> 0 bytes
 .../graphics/po/en quot/LC_MESSAGES/R-graphics.mo  |  Bin 14366 -> 0 bytes
 .../graphics/po/fr/LC_MESSAGES/R-graphics.mo       |  Bin 15267 -> 0 bytes
 .../graphics/po/it/LC_MESSAGES/R-graphics.mo       |  Bin 10368 -> 0 bytes
 .../graphics/po/ja/LC_MESSAGES/R-graphics.mo       |  Bin 17179 -> 0 bytes
 .../graphics/po/ko/LC_MESSAGES/R-graphics.mo       |  Bin 16882 -> 0 bytes
 .../graphics/po/pl/LC_MESSAGES/R-graphics.mo       |  Bin 15486 -> 0 bytes
 .../graphics/po/pt_BR/LC_MESSAGES/R-graphics.mo    |  Bin 13893 -> 0 bytes
 .../graphics/po/ru/LC_MESSAGES/R-graphics.mo       |  Bin 15030 -> 0 bytes
 .../graphics/po/zh_CN/LC_MESSAGES/R-graphics.mo    |  Bin 13422 -> 0 bytes
 win32/deps/library/grid/DESCRIPTION                |   12 -
 win32/deps/library/grid/INDEX                      |   91 -
 win32/deps/library/grid/Meta/Rd.rds                |  Bin 3246 -> 0 bytes
 win32/deps/library/grid/Meta/hsearch.rds           |  Bin 3159 -> 0 bytes
 win32/deps/library/grid/Meta/links.rds             |  Bin 1732 -> 0 bytes
 win32/deps/library/grid/Meta/nsInfo.rds            |  Bin 1847 -> 0 bytes
 win32/deps/library/grid/Meta/package.rds           |  Bin 597 -> 0 bytes
 win32/deps/library/grid/Meta/vignette.rds          |  Bin 603 -> 0 bytes
 win32/deps/library/grid/NAMESPACE                  |  368 --
 win32/deps/library/grid/R/grid                     |    9 -
 win32/deps/library/grid/R/grid.rdb                 |  Bin 346827 -> 0 bytes
 win32/deps/library/grid/R/grid.rdx                 |  Bin 8002 -> 0 bytes
 win32/deps/library/grid/doc/changes.txt            | 1374 -----
 win32/deps/library/grid/doc/displaylist.R          |  130 -
 win32/deps/library/grid/doc/displaylist.Rnw        |  243 -
 win32/deps/library/grid/doc/displaylist.pdf        |  Bin 157254 -> 0 bytes
 win32/deps/library/grid/doc/frame.R                |  148 -
 win32/deps/library/grid/doc/frame.Rnw              |  384 --
 win32/deps/library/grid/doc/frame.pdf              |  Bin 155783 -> 0 bytes
 win32/deps/library/grid/doc/grid.R                 |  329 --
 win32/deps/library/grid/doc/grid.Rnw               |  751 ---
 win32/deps/library/grid/doc/grid.pdf               |  Bin 251352 -> 0 bytes
 win32/deps/library/grid/doc/grobs.R                |  313 --
 win32/deps/library/grid/doc/grobs.Rnw              |  482 --
 win32/deps/library/grid/doc/grobs.pdf              |  Bin 107015 -> 0 bytes
 win32/deps/library/grid/doc/index.html             |   87 -
 win32/deps/library/grid/doc/interactive.R          |   90 -
 win32/deps/library/grid/doc/interactive.Rnw        |  132 -
 win32/deps/library/grid/doc/interactive.pdf        |  Bin 90763 -> 0 bytes
 win32/deps/library/grid/doc/locndimn.R             |   72 -
 win32/deps/library/grid/doc/locndimn.Rnw           |  117 -
 win32/deps/library/grid/doc/locndimn.pdf           |  Bin 89405 -> 0 bytes
 win32/deps/library/grid/doc/moveline.R             |   30 -
 win32/deps/library/grid/doc/moveline.Rnw           |   64 -
 win32/deps/library/grid/doc/moveline.pdf           |  Bin 87188 -> 0 bytes
 win32/deps/library/grid/doc/nonfinite.R            |   73 -
 win32/deps/library/grid/doc/nonfinite.Rnw          |  135 -
 win32/deps/library/grid/doc/nonfinite.pdf          |  Bin 79443 -> 0 bytes
 win32/deps/library/grid/doc/plotexample.R          |  465 --
 win32/deps/library/grid/doc/plotexample.Rnw        |  582 ---
 win32/deps/library/grid/doc/plotexample.pdf        |  Bin 223488 -> 0 bytes
 win32/deps/library/grid/doc/rotated.R              |  188 -
 win32/deps/library/grid/doc/rotated.Rnw            |  156 -
 win32/deps/library/grid/doc/rotated.pdf            |  Bin 121860 -> 0 bytes
 win32/deps/library/grid/doc/saveload.R             |   40 -
 win32/deps/library/grid/doc/saveload.Rnw           |  110 -
 win32/deps/library/grid/doc/saveload.pdf           |  Bin 133777 -> 0 bytes
 win32/deps/library/grid/doc/sharing.R              |  140 -
 win32/deps/library/grid/doc/sharing.Rnw            |  110 -
 win32/deps/library/grid/doc/sharing.pdf            |  Bin 70754 -> 0 bytes
 win32/deps/library/grid/doc/viewports.R            |  288 --
 win32/deps/library/grid/doc/viewports.Rnw          |  332 --
 win32/deps/library/grid/doc/viewports.pdf          |  Bin 162850 -> 0 bytes
 win32/deps/library/grid/help/AnIndex               |  186 -
 win32/deps/library/grid/help/aliases.rds           |  Bin 1385 -> 0 bytes
 win32/deps/library/grid/help/grid.rdb              |  Bin 248821 -> 0 bytes
 win32/deps/library/grid/help/grid.rdx              |  Bin 1890 -> 0 bytes
 win32/deps/library/grid/help/paths.rds             |  Bin 725 -> 0 bytes
 win32/deps/library/grid/html/00Index.html          |  504 --
 win32/deps/library/grid/html/R.css                 |   57 -
 win32/deps/library/grid/libs/i386/grid.dll         |  Bin 135680 -> 0 bytes
 .../deps/library/grid/po/da/LC_MESSAGES/R-grid.mo  |  Bin 2664 -> 0 bytes
 win32/deps/library/grid/po/da/LC_MESSAGES/grid.mo  |  Bin 2397 -> 0 bytes
 .../deps/library/grid/po/de/LC_MESSAGES/R-grid.mo  |  Bin 16996 -> 0 bytes
 win32/deps/library/grid/po/de/LC_MESSAGES/grid.mo  |  Bin 2487 -> 0 bytes
 .../library/grid/po/en quot/LC_MESSAGES/R-grid.mo  |  Bin 16420 -> 0 bytes
 .../library/grid/po/en quot/LC_MESSAGES/grid.mo    |  Bin 2284 -> 0 bytes
 .../deps/library/grid/po/fr/LC_MESSAGES/R-grid.mo  |  Bin 17214 -> 0 bytes
 win32/deps/library/grid/po/fr/LC_MESSAGES/grid.mo  |  Bin 2528 -> 0 bytes
 win32/deps/library/grid/po/it/LC_MESSAGES/grid.mo  |  Bin 1775 -> 0 bytes
 .../deps/library/grid/po/ja/LC_MESSAGES/R-grid.mo  |  Bin 19899 -> 0 bytes
 win32/deps/library/grid/po/ja/LC_MESSAGES/grid.mo  |  Bin 2874 -> 0 bytes
 .../deps/library/grid/po/ko/LC_MESSAGES/R-grid.mo  |  Bin 18913 -> 0 bytes
 win32/deps/library/grid/po/ko/LC_MESSAGES/grid.mo  |  Bin 2876 -> 0 bytes
 .../deps/library/grid/po/pl/LC_MESSAGES/R-grid.mo  |  Bin 17543 -> 0 bytes
 win32/deps/library/grid/po/pl/LC_MESSAGES/grid.mo  |  Bin 2711 -> 0 bytes
 .../library/grid/po/pt_BR/LC_MESSAGES/R-grid.mo    |  Bin 16197 -> 0 bytes
 .../deps/library/grid/po/pt_BR/LC_MESSAGES/grid.mo |  Bin 2634 -> 0 bytes
 .../deps/library/grid/po/ru/LC_MESSAGES/R-grid.mo  |  Bin 16563 -> 0 bytes
 win32/deps/library/grid/po/ru/LC_MESSAGES/grid.mo  |  Bin 2519 -> 0 bytes
 .../library/grid/po/zh_CN/LC_MESSAGES/R-grid.mo    |  Bin 15473 -> 0 bytes
 .../deps/library/grid/po/zh_CN/LC_MESSAGES/grid.mo |  Bin 2331 -> 0 bytes
 win32/deps/library/grid/tests/bugs.R               |   30 -
 win32/deps/library/grid/tests/reg.R                |  433 --
 win32/deps/library/grid/tests/testls.R             |  158 -
 win32/deps/library/grid/tests/testls.Rout.save     |  340 --
 win32/deps/library/grid/tests/units.R              |  135 -
 win32/deps/library/lattice/CITATION                |   17 -
 win32/deps/library/lattice/DESCRIPTION             |   25 -
 win32/deps/library/lattice/INDEX                   |   70 -
 win32/deps/library/lattice/LICENSE                 |   16 -
 win32/deps/library/lattice/Meta/Rd.rds             |  Bin 3521 -> 0 bytes
 win32/deps/library/lattice/Meta/data.rds           |  Bin 252 -> 0 bytes
 win32/deps/library/lattice/Meta/demo.rds           |  Bin 160 -> 0 bytes
 win32/deps/library/lattice/Meta/hsearch.rds        |  Bin 3582 -> 0 bytes
 win32/deps/library/lattice/Meta/links.rds          |  Bin 1938 -> 0 bytes
 win32/deps/library/lattice/Meta/nsInfo.rds         |  Bin 1751 -> 0 bytes
 win32/deps/library/lattice/Meta/package.rds        |  Bin 983 -> 0 bytes
 win32/deps/library/lattice/NAMESPACE               |  309 --
 win32/deps/library/lattice/NEWS                    | 1103 -----
 win32/deps/library/lattice/R/lattice               |    9 -
 win32/deps/library/lattice/R/lattice.rdb           |  Bin 504538 -> 0 bytes
 win32/deps/library/lattice/R/lattice.rdx           |  Bin 3999 -> 0 bytes
 win32/deps/library/lattice/data/Rdata.rdb          |  Bin 4076 -> 0 bytes
 win32/deps/library/lattice/data/Rdata.rds          |  Bin 125 -> 0 bytes
 win32/deps/library/lattice/data/Rdata.rdx          |  Bin 203 -> 0 bytes
 win32/deps/library/lattice/demo/intervals.R        |   93 -
 win32/deps/library/lattice/demo/labels.R           |   46 -
 win32/deps/library/lattice/demo/lattice.R          |  164 -
 win32/deps/library/lattice/demo/panel.R            |  121 -
 win32/deps/library/lattice/help/AnIndex            |  221 -
 win32/deps/library/lattice/help/aliases.rds        |  Bin 1756 -> 0 bytes
 win32/deps/library/lattice/help/lattice.rdb        |  Bin 450617 -> 0 bytes
 win32/deps/library/lattice/help/lattice.rdx        |  Bin 1562 -> 0 bytes
 win32/deps/library/lattice/help/paths.rds          |  Bin 639 -> 0 bytes
 win32/deps/library/lattice/html/00Index.html       |  591 ---
 win32/deps/library/lattice/html/R.css              |   57 -
 win32/deps/library/lattice/libs/i386/lattice.dll   |  Bin 20480 -> 0 bytes
 .../library/lattice/po/de/LC_MESSAGES/R-lattice.mo |  Bin 13307 -> 0 bytes
 .../lattice/po/en quot/LC_MESSAGES/R-lattice.mo    |  Bin 9746 -> 0 bytes
 .../library/lattice/po/fr/LC_MESSAGES/R-lattice.mo |  Bin 7959 -> 0 bytes
 win32/deps/library/lattice/tests/MASSch04.R        |  179 -
 win32/deps/library/lattice/tests/dates.R           |   25 -
 win32/deps/library/lattice/tests/dotplotscoping.R  |   13 -
 win32/deps/library/lattice/tests/levelplot.R       |  115 -
 win32/deps/library/lattice/tests/scales.R          |  174 -
 win32/deps/library/lattice/tests/temp.R            |  141 -
 win32/deps/library/lattice/tests/test.R            |  137 -
 win32/deps/library/lattice/tests/wireframe.R       |  113 -
 win32/deps/library/locfit/DESCRIPTION              |   16 -
 win32/deps/library/locfit/INDEX                    |  121 -
 win32/deps/library/locfit/MD5                      |   50 -
 win32/deps/library/locfit/Meta/Rd.rds              |  Bin 3431 -> 0 bytes
 win32/deps/library/locfit/Meta/data.rds            |  Bin 665 -> 0 bytes
 win32/deps/library/locfit/Meta/hsearch.rds         |  Bin 2966 -> 0 bytes
 win32/deps/library/locfit/Meta/links.rds           |  Bin 1216 -> 0 bytes
 win32/deps/library/locfit/Meta/nsInfo.rds          |  Bin 735 -> 0 bytes
 win32/deps/library/locfit/Meta/package.rds         |  Bin 689 -> 0 bytes
 win32/deps/library/locfit/NAMESPACE                |   48 -
 win32/deps/library/locfit/NEWS                     |   18 -
 win32/deps/library/locfit/R/locfit                 |    9 -
 win32/deps/library/locfit/R/locfit.rdb             |  Bin 40301 -> 0 bytes
 win32/deps/library/locfit/R/locfit.rdx             |  Bin 1236 -> 0 bytes
 win32/deps/library/locfit/data/ais.rda             |  Bin 5958 -> 0 bytes
 win32/deps/library/locfit/data/bad.rda             |  Bin 1818 -> 0 bytes
 win32/deps/library/locfit/data/border.rda          |  Bin 2632 -> 0 bytes
 win32/deps/library/locfit/data/chemdiab.tab.gz     |  Bin 1639 -> 0 bytes
 win32/deps/library/locfit/data/claw54.rda          |  Bin 508 -> 0 bytes
 win32/deps/library/locfit/data/cldem.tab.gz        |  Bin 623 -> 0 bytes
 win32/deps/library/locfit/data/cltest.rda          |  Bin 3884 -> 0 bytes
 win32/deps/library/locfit/data/cltrain.rda         |  Bin 3881 -> 0 bytes
 win32/deps/library/locfit/data/co2.rda             |  Bin 2448 -> 0 bytes
 win32/deps/library/locfit/data/diab.tab.gz         |  Bin 312 -> 0 bytes
 win32/deps/library/locfit/data/ethanol.rda         |  Bin 1259 -> 0 bytes
 win32/deps/library/locfit/data/geyser.rda          |  Bin 390 -> 0 bytes
 win32/deps/library/locfit/data/geyser.round.tab.gz |  Bin 305 -> 0 bytes
 win32/deps/library/locfit/data/heart.rda           |  Bin 1457 -> 0 bytes
 win32/deps/library/locfit/data/insect.tab.gz       |  Bin 68 -> 0 bytes
 win32/deps/library/locfit/data/iris.rda            |  Bin 1068 -> 0 bytes
 win32/deps/library/locfit/data/kangaroo.rda        |  Bin 4405 -> 0 bytes
 win32/deps/library/locfit/data/livmet.rda          |  Bin 6936 -> 0 bytes
 win32/deps/library/locfit/data/mcyc.tab.gz         |  Bin 1029 -> 0 bytes
 win32/deps/library/locfit/data/mine.rda            |  Bin 604 -> 0 bytes
 win32/deps/library/locfit/data/mmsamp.tab.gz       |  Bin 419 -> 0 bytes
 win32/deps/library/locfit/data/morths.rda          |  Bin 526 -> 0 bytes
 win32/deps/library/locfit/data/penny.tab.gz        |  Bin 296 -> 0 bytes
 win32/deps/library/locfit/data/spencer.rda         |  Bin 502 -> 0 bytes
 win32/deps/library/locfit/data/stamp.rda           |  Bin 908 -> 0 bytes
 win32/deps/library/locfit/data/trimod.tab.gz       |  Bin 2575 -> 0 bytes
 win32/deps/library/locfit/help/AnIndex             |  110 -
 win32/deps/library/locfit/help/aliases.rds         |  Bin 680 -> 0 bytes
 win32/deps/library/locfit/help/locfit.rdb          |  Bin 207855 -> 0 bytes
 win32/deps/library/locfit/help/locfit.rdx          |  Bin 2198 -> 0 bytes
 win32/deps/library/locfit/help/paths.rds           |  Bin 754 -> 0 bytes
 win32/deps/library/locfit/html/00Index.html        |  347 --
 win32/deps/library/locfit/html/R.css               |   57 -
 win32/deps/library/locfit/libs/i386/locfit.dll     |  Bin 234496 -> 0 bytes
 win32/deps/library/locfit/libs/i386/symbols.rds    |  Bin 6456 -> 0 bytes
 win32/deps/library/locfit/libs/x64/locfit.dll      |  Bin 232448 -> 0 bytes
 win32/deps/library/locfit/libs/x64/symbols.rds     |  Bin 6426 -> 0 bytes
 win32/deps/library/methods/DESCRIPTION             |    6 +-
 win32/deps/library/methods/INDEX                   |    1 +
 win32/deps/library/methods/Meta/Rd.rds             |  Bin 5499 -> 5500 bytes
 win32/deps/library/methods/Meta/hsearch.rds        |  Bin 5575 -> 5575 bytes
 win32/deps/library/methods/Meta/links.rds          |  Bin 3898 -> 3912 bytes
 win32/deps/library/methods/Meta/nsInfo.rds         |  Bin 1700 -> 1740 bytes
 win32/deps/library/methods/Meta/package.rds        |  Bin 631 -> 636 bytes
 win32/deps/library/methods/NAMESPACE               |   10 +-
 win32/deps/library/methods/R/methods               |   26 +-
 win32/deps/library/methods/R/methods.rdb           |  Bin 1076889 -> 1082457 bytes
 win32/deps/library/methods/R/methods.rdx           |  Bin 13552 -> 13555 bytes
 win32/deps/library/methods/help/AnIndex            |   12 +-
 win32/deps/library/methods/help/aliases.rds        |  Bin 4004 -> 4001 bytes
 win32/deps/library/methods/help/methods.rdb        |  Bin 476158 -> 480512 bytes
 win32/deps/library/methods/help/methods.rdx        |  Bin 1838 -> 1857 bytes
 win32/deps/library/methods/help/paths.rds          |  Bin 779 -> 782 bytes
 win32/deps/library/methods/html/00Index.html       |   12 +-
 win32/deps/library/methods/libs/i386/methods.dll   |  Bin 35840 -> 34816 bytes
 .../library/methods/po/da/LC_MESSAGES/R-methods.mo |  Bin 3178 -> 0 bytes
 .../library/methods/po/da/LC_MESSAGES/methods.mo   |  Bin 5891 -> 0 bytes
 .../library/methods/po/de/LC_MESSAGES/R-methods.mo |  Bin 70618 -> 0 bytes
 .../library/methods/po/de/LC_MESSAGES/methods.mo   |  Bin 6219 -> 0 bytes
 .../methods/po/en quot/LC_MESSAGES/R-methods.mo    |  Bin 66548 -> 0 bytes
 .../methods/po/en quot/LC_MESSAGES/methods.mo      |  Bin 5908 -> 0 bytes
 .../library/methods/po/fr/LC_MESSAGES/R-methods.mo |  Bin 73672 -> 0 bytes
 .../library/methods/po/fr/LC_MESSAGES/methods.mo   |  Bin 6643 -> 0 bytes
 .../library/methods/po/ja/LC_MESSAGES/R-methods.mo |  Bin 81510 -> 0 bytes
 .../library/methods/po/ja/LC_MESSAGES/methods.mo   |  Bin 7131 -> 0 bytes
 .../library/methods/po/ko/LC_MESSAGES/R-methods.mo |  Bin 72400 -> 0 bytes
 .../library/methods/po/ko/LC_MESSAGES/methods.mo   |  Bin 6917 -> 0 bytes
 .../library/methods/po/pl/LC_MESSAGES/R-methods.mo |  Bin 69598 -> 0 bytes
 .../library/methods/po/pl/LC_MESSAGES/methods.mo   |  Bin 6246 -> 0 bytes
 .../methods/po/pt_BR/LC_MESSAGES/R-methods.mo      |  Bin 9875 -> 0 bytes
 .../methods/po/pt_BR/LC_MESSAGES/methods.mo        |  Bin 6366 -> 0 bytes
 .../library/methods/po/ru/LC_MESSAGES/R-methods.mo |  Bin 67565 -> 0 bytes
 .../library/methods/po/ru/LC_MESSAGES/methods.mo   |  Bin 6021 -> 0 bytes
 .../methods/po/zh_CN/LC_MESSAGES/R-methods.mo      |  Bin 49243 -> 0 bytes
 .../methods/po/zh_CN/LC_MESSAGES/methods.mo        |  Bin 5598 -> 0 bytes
 win32/deps/library/methods/tests/basicRefClass.R   |   76 +-
 win32/deps/library/methods/tests/duplicateClass.R  |    8 +
 win32/deps/library/methods/tests/mixinInitialize.R |   14 +
 win32/deps/library/methods/tests/namesAndSlots.R   |    3 +
 win32/deps/library/mgcv/CITATION                   |   70 -
 win32/deps/library/mgcv/DESCRIPTION                |   19 -
 win32/deps/library/mgcv/INDEX                      |   87 -
 win32/deps/library/mgcv/Meta/Rd.rds                |  Bin 4310 -> 0 bytes
 win32/deps/library/mgcv/Meta/data.rds              |  Bin 121 -> 0 bytes
 win32/deps/library/mgcv/Meta/hsearch.rds           |  Bin 4267 -> 0 bytes
 win32/deps/library/mgcv/Meta/links.rds             |  Bin 1789 -> 0 bytes
 win32/deps/library/mgcv/Meta/nsInfo.rds            |  Bin 1502 -> 0 bytes
 win32/deps/library/mgcv/Meta/package.rds           |  Bin 896 -> 0 bytes
 win32/deps/library/mgcv/NAMESPACE                  |  136 -
 win32/deps/library/mgcv/R/mgcv                     |    9 -
 win32/deps/library/mgcv/R/mgcv.rdb                 |  Bin 710851 -> 0 bytes
 win32/deps/library/mgcv/R/mgcv.rdx                 |  Bin 3621 -> 0 bytes
 win32/deps/library/mgcv/data/columb.polys.rda      |  Bin 8262 -> 0 bytes
 win32/deps/library/mgcv/data/columb.rda            |  Bin 2889 -> 0 bytes
 win32/deps/library/mgcv/help/AnIndex               |  165 -
 win32/deps/library/mgcv/help/aliases.rds           |  Bin 1374 -> 0 bytes
 win32/deps/library/mgcv/help/mgcv.rdb              |  Bin 525293 -> 0 bytes
 win32/deps/library/mgcv/help/mgcv.rdx              |  Bin 2263 -> 0 bytes
 win32/deps/library/mgcv/help/paths.rds             |  Bin 872 -> 0 bytes
 win32/deps/library/mgcv/html/00Index.html          |  467 --
 win32/deps/library/mgcv/html/R.css                 |   57 -
 win32/deps/library/mgcv/libs/i386/mgcv.dll         |  Bin 216576 -> 0 bytes
 win32/deps/library/nlme/CITATION                   |   21 -
 win32/deps/library/nlme/DESCRIPTION                |   28 -
 win32/deps/library/nlme/INDEX                      |  303 --
 win32/deps/library/nlme/LICENCE                    |    7 -
 win32/deps/library/nlme/Meta/Rd.rds                |  Bin 8585 -> 0 bytes
 win32/deps/library/nlme/Meta/data.rds              |  Bin 1059 -> 0 bytes
 win32/deps/library/nlme/Meta/hsearch.rds           |  Bin 8259 -> 0 bytes
 win32/deps/library/nlme/Meta/links.rds             |  Bin 4630 -> 0 bytes
 win32/deps/library/nlme/Meta/nsInfo.rds            |  Bin 1937 -> 0 bytes
 win32/deps/library/nlme/Meta/package.rds           |  Bin 935 -> 0 bytes
 win32/deps/library/nlme/NAMESPACE                  |  481 --
 win32/deps/library/nlme/R/nlme                     |    9 -
 win32/deps/library/nlme/R/nlme.rdb                 |  Bin 732450 -> 0 bytes
 win32/deps/library/nlme/R/nlme.rdx                 |  Bin 6207 -> 0 bytes
 win32/deps/library/nlme/data/Rdata.rdb             |  Bin 157230 -> 0 bytes
 win32/deps/library/nlme/data/Rdata.rds             |  Bin 457 -> 0 bytes
 win32/deps/library/nlme/data/Rdata.rdx             |  Bin 824 -> 0 bytes
 win32/deps/library/nlme/help/AnIndex               |  540 --
 win32/deps/library/nlme/help/aliases.rds           |  Bin 3325 -> 0 bytes
 win32/deps/library/nlme/help/nlme.rdb              |  Bin 911546 -> 0 bytes
 win32/deps/library/nlme/help/nlme.rdx              |  Bin 5750 -> 0 bytes
 win32/deps/library/nlme/help/paths.rds             |  Bin 2004 -> 0 bytes
 win32/deps/library/nlme/html/00Index.html          | 1230 -----
 win32/deps/library/nlme/html/R.css                 |   57 -
 win32/deps/library/nlme/libs/i386/nlme.dll         |  Bin 68608 -> 0 bytes
 win32/deps/library/nlme/mlbook/README              |    4 -
 win32/deps/library/nlme/mlbook/ch04.R              |   26 -
 win32/deps/library/nlme/mlbook/ch05.R              |   15 -
 .../deps/library/nlme/po/de/LC_MESSAGES/R-nlme.mo  |  Bin 42667 -> 0 bytes
 win32/deps/library/nlme/po/de/LC_MESSAGES/nlme.mo  |  Bin 1715 -> 0 bytes
 .../library/nlme/po/en quot/LC_MESSAGES/R-nlme.mo  |  Bin 40211 -> 0 bytes
 .../library/nlme/po/en quot/LC_MESSAGES/nlme.mo    |  Bin 1584 -> 0 bytes
 .../deps/library/nlme/po/fr/LC_MESSAGES/R-nlme.mo  |  Bin 43909 -> 0 bytes
 win32/deps/library/nlme/po/fr/LC_MESSAGES/nlme.mo  |  Bin 1748 -> 0 bytes
 .../deps/library/nlme/po/pl/LC_MESSAGES/R-nlme.mo  |  Bin 43293 -> 0 bytes
 win32/deps/library/nlme/po/pl/LC_MESSAGES/nlme.mo  |  Bin 1862 -> 0 bytes
 win32/deps/library/nlme/scripts/ch01.R             |  141 -
 win32/deps/library/nlme/scripts/ch02.R             |   68 -
 win32/deps/library/nlme/scripts/ch03.R             |  116 -
 win32/deps/library/nlme/scripts/ch04.R             |  202 -
 win32/deps/library/nlme/scripts/ch05.R             |  193 -
 win32/deps/library/nlme/scripts/ch06.R             |   99 -
 win32/deps/library/nlme/scripts/ch08.R             |  293 --
 win32/deps/library/nlme/scripts/sims.rda           |  Bin 105883 -> 0 bytes
 win32/deps/library/nlme/tests/anova.gls.R          |   22 -
 win32/deps/library/nlme/tests/augPred_lab.R        |   14 -
 win32/deps/library/nlme/tests/augPredmissing.R     |    7 -
 win32/deps/library/nlme/tests/coef.R               |   14 -
 win32/deps/library/nlme/tests/contrMat.R           |   40 -
 win32/deps/library/nlme/tests/data.frame.R         |    4 -
 win32/deps/library/nlme/tests/deparse.R            |  171 -
 win32/deps/library/nlme/tests/getData.R            |    8 -
 win32/deps/library/nlme/tests/gls.R                |   24 -
 win32/deps/library/nlme/tests/lmList.R             |   11 -
 win32/deps/library/nlme/tests/lme.R                |   37 -
 win32/deps/library/nlme/tests/lme.Rout.save        |  146 -
 win32/deps/library/nlme/tests/missing.R            |   26 -
 win32/deps/library/nlme/tests/missing.Rout.save    |  791 ---
 win32/deps/library/nlme/tests/nlme.R               |    7 -
 win32/deps/library/nlme/tests/nlme.Rout.save       |   61 -
 win32/deps/library/nlme/tests/predict.lme.R        |    8 -
 win32/deps/library/nlme/tests/ss2.rda              |  Bin 4809 -> 0 bytes
 win32/deps/library/nlme/tests/update.R             |    8 -
 win32/deps/library/nlme/tests/updateLme.R          |   12 -
 win32/deps/library/nlme/tests/varIdent.R           |    7 -
 win32/deps/library/nnet/CITATION                   |   18 -
 win32/deps/library/nnet/DESCRIPTION                |   19 -
 win32/deps/library/nnet/INDEX                      |    6 -
 win32/deps/library/nnet/LICENCE                    |   43 -
 win32/deps/library/nnet/Meta/Rd.rds                |  Bin 616 -> 0 bytes
 win32/deps/library/nnet/Meta/hsearch.rds           |  Bin 658 -> 0 bytes
 win32/deps/library/nnet/Meta/links.rds             |  Bin 327 -> 0 bytes
 win32/deps/library/nnet/Meta/nsInfo.rds            |  Bin 490 -> 0 bytes
 win32/deps/library/nnet/Meta/package.rds           |  Bin 808 -> 0 bytes
 win32/deps/library/nnet/NAMESPACE                  |   39 -
 win32/deps/library/nnet/NEWS                       |   26 -
 win32/deps/library/nnet/R/nnet                     |    9 -
 win32/deps/library/nnet/R/nnet.rdb                 |  Bin 49662 -> 0 bytes
 win32/deps/library/nnet/R/nnet.rdx                 |  Bin 669 -> 0 bytes
 win32/deps/library/nnet/help/AnIndex               |   27 -
 win32/deps/library/nnet/help/aliases.rds           |  Bin 297 -> 0 bytes
 win32/deps/library/nnet/help/nnet.rdb              |  Bin 20757 -> 0 bytes
 win32/deps/library/nnet/help/nnet.rdx              |  Bin 283 -> 0 bytes
 win32/deps/library/nnet/help/paths.rds             |  Bin 166 -> 0 bytes
 win32/deps/library/nnet/html/00Index.html          |   78 -
 win32/deps/library/nnet/html/R.css                 |   57 -
 win32/deps/library/nnet/libs/i386/nnet.dll         |  Bin 23552 -> 0 bytes
 .../deps/library/nnet/po/de/LC_MESSAGES/R-nnet.mo  |  Bin 2972 -> 0 bytes
 .../library/nnet/po/en quot/LC_MESSAGES/R-nnet.mo  |  Bin 2669 -> 0 bytes
 .../deps/library/nnet/po/fr/LC_MESSAGES/R-nnet.mo  |  Bin 3077 -> 0 bytes
 .../deps/library/nnet/po/pl/LC_MESSAGES/R-nnet.mo  |  Bin 3097 -> 0 bytes
 win32/deps/library/parallel/DESCRIPTION            |   12 -
 win32/deps/library/parallel/INDEX                  |    8 -
 win32/deps/library/parallel/Meta/Rd.rds            |  Bin 688 -> 0 bytes
 win32/deps/library/parallel/Meta/hsearch.rds       |  Bin 707 -> 0 bytes
 win32/deps/library/parallel/Meta/links.rds         |  Bin 369 -> 0 bytes
 win32/deps/library/parallel/Meta/nsInfo.rds        |  Bin 594 -> 0 bytes
 win32/deps/library/parallel/Meta/package.rds       |  Bin 565 -> 0 bytes
 win32/deps/library/parallel/Meta/vignette.rds      |  Bin 202 -> 0 bytes
 win32/deps/library/parallel/NAMESPACE              |   44 -
 win32/deps/library/parallel/R/parallel             |    9 -
 win32/deps/library/parallel/R/parallel.rdb         |  Bin 45249 -> 0 bytes
 win32/deps/library/parallel/R/parallel.rdx         |  Bin 1398 -> 0 bytes
 win32/deps/library/parallel/doc/index.html         |   27 -
 win32/deps/library/parallel/doc/parallel.R         |  224 -
 win32/deps/library/parallel/doc/parallel.Rnw       |  803 ---
 win32/deps/library/parallel/doc/parallel.pdf       |  Bin 291079 -> 0 bytes
 win32/deps/library/parallel/help/AnIndex           |   31 -
 win32/deps/library/parallel/help/aliases.rds       |  Bin 332 -> 0 bytes
 win32/deps/library/parallel/help/parallel.rdb      |  Bin 32556 -> 0 bytes
 win32/deps/library/parallel/help/parallel.rdx      |  Bin 328 -> 0 bytes
 win32/deps/library/parallel/help/paths.rds         |  Bin 194 -> 0 bytes
 win32/deps/library/parallel/html/00Index.html      |   86 -
 win32/deps/library/parallel/html/R.css             |   57 -
 win32/deps/library/parallel/libs/i386/parallel.dll |  Bin 17408 -> 0 bytes
 .../parallel/po/da/LC_MESSAGES/R-parallel.mo       |  Bin 2981 -> 0 bytes
 .../library/parallel/po/da/LC_MESSAGES/parallel.mo |  Bin 1704 -> 0 bytes
 .../parallel/po/de/LC_MESSAGES/R-parallel.mo       |  Bin 3576 -> 0 bytes
 .../library/parallel/po/de/LC_MESSAGES/parallel.mo |  Bin 1731 -> 0 bytes
 .../parallel/po/en quot/LC_MESSAGES/R-parallel.mo  |  Bin 3396 -> 0 bytes
 .../parallel/po/en quot/LC_MESSAGES/parallel.mo    |  Bin 1630 -> 0 bytes
 .../parallel/po/fr/LC_MESSAGES/R-parallel.mo       |  Bin 3795 -> 0 bytes
 .../library/parallel/po/fr/LC_MESSAGES/parallel.mo |  Bin 1869 -> 0 bytes
 .../parallel/po/ko/LC_MESSAGES/R-parallel.mo       |  Bin 4047 -> 0 bytes
 .../library/parallel/po/ko/LC_MESSAGES/parallel.mo |  Bin 2029 -> 0 bytes
 .../parallel/po/pl/LC_MESSAGES/R-parallel.mo       |  Bin 3846 -> 0 bytes
 .../library/parallel/po/pl/LC_MESSAGES/parallel.mo |  Bin 1926 -> 0 bytes
 .../parallel/po/ru/LC_MESSAGES/R-parallel.mo       |  Bin 3673 -> 0 bytes
 .../library/parallel/po/ru/LC_MESSAGES/parallel.mo |  Bin 1797 -> 0 bytes
 .../parallel/po/zh_CN/LC_MESSAGES/R-parallel.mo    |  Bin 3267 -> 0 bytes
 .../parallel/po/zh_CN/LC_MESSAGES/parallel.mo      |  Bin 1598 -> 0 bytes
 win32/deps/library/parallel/tests/Master.R         |   36 -
 win32/deps/library/parallel/tests/multicore1.RR    |   10 -
 win32/deps/library/parallel/tests/multicore2.RR    |   14 -
 .../library/parallel/tests/multicore2.Rout.save    |   49 -
 win32/deps/library/parallel/tests/multicore3.RR    |    7 -
 win32/deps/library/parallel/tests/snow1.RR         |   40 -
 win32/deps/library/parallel/tests/snow2.RR         |   19 -
 win32/deps/library/parallel/tests/snow2.Rout.save  |   54 -
 win32/deps/library/rpart/DESCRIPTION               |   26 -
 win32/deps/library/rpart/INDEX                     |   33 -
 win32/deps/library/rpart/Meta/Rd.rds               |  Bin 1143 -> 0 bytes
 win32/deps/library/rpart/Meta/data.rds             |  Bin 234 -> 0 bytes
 win32/deps/library/rpart/Meta/hsearch.rds          |  Bin 1090 -> 0 bytes
 win32/deps/library/rpart/Meta/links.rds            |  Bin 427 -> 0 bytes
 win32/deps/library/rpart/Meta/nsInfo.rds           |  Bin 457 -> 0 bytes
 win32/deps/library/rpart/Meta/package.rds          |  Bin 953 -> 0 bytes
 win32/deps/library/rpart/NAMESPACE                 |   26 -
 win32/deps/library/rpart/R/rpart                   |    9 -
 win32/deps/library/rpart/R/rpart.rdb               |  Bin 95794 -> 0 bytes
 win32/deps/library/rpart/R/rpart.rdx               |  Bin 784 -> 0 bytes
 win32/deps/library/rpart/data/Rdata.rdb            |  Bin 4715 -> 0 bytes
 win32/deps/library/rpart/data/Rdata.rds            |  Bin 117 -> 0 bytes
 win32/deps/library/rpart/data/Rdata.rdx            |  Bin 195 -> 0 bytes
 win32/deps/library/rpart/help/AnIndex              |   30 -
 win32/deps/library/rpart/help/aliases.rds          |  Bin 288 -> 0 bytes
 win32/deps/library/rpart/help/paths.rds            |  Bin 317 -> 0 bytes
 win32/deps/library/rpart/help/rpart.rdb            |  Bin 78392 -> 0 bytes
 win32/deps/library/rpart/help/rpart.rdx            |  Bin 699 -> 0 bytes
 win32/deps/library/rpart/html/00Index.html         |   79 -
 win32/deps/library/rpart/html/R.css                |   57 -
 win32/deps/library/rpart/libs/i386/rpart.dll       |  Bin 50688 -> 0 bytes
 .../library/rpart/po/de/LC_MESSAGES/R-rpart.mo     |  Bin 6929 -> 0 bytes
 .../deps/library/rpart/po/de/LC_MESSAGES/rpart.mo  |  Bin 1436 -> 0 bytes
 .../rpart/po/en quot/LC_MESSAGES/R-rpart.mo        |  Bin 6419 -> 0 bytes
 .../library/rpart/po/en quot/LC_MESSAGES/rpart.mo  |  Bin 1318 -> 0 bytes
 .../library/rpart/po/fr/LC_MESSAGES/R-rpart.mo     |  Bin 6973 -> 0 bytes
 .../deps/library/rpart/po/fr/LC_MESSAGES/rpart.mo  |  Bin 1414 -> 0 bytes
 .../library/rpart/po/pl/LC_MESSAGES/R-rpart.mo     |  Bin 6636 -> 0 bytes
 .../deps/library/rpart/po/pl/LC_MESSAGES/rpart.mo  |  Bin 1539 -> 0 bytes
 .../library/rpart/po/ru/LC_MESSAGES/R-rpart.mo     |  Bin 6457 -> 0 bytes
 .../deps/library/rpart/po/ru/LC_MESSAGES/rpart.mo  |  Bin 1439 -> 0 bytes
 .../rpart/tests/Examples/rpart-Ex.Rout.save        |  971 ----
 win32/deps/library/rpart/tests/backticks.R         |    7 -
 win32/deps/library/rpart/tests/data.stagec         |  146 -
 win32/deps/library/rpart/tests/rpartco.R           |    6 -
 win32/deps/library/rpart/tests/surv_test.R         |    9 -
 win32/deps/library/rpart/tests/testall.R           |  330 --
 win32/deps/library/rpart/tests/testall.Rout.save   | 1506 ------
 win32/deps/library/rpart/tests/usersplits.R        |  167 -
 .../deps/library/rpart/tests/usersplits.Rout.save  |  193 -
 win32/deps/library/spam/0NEWS                      |  404 --
 win32/deps/library/spam/CITATION                   |   19 -
 win32/deps/library/spam/DESCRIPTION                |   22 -
 win32/deps/library/spam/INDEX                      |   53 -
 win32/deps/library/spam/LICENSE                    |   38 -
 win32/deps/library/spam/MD5                        |   38 -
 win32/deps/library/spam/Meta/Rd.rds                |  Bin 3971 -> 0 bytes
 win32/deps/library/spam/Meta/data.rds              |  Bin 229 -> 0 bytes
 win32/deps/library/spam/Meta/demo.rds              |  Bin 295 -> 0 bytes
 win32/deps/library/spam/Meta/hsearch.rds           |  Bin 4073 -> 0 bytes
 win32/deps/library/spam/Meta/links.rds             |  Bin 2709 -> 0 bytes
 win32/deps/library/spam/Meta/nsInfo.rds            |  Bin 1090 -> 0 bytes
 win32/deps/library/spam/Meta/package.rds           |  Bin 924 -> 0 bytes
 win32/deps/library/spam/NAMESPACE                  |  220 -
 win32/deps/library/spam/NEWS                       |  232 -
 win32/deps/library/spam/R/spam                     |    9 -
 win32/deps/library/spam/R/spam.rdb                 |  Bin 369813 -> 0 bytes
 win32/deps/library/spam/R/spam.rdx                 |  Bin 4730 -> 0 bytes
 win32/deps/library/spam/data/Rdata.rdb             |  Bin 319762 -> 0 bytes
 win32/deps/library/spam/data/Rdata.rds             |  Bin 127 -> 0 bytes
 win32/deps/library/spam/data/Rdata.rdx             |  Bin 209 -> 0 bytes
 .../deps/library/spam/demo/article-jss-example1.R  |  214 -
 .../deps/library/spam/demo/article-jss-example2.R  |  232 -
 win32/deps/library/spam/demo/article-jss.R         |  359 --
 win32/deps/library/spam/demo/cholesky.R            |  157 -
 win32/deps/library/spam/demo/spam.R                |   73 -
 win32/deps/library/spam/demo/timing.R              |   78 -
 win32/deps/library/spam/demodata/germany.adjacency |  545 --
 win32/deps/library/spam/help/AnIndex               |  391 --
 win32/deps/library/spam/help/aliases.rds           |  Bin 2688 -> 0 bytes
 win32/deps/library/spam/help/paths.rds             |  Bin 491 -> 0 bytes
 win32/deps/library/spam/help/spam.rdb              |  Bin 159575 -> 0 bytes
 win32/deps/library/spam/help/spam.rdx              |  Bin 1263 -> 0 bytes
 win32/deps/library/spam/html/00Index.html          |  718 ---
 win32/deps/library/spam/html/R.css                 |   57 -
 win32/deps/library/spam/libs/i386/spam.dll         |  Bin 69632 -> 0 bytes
 win32/deps/library/spam/libs/i386/symbols.rds      |  Bin 1557 -> 0 bytes
 win32/deps/library/spam/libs/x64/spam.dll          |  Bin 81408 -> 0 bytes
 win32/deps/library/spam/libs/x64/symbols.rds       |  Bin 1551 -> 0 bytes
 win32/deps/library/spatial/CITATION                |   18 -
 win32/deps/library/spatial/DESCRIPTION             |   20 -
 win32/deps/library/spatial/INDEX                   |   26 -
 win32/deps/library/spatial/LICENCE                 |   46 -
 win32/deps/library/spatial/Meta/Rd.rds             |  Bin 928 -> 0 bytes
 win32/deps/library/spatial/Meta/hsearch.rds        |  Bin 889 -> 0 bytes
 win32/deps/library/spatial/Meta/links.rds          |  Bin 378 -> 0 bytes
 win32/deps/library/spatial/Meta/nsInfo.rds         |  Bin 554 -> 0 bytes
 win32/deps/library/spatial/Meta/package.rds        |  Bin 799 -> 0 bytes
 win32/deps/library/spatial/NAMESPACE               |   25 -
 win32/deps/library/spatial/NEWS                    |   13 -
 win32/deps/library/spatial/PP.files                |   50 -
 win32/deps/library/spatial/R/spatial               |    9 -
 win32/deps/library/spatial/R/spatial.rdb           |  Bin 36844 -> 0 bytes
 win32/deps/library/spatial/R/spatial.rdx           |  Bin 696 -> 0 bytes
 win32/deps/library/spatial/help/AnIndex            |   25 -
 win32/deps/library/spatial/help/aliases.rds        |  Bin 252 -> 0 bytes
 win32/deps/library/spatial/help/paths.rds          |  Bin 276 -> 0 bytes
 win32/deps/library/spatial/help/spatial.rdb        |  Bin 46796 -> 0 bytes
 win32/deps/library/spatial/help/spatial.rdx        |  Bin 583 -> 0 bytes
 win32/deps/library/spatial/html/00Index.html       |   74 -
 win32/deps/library/spatial/html/R.css              |   57 -
 win32/deps/library/spatial/libs/i386/spatial.dll   |  Bin 28672 -> 0 bytes
 .../library/spatial/po/de/LC_MESSAGES/R-spatial.mo |  Bin 1518 -> 0 bytes
 .../spatial/po/en quot/LC_MESSAGES/R-spatial.mo    |  Bin 1380 -> 0 bytes
 .../library/spatial/po/fr/LC_MESSAGES/R-spatial.mo |  Bin 1547 -> 0 bytes
 .../library/spatial/po/pl/LC_MESSAGES/R-spatial.mo |  Bin 1674 -> 0 bytes
 win32/deps/library/spatial/ppdata/agter.dat        |   43 -
 win32/deps/library/spatial/ppdata/caveolae.dat     |  437 --
 win32/deps/library/spatial/ppdata/cells.dat        |   45 -
 win32/deps/library/spatial/ppdata/davis.dat        |   50 -
 win32/deps/library/spatial/ppdata/drumlin.dat      |  235 -
 win32/deps/library/spatial/ppdata/eagles.dat       |   18 -
 win32/deps/library/spatial/ppdata/fig1b.dat        |  317 --
 win32/deps/library/spatial/ppdata/fig1c.dat        |  372 --
 win32/deps/library/spatial/ppdata/fig2a.dat        |  142 -
 win32/deps/library/spatial/ppdata/fig2b.dat        |  304 --
 win32/deps/library/spatial/ppdata/fig3a.dat        |   76 -
 win32/deps/library/spatial/ppdata/fig3b.dat        |   70 -
 win32/deps/library/spatial/ppdata/fig3c.dat        |   83 -
 win32/deps/library/spatial/ppdata/grocery.dat      |   83 -
 win32/deps/library/spatial/ppdata/hccells.dat      |   45 -
 win32/deps/library/spatial/ppdata/nztrees.dat      |   90 -
 win32/deps/library/spatial/ppdata/pairfn.dat       |   45 -
 win32/deps/library/spatial/ppdata/pereg.dat        |   23 -
 win32/deps/library/spatial/ppdata/pines.dat        |   75 -
 win32/deps/library/spatial/ppdata/redwood.dat      |   65 -
 win32/deps/library/spatial/ppdata/schools.dat      |   43 -
 win32/deps/library/spatial/ppdata/stowns1.dat      |   73 -
 win32/deps/library/spatial/ppdata/tokyo.dat        |  235 -
 win32/deps/library/spatial/ppdata/towns.dat        |   72 -
 .../spatial/tests/Examples/spatial-Ex.Rout.save    |  514 --
 win32/deps/library/splines/DESCRIPTION             |    6 +-
 win32/deps/library/splines/Meta/Rd.rds             |  Bin 724 -> 724 bytes
 win32/deps/library/splines/Meta/hsearch.rds        |  Bin 720 -> 720 bytes
 win32/deps/library/splines/Meta/links.rds          |  Bin 323 -> 323 bytes
 win32/deps/library/splines/Meta/nsInfo.rds         |  Bin 567 -> 564 bytes
 win32/deps/library/splines/Meta/package.rds        |  Bin 588 -> 596 bytes
 win32/deps/library/splines/R/splines               |   26 +-
 win32/deps/library/splines/R/splines.rdb           |  Bin 39921 -> 40021 bytes
 win32/deps/library/splines/R/splines.rdx           |  Bin 797 -> 795 bytes
 win32/deps/library/splines/help/aliases.rds        |  Bin 229 -> 229 bytes
 win32/deps/library/splines/help/paths.rds          |  Bin 222 -> 222 bytes
 win32/deps/library/splines/help/splines.rdb        |  Bin 37096 -> 37352 bytes
 win32/deps/library/splines/help/splines.rdx        |  Bin 447 -> 457 bytes
 win32/deps/library/splines/html/00Index.html       |    2 +-
 win32/deps/library/splines/libs/i386/splines.dll   |  Bin 16384 -> 16384 bytes
 .../library/splines/po/da/LC_MESSAGES/R-splines.mo |  Bin 2495 -> 0 bytes
 .../library/splines/po/da/LC_MESSAGES/splines.mo   |  Bin 560 -> 0 bytes
 .../library/splines/po/de/LC_MESSAGES/R-splines.mo |  Bin 2689 -> 0 bytes
 .../library/splines/po/de/LC_MESSAGES/splines.mo   |  Bin 559 -> 0 bytes
 .../splines/po/en quot/LC_MESSAGES/R-splines.mo    |  Bin 2572 -> 0 bytes
 .../splines/po/en quot/LC_MESSAGES/splines.mo      |  Bin 510 -> 0 bytes
 .../library/splines/po/fr/LC_MESSAGES/R-splines.mo |  Bin 2778 -> 0 bytes
 .../library/splines/po/fr/LC_MESSAGES/splines.mo   |  Bin 582 -> 0 bytes
 .../library/splines/po/ja/LC_MESSAGES/R-splines.mo |  Bin 3233 -> 0 bytes
 .../library/splines/po/ja/LC_MESSAGES/splines.mo   |  Bin 527 -> 0 bytes
 .../library/splines/po/ko/LC_MESSAGES/R-splines.mo |  Bin 3104 -> 0 bytes
 .../library/splines/po/ko/LC_MESSAGES/splines.mo   |  Bin 666 -> 0 bytes
 .../library/splines/po/pl/LC_MESSAGES/R-splines.mo |  Bin 2847 -> 0 bytes
 .../library/splines/po/pl/LC_MESSAGES/splines.mo   |  Bin 686 -> 0 bytes
 .../splines/po/pt_BR/LC_MESSAGES/R-splines.mo      |  Bin 2628 -> 0 bytes
 .../splines/po/pt_BR/LC_MESSAGES/splines.mo        |  Bin 629 -> 0 bytes
 .../library/splines/po/ru/LC_MESSAGES/R-splines.mo |  Bin 2750 -> 0 bytes
 .../library/splines/po/ru/LC_MESSAGES/splines.mo   |  Bin 603 -> 0 bytes
 .../splines/po/zh_CN/LC_MESSAGES/R-splines.mo      |  Bin 2292 -> 0 bytes
 .../splines/po/zh_CN/LC_MESSAGES/splines.mo        |  Bin 496 -> 0 bytes
 win32/deps/library/stats/DESCRIPTION               |    6 +-
 win32/deps/library/stats/Meta/Rd.rds               |  Bin 12828 -> 12799 bytes
 win32/deps/library/stats/Meta/demo.rds             |  Bin 266 -> 266 bytes
 win32/deps/library/stats/Meta/hsearch.rds          |  Bin 12897 -> 12872 bytes
 win32/deps/library/stats/Meta/links.rds            |  Bin 6451 -> 6453 bytes
 win32/deps/library/stats/Meta/nsInfo.rds           |  Bin 4257 -> 4285 bytes
 win32/deps/library/stats/Meta/package.rds          |  Bin 490 -> 497 bytes
 win32/deps/library/stats/NAMESPACE                 |   41 +-
 win32/deps/library/stats/R/stats                   |   26 +-
 win32/deps/library/stats/R/stats.rdb               |  Bin 1248066 -> 1246173 bytes
 win32/deps/library/stats/R/stats.rdx               |  Bin 10629 -> 10583 bytes
 win32/deps/library/stats/help/AnIndex              |    6 +-
 win32/deps/library/stats/help/aliases.rds          |  Bin 5364 -> 5363 bytes
 win32/deps/library/stats/help/paths.rds            |  Bin 2317 -> 2309 bytes
 win32/deps/library/stats/help/stats.rdb            |  Bin 1405408 -> 1421968 bytes
 win32/deps/library/stats/help/stats.rdx            |  Bin 6496 -> 6501 bytes
 win32/deps/library/stats/html/00Index.html         |   10 +-
 win32/deps/library/stats/libs/i386/stats.dll       |  Bin 417280 -> 582144 bytes
 .../library/stats/po/da/LC_MESSAGES/R-stats.mo     |  Bin 5296 -> 0 bytes
 .../deps/library/stats/po/da/LC_MESSAGES/stats.mo  |  Bin 6484 -> 0 bytes
 .../library/stats/po/de/LC_MESSAGES/R-stats.mo     |  Bin 84095 -> 0 bytes
 .../deps/library/stats/po/de/LC_MESSAGES/stats.mo  |  Bin 6974 -> 0 bytes
 .../stats/po/en quot/LC_MESSAGES/R-stats.mo        |  Bin 81434 -> 0 bytes
 .../library/stats/po/en quot/LC_MESSAGES/stats.mo  |  Bin 6644 -> 0 bytes
 .../library/stats/po/fr/LC_MESSAGES/R-stats.mo     |  Bin 86777 -> 0 bytes
 .../deps/library/stats/po/fr/LC_MESSAGES/stats.mo  |  Bin 7108 -> 0 bytes
 .../library/stats/po/it/LC_MESSAGES/R-stats.mo     |  Bin 60627 -> 0 bytes
 .../deps/library/stats/po/it/LC_MESSAGES/stats.mo  |  Bin 3197 -> 0 bytes
 .../library/stats/po/ja/LC_MESSAGES/R-stats.mo     |  Bin 97532 -> 0 bytes
 .../deps/library/stats/po/ja/LC_MESSAGES/stats.mo  |  Bin 7981 -> 0 bytes
 .../library/stats/po/ko/LC_MESSAGES/R-stats.mo     |  Bin 96100 -> 0 bytes
 .../deps/library/stats/po/ko/LC_MESSAGES/stats.mo  |  Bin 7880 -> 0 bytes
 .../library/stats/po/pl/LC_MESSAGES/R-stats.mo     |  Bin 87528 -> 0 bytes
 .../deps/library/stats/po/pl/LC_MESSAGES/stats.mo  |  Bin 7253 -> 0 bytes
 .../library/stats/po/pt_BR/LC_MESSAGES/R-stats.mo  |  Bin 58125 -> 0 bytes
 .../library/stats/po/pt_BR/LC_MESSAGES/stats.mo    |  Bin 6692 -> 0 bytes
 .../library/stats/po/ru/LC_MESSAGES/R-stats.mo     |  Bin 83360 -> 0 bytes
 .../deps/library/stats/po/ru/LC_MESSAGES/stats.mo  |  Bin 6990 -> 0 bytes
 .../library/stats/po/tr/LC_MESSAGES/R-stats.mo     |  Bin 39906 -> 0 bytes
 .../library/stats/po/zh_CN/LC_MESSAGES/R-stats.mo  |  Bin 74953 -> 0 bytes
 .../library/stats/po/zh_CN/LC_MESSAGES/stats.mo    |  Bin 6109 -> 0 bytes
 win32/deps/library/stats/tests/ks-test.Rout.save   |   40 +-
 win32/deps/library/stats/tests/nls.R               |    5 +-
 win32/deps/library/stats/tests/nls.Rout.save       |  107 +-
 win32/deps/library/stats/tests/simulate.Rout.save  |    8 +-
 win32/deps/library/stats/tests/ts-tests.R          |    2 +-
 win32/deps/library/stats4/DESCRIPTION              |   10 -
 win32/deps/library/stats4/INDEX                    |   22 -
 win32/deps/library/stats4/Meta/Rd.rds              |  Bin 790 -> 0 bytes
 win32/deps/library/stats4/Meta/hsearch.rds         |  Bin 816 -> 0 bytes
 win32/deps/library/stats4/Meta/links.rds           |  Bin 419 -> 0 bytes
 win32/deps/library/stats4/Meta/nsInfo.rds          |  Bin 328 -> 0 bytes
 win32/deps/library/stats4/Meta/package.rds         |  Bin 543 -> 0 bytes
 win32/deps/library/stats4/NAMESPACE                |   13 -
 win32/deps/library/stats4/R/stats4                 |    9 -
 win32/deps/library/stats4/R/stats4.rdb             |  Bin 94834 -> 0 bytes
 win32/deps/library/stats4/R/stats4.rdx             |  Bin 1035 -> 0 bytes
 win32/deps/library/stats4/help/AnIndex             |   36 -
 win32/deps/library/stats4/help/aliases.rds         |  Bin 349 -> 0 bytes
 win32/deps/library/stats4/help/paths.rds           |  Bin 226 -> 0 bytes
 win32/deps/library/stats4/help/stats4.rdb          |  Bin 30377 -> 0 bytes
 win32/deps/library/stats4/help/stats4.rdx          |  Bin 460 -> 0 bytes
 win32/deps/library/stats4/html/00Index.html        |   73 -
 win32/deps/library/stats4/html/R.css               |   57 -
 .../library/stats4/po/da/LC_MESSAGES/R-stats4.mo   |  Bin 1287 -> 0 bytes
 .../library/stats4/po/de/LC_MESSAGES/R-stats4.mo   |  Bin 1294 -> 0 bytes
 .../stats4/po/en quot/LC_MESSAGES/R-stats4.mo      |  Bin 1208 -> 0 bytes
 .../library/stats4/po/fr/LC_MESSAGES/R-stats4.mo   |  Bin 1395 -> 0 bytes
 .../library/stats4/po/it/LC_MESSAGES/R-stats4.mo   |  Bin 1269 -> 0 bytes
 .../library/stats4/po/ja/LC_MESSAGES/R-stats4.mo   |  Bin 1475 -> 0 bytes
 .../library/stats4/po/ko/LC_MESSAGES/R-stats4.mo   |  Bin 1476 -> 0 bytes
 .../library/stats4/po/pl/LC_MESSAGES/R-stats4.mo   |  Bin 1491 -> 0 bytes
 .../stats4/po/pt_BR/LC_MESSAGES/R-stats4.mo        |  Bin 1354 -> 0 bytes
 .../library/stats4/po/ru/LC_MESSAGES/R-stats4.mo   |  Bin 1447 -> 0 bytes
 .../library/stats4/po/tr/LC_MESSAGES/R-stats4.mo   |  Bin 1275 -> 0 bytes
 .../stats4/po/zh_CN/LC_MESSAGES/R-stats4.mo        |  Bin 1199 -> 0 bytes
 win32/deps/library/stats4/tests/confint.R          |   23 -
 win32/deps/library/survival/CITATION               |   15 -
 win32/deps/library/survival/DESCRIPTION            |   19 -
 win32/deps/library/survival/INDEX                  |   88 -
 win32/deps/library/survival/Meta/Rd.rds            |  Bin 3411 -> 0 bytes
 win32/deps/library/survival/Meta/data.rds          |  Bin 654 -> 0 bytes
 win32/deps/library/survival/Meta/hsearch.rds       |  Bin 3250 -> 0 bytes
 win32/deps/library/survival/Meta/links.rds         |  Bin 1618 -> 0 bytes
 win32/deps/library/survival/Meta/nsInfo.rds        |  Bin 930 -> 0 bytes
 win32/deps/library/survival/Meta/package.rds       |  Bin 860 -> 0 bytes
 win32/deps/library/survival/Meta/vignette.rds      |  Bin 213 -> 0 bytes
 win32/deps/library/survival/NAMESPACE              |  100 -
 win32/deps/library/survival/NEWS.Rd                |  702 ---
 win32/deps/library/survival/R/survival             |    9 -
 win32/deps/library/survival/R/survival.rdb         |  Bin 516941 -> 0 bytes
 win32/deps/library/survival/R/survival.rdx         |  Bin 2454 -> 0 bytes
 win32/deps/library/survival/data/Rdata.rdb         |  Bin 1415335 -> 0 bytes
 win32/deps/library/survival/data/Rdata.rds         |  Bin 281 -> 0 bytes
 win32/deps/library/survival/data/Rdata.rdx         |  Bin 572 -> 0 bytes
 win32/deps/library/survival/doc/index.html         |   27 -
 win32/deps/library/survival/doc/timedep.R          |  121 -
 win32/deps/library/survival/doc/timedep.Rnw        |  419 --
 win32/deps/library/survival/doc/timedep.pdf        |  Bin 125002 -> 0 bytes
 win32/deps/library/survival/doc/validate.pdf       |  Bin 144741 -> 0 bytes
 win32/deps/library/survival/help/AnIndex           |  170 -
 win32/deps/library/survival/help/aliases.rds       |  Bin 1287 -> 0 bytes
 win32/deps/library/survival/help/paths.rds         |  Bin 709 -> 0 bytes
 win32/deps/library/survival/help/survival.rdb      |  Bin 280357 -> 0 bytes
 win32/deps/library/survival/help/survival.rdx      |  Bin 1798 -> 0 bytes
 win32/deps/library/survival/html/00Index.html      |  463 --
 win32/deps/library/survival/html/R.css             |   57 -
 win32/deps/library/survival/libs/i386/survival.dll |  Bin 120320 -> 0 bytes
 win32/deps/library/survival/tests/aareg.R          |  210 -
 win32/deps/library/survival/tests/aareg.Rout.save  |  381 --
 win32/deps/library/survival/tests/anova.R          |   31 -
 win32/deps/library/survival/tests/anova.Rout.save  |   57 -
 win32/deps/library/survival/tests/bladder.R        |   37 -
 .../deps/library/survival/tests/bladder.Rout.save  |  154 -
 win32/deps/library/survival/tests/book1.R          |  106 -
 win32/deps/library/survival/tests/book1.Rout.save  |  222 -
 win32/deps/library/survival/tests/book2.R          |  105 -
 win32/deps/library/survival/tests/book2.Rout.save  |  214 -
 win32/deps/library/survival/tests/book3.R          |  109 -
 win32/deps/library/survival/tests/book3.Rout.save  |  254 -
 win32/deps/library/survival/tests/book4.R          |  101 -
 win32/deps/library/survival/tests/book4.Rout.save  |  242 -
 win32/deps/library/survival/tests/book5.R          |  124 -
 win32/deps/library/survival/tests/book5.Rout.save  |  206 -
 win32/deps/library/survival/tests/book6.R          |  114 -
 win32/deps/library/survival/tests/book6.Rout.save  |  190 -
 win32/deps/library/survival/tests/book7.R          |   55 -
 win32/deps/library/survival/tests/book7.Rout.save  |   90 -
 win32/deps/library/survival/tests/cancer.R         |   34 -
 win32/deps/library/survival/tests/cancer.Rout.save |  224 -
 win32/deps/library/survival/tests/clogit.R         |   28 -
 win32/deps/library/survival/tests/clogit.Rout.save |   58 -
 win32/deps/library/survival/tests/concordance.R    |  109 -
 .../library/survival/tests/concordance.Rout.save   |  153 -
 win32/deps/library/survival/tests/counting.R       |   47 -
 .../deps/library/survival/tests/counting.Rout.save |   76 -
 win32/deps/library/survival/tests/coxsurv.R        |   80 -
 .../deps/library/survival/tests/coxsurv.Rout.save  |  119 -
 win32/deps/library/survival/tests/coxsurv2.R       |   58 -
 .../deps/library/survival/tests/coxsurv2.Rout.save |   85 -
 win32/deps/library/survival/tests/coxsurv3.R       |   98 -
 .../deps/library/survival/tests/coxsurv3.Rout.save |  127 -
 win32/deps/library/survival/tests/coxsurv4.R       |   49 -
 .../deps/library/survival/tests/coxsurv4.Rout.save |   75 -
 win32/deps/library/survival/tests/data.capacitor   |  125 -
 win32/deps/library/survival/tests/data.cracks      |    9 -
 win32/deps/library/survival/tests/data.donnell     |  210 -
 win32/deps/library/survival/tests/data.fluid       |   41 -
 win32/deps/library/survival/tests/data.interval    |   30 -
 win32/deps/library/survival/tests/data.motor       |   40 -
 win32/deps/library/survival/tests/data.peterson    |   20 -
 win32/deps/library/survival/tests/data.rat2        |  253 -
 win32/deps/library/survival/tests/data.smoke       |   33 -
 win32/deps/library/survival/tests/data.turbine     |   23 -
 win32/deps/library/survival/tests/data.valve       |   89 -
 win32/deps/library/survival/tests/detail.R         |   69 -
 win32/deps/library/survival/tests/detail.Rout.save |   89 -
 win32/deps/library/survival/tests/difftest.R       |   56 -
 .../deps/library/survival/tests/difftest.Rout.save |   96 -
 win32/deps/library/survival/tests/doaml.R          |   64 -
 win32/deps/library/survival/tests/doaml.Rout.save  |  185 -
 win32/deps/library/survival/tests/doweight.R       |  240 -
 .../deps/library/survival/tests/doweight.Rout.save |  429 --
 win32/deps/library/survival/tests/expected.R       |  286 --
 .../deps/library/survival/tests/expected.Rout.save |  329 --
 win32/deps/library/survival/tests/expected2.R      |   16 -
 .../library/survival/tests/expected2.Rout.save     |   36 -
 win32/deps/library/survival/tests/factor.R         |   33 -
 win32/deps/library/survival/tests/factor.Rout.save |   56 -
 win32/deps/library/survival/tests/factor2.R        |   26 -
 .../deps/library/survival/tests/factor2.Rout.save  |   52 -
 win32/deps/library/survival/tests/fr_cancer.R      |   27 -
 .../library/survival/tests/fr_cancer.Rout.save     |  120 -
 win32/deps/library/survival/tests/fr_colon.R       |   58 -
 .../deps/library/survival/tests/fr_colon.Rout.save |  317 --
 win32/deps/library/survival/tests/fr_kidney.R      |   70 -
 .../library/survival/tests/fr_kidney.Rout.save     |  302 --
 win32/deps/library/survival/tests/fr_lung.R        |   29 -
 .../deps/library/survival/tests/fr_lung.Rout.save  |   51 -
 win32/deps/library/survival/tests/fr_ovarian.R     |   21 -
 .../library/survival/tests/fr_ovarian.Rout.save    |   74 -
 win32/deps/library/survival/tests/fr_rat1.R        |   24 -
 .../deps/library/survival/tests/fr_rat1.Rout.save  |  109 -
 win32/deps/library/survival/tests/fr_rat2.R        |   65 -
 .../deps/library/survival/tests/fr_rat2.Rout.save  |  156 -
 win32/deps/library/survival/tests/fr_resid.R       |   94 -
 .../deps/library/survival/tests/fr_resid.Rout.save |  358 --
 win32/deps/library/survival/tests/fr_simple.R      |   62 -
 .../library/survival/tests/fr_simple.Rout.save     |   87 -
 win32/deps/library/survival/tests/frailty.R        |   22 -
 .../deps/library/survival/tests/frailty.Rout.save  |   44 -
 win32/deps/library/survival/tests/frank.R          |   23 -
 win32/deps/library/survival/tests/frank.Rout.save  |   45 -
 win32/deps/library/survival/tests/gray1.rda        |  Bin 3055 -> 0 bytes
 win32/deps/library/survival/tests/infcox.R         |   35 -
 win32/deps/library/survival/tests/infcox.Rout.save |   61 -
 win32/deps/library/survival/tests/jasa.R           |   89 -
 win32/deps/library/survival/tests/jasa.Rout.save   |  289 --
 win32/deps/library/survival/tests/model.matrix.R   |   31 -
 .../library/survival/tests/model.matrix.Rout.save  |   53 -
 win32/deps/library/survival/tests/mrtest.R         |   28 -
 win32/deps/library/survival/tests/mrtest.Rout.save |   48 -
 win32/deps/library/survival/tests/nested.R         |   16 -
 win32/deps/library/survival/tests/nested.Rout.save |   37 -
 win32/deps/library/survival/tests/ovarian.R        |   61 -
 .../deps/library/survival/tests/ovarian.Rout.save  |  319 --
 win32/deps/library/survival/tests/prednew.R        |   73 -
 .../deps/library/survival/tests/prednew.Rout.save  |  115 -
 win32/deps/library/survival/tests/pspline.R        |   34 -
 .../deps/library/survival/tests/pspline.Rout.save  |   60 -
 win32/deps/library/survival/tests/pyear.R          |  211 -
 win32/deps/library/survival/tests/pyear.Rout.save  |  669 ---
 win32/deps/library/survival/tests/r_capacitor.R    |   18 -
 .../library/survival/tests/r_capacitor.Rout.save   |   88 -
 win32/deps/library/survival/tests/r_donnell.R      |   60 -
 .../library/survival/tests/r_donnell.Rout.save     |  114 -
 win32/deps/library/survival/tests/r_lung.R         |   49 -
 win32/deps/library/survival/tests/r_lung.Rout.save |  165 -
 win32/deps/library/survival/tests/r_peterson.R     |   44 -
 .../library/survival/tests/r_peterson.Rout.save    |  117 -
 win32/deps/library/survival/tests/r_resid.R        |  109 -
 .../deps/library/survival/tests/r_resid.Rout.save  |  348 --
 win32/deps/library/survival/tests/r_sas.R          |  259 -
 win32/deps/library/survival/tests/r_sas.Rout.save  |  438 --
 win32/deps/library/survival/tests/r_scale.R        |   30 -
 .../deps/library/survival/tests/r_scale.Rout.save  |   55 -
 win32/deps/library/survival/tests/r_stanford.R     |   71 -
 .../library/survival/tests/r_stanford.Rout.save    |  111 -
 win32/deps/library/survival/tests/r_strata.R       |   60 -
 .../deps/library/survival/tests/r_strata.Rout.save |  148 -
 win32/deps/library/survival/tests/r_tdist.R        |   41 -
 .../deps/library/survival/tests/r_tdist.Rout.save  |  200 -
 win32/deps/library/survival/tests/r_user.R         |   29 -
 win32/deps/library/survival/tests/r_user.Rout.save |   53 -
 win32/deps/library/survival/tests/ratetable.R      |   63 -
 .../library/survival/tests/ratetable.Rout.save     |  164 -
 win32/deps/library/survival/tests/rounding.R       |   14 -
 .../deps/library/survival/tests/rounding.Rout.save |   34 -
 win32/deps/library/survival/tests/singtest.R       |   22 -
 .../deps/library/survival/tests/singtest.Rout.save |   50 -
 win32/deps/library/survival/tests/strata2.R        |   17 -
 .../deps/library/survival/tests/strata2.Rout.save  |   45 -
 win32/deps/library/survival/tests/stratatest.R     |   43 -
 .../library/survival/tests/stratatest.Rout.save    |   68 -
 .../deps/library/survival/tests/summary_survfit.R  |    5 -
 .../survival/tests/summary_survfit.Rout.save       |   54 -
 win32/deps/library/survival/tests/surv.R           |   23 -
 win32/deps/library/survival/tests/surv.Rout.save   |   59 -
 win32/deps/library/survival/tests/survfit2.R       |   13 -
 .../deps/library/survival/tests/survfit2.Rout.save |   33 -
 win32/deps/library/survival/tests/survreg2.R       |   62 -
 .../deps/library/survival/tests/survreg2.Rout.save |   87 -
 win32/deps/library/survival/tests/survtest.R       |   60 -
 .../deps/library/survival/tests/survtest.Rout.save |   99 -
 win32/deps/library/survival/tests/testci.R         |   67 -
 win32/deps/library/survival/tests/testci.Rout.save |   91 -
 win32/deps/library/survival/tests/testci2.R        |   52 -
 .../deps/library/survival/tests/testci2.Rout.save  |   72 -
 win32/deps/library/survival/tests/testnull.R       |   19 -
 .../deps/library/survival/tests/testnull.Rout.save |   42 -
 win32/deps/library/survival/tests/testreg.R        |   79 -
 .../deps/library/survival/tests/testreg.Rout.save  |  301 --
 win32/deps/library/survival/tests/tiedtime.R       |   23 -
 .../deps/library/survival/tests/tiedtime.Rout.save |   44 -
 win32/deps/library/survival/tests/ties.rda         |  Bin 6060 -> 0 bytes
 win32/deps/library/survival/tests/tt.R             |   38 -
 win32/deps/library/survival/tests/turnbull.R       |  156 -
 .../deps/library/survival/tests/turnbull.Rout.save |  194 -
 win32/deps/library/tcltk/DESCRIPTION               |    9 -
 win32/deps/library/tcltk/INDEX                     |   13 -
 win32/deps/library/tcltk/Meta/Rd.rds               |  Bin 2336 -> 0 bytes
 win32/deps/library/tcltk/Meta/demo.rds             |  Bin 266 -> 0 bytes
 win32/deps/library/tcltk/Meta/hsearch.rds          |  Bin 2399 -> 0 bytes
 win32/deps/library/tcltk/Meta/links.rds            |  Bin 2034 -> 0 bytes
 win32/deps/library/tcltk/Meta/nsInfo.rds           |  Bin 464 -> 0 bytes
 win32/deps/library/tcltk/Meta/package.rds          |  Bin 490 -> 0 bytes
 win32/deps/library/tcltk/NAMESPACE                 |   36 -
 win32/deps/library/tcltk/R/tcltk                   |    9 -
 win32/deps/library/tcltk/R/tcltk.rdb               |  Bin 77227 -> 0 bytes
 win32/deps/library/tcltk/R/tcltk.rdx               |  Bin 3483 -> 0 bytes
 win32/deps/library/tcltk/demo/tkcanvas.R           |  151 -
 win32/deps/library/tcltk/demo/tkdensity.R          |  104 -
 win32/deps/library/tcltk/demo/tkfaq.R              |   32 -
 win32/deps/library/tcltk/demo/tkttest.R            |   89 -
 win32/deps/library/tcltk/exec/Tk-frontend.R        |   25 -
 win32/deps/library/tcltk/exec/console.tcl          |   79 -
 win32/deps/library/tcltk/exec/hierarchy.tcl        | 1271 -----
 win32/deps/library/tcltk/exec/pkgIndex.tcl         |   50 -
 win32/deps/library/tcltk/exec/progressbar.tcl      | 2435 ---------
 win32/deps/library/tcltk/exec/util-dump.tcl        |  660 ---
 win32/deps/library/tcltk/exec/util-expand.tcl      |  207 -
 win32/deps/library/tcltk/exec/util-number.tcl      |  101 -
 win32/deps/library/tcltk/exec/util-string.tcl      |  149 -
 win32/deps/library/tcltk/exec/util-tk.tcl          |  244 -
 win32/deps/library/tcltk/exec/util.tcl             |  895 ----
 win32/deps/library/tcltk/exec/widget.tcl           |  975 ----
 win32/deps/library/tcltk/help/AnIndex              |  298 --
 win32/deps/library/tcltk/help/aliases.rds          |  Bin 2030 -> 0 bytes
 win32/deps/library/tcltk/help/paths.rds            |  Bin 254 -> 0 bytes
 win32/deps/library/tcltk/help/tcltk.rdb            |  Bin 50332 -> 0 bytes
 win32/deps/library/tcltk/help/tcltk.rdx            |  Bin 491 -> 0 bytes
 win32/deps/library/tcltk/html/00Index.html         |  664 ---
 win32/deps/library/tcltk/html/R.css                |   57 -
 win32/deps/library/tcltk/libs/i386/tcltk.dll       |  Bin 25600 -> 0 bytes
 .../library/tcltk/po/da/LC_MESSAGES/R-tcltk.mo     |  Bin 2388 -> 0 bytes
 .../deps/library/tcltk/po/da/LC_MESSAGES/tcltk.mo  |  Bin 1353 -> 0 bytes
 .../library/tcltk/po/de/LC_MESSAGES/R-tcltk.mo     |  Bin 2370 -> 0 bytes
 .../deps/library/tcltk/po/de/LC_MESSAGES/tcltk.mo  |  Bin 1394 -> 0 bytes
 .../tcltk/po/en quot/LC_MESSAGES/R-tcltk.mo        |  Bin 2284 -> 0 bytes
 .../library/tcltk/po/en quot/LC_MESSAGES/tcltk.mo  |  Bin 1288 -> 0 bytes
 .../library/tcltk/po/fr/LC_MESSAGES/R-tcltk.mo     |  Bin 2522 -> 0 bytes
 .../deps/library/tcltk/po/fr/LC_MESSAGES/tcltk.mo  |  Bin 1474 -> 0 bytes
 .../library/tcltk/po/it/LC_MESSAGES/R-tcltk.mo     |  Bin 916 -> 0 bytes
 .../library/tcltk/po/ja/LC_MESSAGES/R-tcltk.mo     |  Bin 2861 -> 0 bytes
 .../deps/library/tcltk/po/ja/LC_MESSAGES/tcltk.mo  |  Bin 1533 -> 0 bytes
 .../library/tcltk/po/ko/LC_MESSAGES/R-tcltk.mo     |  Bin 2769 -> 0 bytes
 .../deps/library/tcltk/po/ko/LC_MESSAGES/tcltk.mo  |  Bin 1516 -> 0 bytes
 .../library/tcltk/po/pl/LC_MESSAGES/R-tcltk.mo     |  Bin 2592 -> 0 bytes
 .../deps/library/tcltk/po/pl/LC_MESSAGES/tcltk.mo  |  Bin 1519 -> 0 bytes
 .../library/tcltk/po/pt_BR/LC_MESSAGES/R-tcltk.mo  |  Bin 2534 -> 0 bytes
 .../library/tcltk/po/pt_BR/LC_MESSAGES/tcltk.mo    |  Bin 1440 -> 0 bytes
 .../library/tcltk/po/ru/LC_MESSAGES/R-tcltk.mo     |  Bin 2468 -> 0 bytes
 .../deps/library/tcltk/po/ru/LC_MESSAGES/tcltk.mo  |  Bin 1442 -> 0 bytes
 .../library/tcltk/po/zh_CN/LC_MESSAGES/R-tcltk.mo  |  Bin 2239 -> 0 bytes
 .../library/tcltk/po/zh_CN/LC_MESSAGES/tcltk.mo    |  Bin 1285 -> 0 bytes
 win32/deps/library/tools/DESCRIPTION               |    9 -
 win32/deps/library/tools/INDEX                     |   56 -
 win32/deps/library/tools/Meta/Rd.rds               |  Bin 2586 -> 0 bytes
 win32/deps/library/tools/Meta/hsearch.rds          |  Bin 2540 -> 0 bytes
 win32/deps/library/tools/Meta/links.rds            |  Bin 1299 -> 0 bytes
 win32/deps/library/tools/Meta/nsInfo.rds           |  Bin 1375 -> 0 bytes
 win32/deps/library/tools/Meta/package.rds          |  Bin 495 -> 0 bytes
 win32/deps/library/tools/NAMESPACE                 |  132 -
 win32/deps/library/tools/R/tools                   |    9 -
 win32/deps/library/tools/R/tools.rdb               |  Bin 1089871 -> 0 bytes
 win32/deps/library/tools/R/tools.rdx               |  Bin 8703 -> 0 bytes
 win32/deps/library/tools/help/AnIndex              |  111 -
 win32/deps/library/tools/help/aliases.rds          |  Bin 1054 -> 0 bytes
 win32/deps/library/tools/help/paths.rds            |  Bin 599 -> 0 bytes
 win32/deps/library/tools/help/tools.rdb            |  Bin 168932 -> 0 bytes
 win32/deps/library/tools/help/tools.rdx            |  Bin 1345 -> 0 bytes
 win32/deps/library/tools/html/00Index.html         |  363 --
 win32/deps/library/tools/html/R.css                |   57 -
 win32/deps/library/tools/libs/i386/tools.dll       |  Bin 23040 -> 0 bytes
 .../library/tools/po/da/LC_MESSAGES/R-tools.mo     |  Bin 7100 -> 0 bytes
 .../deps/library/tools/po/da/LC_MESSAGES/tools.mo  |  Bin 977 -> 0 bytes
 .../library/tools/po/de/LC_MESSAGES/R-tools.mo     |  Bin 37421 -> 0 bytes
 .../deps/library/tools/po/de/LC_MESSAGES/tools.mo  |  Bin 985 -> 0 bytes
 .../tools/po/en quot/LC_MESSAGES/R-tools.mo        |  Bin 35950 -> 0 bytes
 .../library/tools/po/en quot/LC_MESSAGES/tools.mo  |  Bin 914 -> 0 bytes
 .../library/tools/po/fr/LC_MESSAGES/R-tools.mo     |  Bin 38744 -> 0 bytes
 .../deps/library/tools/po/fr/LC_MESSAGES/tools.mo  |  Bin 1038 -> 0 bytes
 .../library/tools/po/it/LC_MESSAGES/R-tools.mo     |  Bin 5734 -> 0 bytes
 .../deps/library/tools/po/it/LC_MESSAGES/tools.mo  |  Bin 661 -> 0 bytes
 .../library/tools/po/ja/LC_MESSAGES/R-tools.mo     |  Bin 44108 -> 0 bytes
 .../deps/library/tools/po/ja/LC_MESSAGES/tools.mo  |  Bin 1111 -> 0 bytes
 .../library/tools/po/ko/LC_MESSAGES/R-tools.mo     |  Bin 40547 -> 0 bytes
 .../deps/library/tools/po/ko/LC_MESSAGES/tools.mo  |  Bin 1167 -> 0 bytes
 .../library/tools/po/pl/LC_MESSAGES/R-tools.mo     |  Bin 38844 -> 0 bytes
 .../deps/library/tools/po/pl/LC_MESSAGES/tools.mo  |  Bin 1103 -> 0 bytes
 .../library/tools/po/pt_BR/LC_MESSAGES/R-tools.mo  |  Bin 2446 -> 0 bytes
 .../library/tools/po/pt_BR/LC_MESSAGES/tools.mo    |  Bin 809 -> 0 bytes
 .../library/tools/po/ru/LC_MESSAGES/R-tools.mo     |  Bin 36732 -> 0 bytes
 .../deps/library/tools/po/ru/LC_MESSAGES/tools.mo  |  Bin 1086 -> 0 bytes
 .../library/tools/po/tr/LC_MESSAGES/R-tools.mo     |  Bin 522 -> 0 bytes
 .../library/tools/po/zh_CN/LC_MESSAGES/R-tools.mo  |  Bin 33382 -> 0 bytes
 .../library/tools/po/zh_CN/LC_MESSAGES/tools.mo    |  Bin 874 -> 0 bytes
 win32/deps/library/tools/tests/undoc.R             |    4 -
 win32/deps/library/utils/DESCRIPTION               |    6 +-
 win32/deps/library/utils/INDEX                     |    7 +-
 win32/deps/library/utils/Meta/Rd.rds               |  Bin 6170 -> 6360 bytes
 win32/deps/library/utils/Meta/hsearch.rds          |  Bin 5992 -> 6173 bytes
 win32/deps/library/utils/Meta/links.rds            |  Bin 3110 -> 3202 bytes
 win32/deps/library/utils/Meta/nsInfo.rds           |  Bin 2141 -> 2271 bytes
 win32/deps/library/utils/Meta/package.rds          |  Bin 470 -> 493 bytes
 win32/deps/library/utils/Meta/vignette.rds         |  Bin 208 -> 208 bytes
 win32/deps/library/utils/NAMESPACE                 |   66 +-
 win32/deps/library/utils/R/utils                   |   26 +-
 win32/deps/library/utils/R/utils.rdb               |  Bin 632254 -> 680290 bytes
 win32/deps/library/utils/R/utils.rdx               |  Bin 6157 -> 6604 bytes
 win32/deps/library/utils/doc/Sweave.R              |   12 +-
 win32/deps/library/utils/doc/Sweave.Rnw            |    7 +-
 win32/deps/library/utils/doc/Sweave.pdf            |  Bin 321092 -> 321879 bytes
 win32/deps/library/utils/doc/index.html            |    4 +-
 win32/deps/library/utils/help/AnIndex              |   11 +-
 win32/deps/library/utils/help/aliases.rds          |  Bin 2584 -> 2654 bytes
 win32/deps/library/utils/help/paths.rds            |  Bin 1276 -> 1315 bytes
 win32/deps/library/utils/help/utils.rdb            |  Bin 594322 -> 624057 bytes
 win32/deps/library/utils/help/utils.rdx            |  Bin 3183 -> 3281 bytes
 win32/deps/library/utils/html/00Index.html         |   32 +-
 .../library/utils/po/da/LC_MESSAGES/R-utils.mo     |  Bin 6289 -> 0 bytes
 .../library/utils/po/de/LC_MESSAGES/R-utils.mo     |  Bin 38513 -> 0 bytes
 .../utils/po/en quot/LC_MESSAGES/R-utils.mo        |  Bin 37238 -> 0 bytes
 .../library/utils/po/fr/LC_MESSAGES/R-utils.mo     |  Bin 40117 -> 0 bytes
 .../library/utils/po/ja/LC_MESSAGES/R-utils.mo     |  Bin 45377 -> 0 bytes
 .../library/utils/po/ko/LC_MESSAGES/R-utils.mo     |  Bin 43182 -> 0 bytes
 .../library/utils/po/pl/LC_MESSAGES/R-utils.mo     |  Bin 40363 -> 0 bytes
 .../library/utils/po/pt_BR/LC_MESSAGES/R-utils.mo  |  Bin 1407 -> 0 bytes
 .../library/utils/po/ru/LC_MESSAGES/R-utils.mo     |  Bin 38036 -> 0 bytes
 .../library/utils/po/tr/LC_MESSAGES/R-utils.mo     |  Bin 999 -> 0 bytes
 .../library/utils/po/zh_CN/LC_MESSAGES/R-utils.mo  |  Bin 33846 -> 0 bytes
 win32/deps/library/utils/tests/Sweave-tst.R        |    6 +-
 win32/deps/library/utils/tests/completion.R        |    8 +
 1818 files changed, 13259 insertions(+), 118120 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 04806b9..7701a65 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,7 +3,7 @@ EXTRA_DIST = build/m4
 ACLOCAL_AMFLAGS = -I build/m4 -I build/m4/shave -I build/m4/shamrock
 
 SUBDIRS = chronopic-firmware \
-       encoder libcesarplayer CesarPlayer rdotnet src po manual chronojump_server
+        rdotnet encoder libcesarplayer CesarPlayer src po manual chronojump_server
 
 if OSTYPE_LINUX
 SUBDIRS += chronopic-tests chronojump_server
diff --git a/libcesarplayer/baconvideowidget-marshal.c b/libcesarplayer/baconvideowidget-marshal.c
index 6b34127..e914ccd 100644
--- a/libcesarplayer/baconvideowidget-marshal.c
+++ b/libcesarplayer/baconvideowidget-marshal.c
@@ -1,247 +1,247 @@
-
-#ifndef __baconvideowidget_marshal_MARSHAL_H__
-#define __baconvideowidget_marshal_MARSHAL_H__
-
-#include       <glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_schar (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:INT64,INT64,DOUBLE,BOOLEAN (./baconvideowidget-marshal.list:1) */
-extern void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure     *closure,
-                                                                       GValue       *return_value,
-                                                                       guint         n_param_values,
-                                                                       const GValue *param_values,
-                                                                       gpointer      invocation_hint,
-                                                                       gpointer      marshal_data);
-void
-baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure     *closure,
-                                                           GValue       *return_value G_GNUC_UNUSED,
-                                                           guint         n_param_values,
-                                                           const GValue *param_values,
-                                                           gpointer      invocation_hint G_GNUC_UNUSED,
-                                                           gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN) (gpointer     data1,
-                                                                 gint64       arg_1,
-                                                                 gint64       arg_2,
-                                                                 gdouble      arg_3,
-                                                                 gboolean     arg_4,
-                                                                 gpointer     data2);
-  register GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_int64 (param_values + 1),
-            g_marshal_value_peek_int64 (param_values + 2),
-            g_marshal_value_peek_double (param_values + 3),
-            g_marshal_value_peek_boolean (param_values + 4),
-            data2);
-}
-
-/* VOID:STRING,BOOLEAN,BOOLEAN (./baconvideowidget-marshal.list:2) */
-extern void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data);
-void
-baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure     *closure,
-                                                       GValue       *return_value G_GNUC_UNUSED,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint G_GNUC_UNUSED,
-                                                       gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN) (gpointer     data1,
-                                                             gpointer     arg_1,
-                                                             gboolean     arg_2,
-                                                             gboolean     arg_3,
-                                                             gpointer     data2);
-  register GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_boolean (param_values + 2),
-            g_marshal_value_peek_boolean (param_values + 3),
-            data2);
-}
-
-/* BOOLEAN:BOXED,BOXED,BOOLEAN (./baconvideowidget-marshal.list:3) */
-extern void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data);
-void
-baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure     *closure,
-                                                       GValue       *return_value G_GNUC_UNUSED,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint G_GNUC_UNUSED,
-                                                       gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN) (gpointer     data1,
-                                                                 gpointer     arg_1,
-                                                                 gpointer     arg_2,
-                                                                 gboolean     arg_3,
-                                                                 gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_boxed (param_values + 2),
-                       g_marshal_value_peek_boolean (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* VOID:INT64,INT64,FLOAT,BOOLEAN (./baconvideowidget-marshal.list:4) */
-extern void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data);
-void
-baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure     *closure,
-                                                          GValue       *return_value G_GNUC_UNUSED,
-                                                          guint         n_param_values,
-                                                          const GValue *param_values,
-                                                          gpointer      invocation_hint G_GNUC_UNUSED,
-                                                          gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN) (gpointer     data1,
-                                                                gint64       arg_1,
-                                                                gint64       arg_2,
-                                                                gfloat       arg_3,
-                                                                gboolean     arg_4,
-                                                                gpointer     data2);
-  register GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_int64 (param_values + 1),
-            g_marshal_value_peek_int64 (param_values + 2),
-            g_marshal_value_peek_float (param_values + 3),
-            g_marshal_value_peek_boolean (param_values + 4),
-            data2);
-}
-
-G_END_DECLS
-
-#endif /* __baconvideowidget_marshal_MARSHAL_H__ */
-
+
+#ifndef __baconvideowidget_marshal_MARSHAL_H__
+#define __baconvideowidget_marshal_MARSHAL_H__
+
+#include       <glib-object.h>
+
+G_BEGIN_DECLS
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v)     g_value_get_schar (v)
+#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v)      g_value_get_int (v)
+#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
+#define g_marshal_value_peek_long(v)     g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
+#define g_marshal_value_peek_float(v)    g_value_get_float (v)
+#define g_marshal_value_peek_double(v)   g_value_get_double (v)
+#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v)    g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v)   g_value_get_object (v)
+#define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ *          Do not access GValues directly in your code. Instead, use the
+ *          g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
+#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
+#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
+#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* VOID:INT64,INT64,DOUBLE,BOOLEAN (./baconvideowidget-marshal.list:1) */
+extern void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure     *closure,
+                                                                       GValue       *return_value,
+                                                                       guint         n_param_values,
+                                                                       const GValue *param_values,
+                                                                       gpointer      invocation_hint,
+                                                                       gpointer      marshal_data);
+void
+baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure     *closure,
+                                                           GValue       *return_value G_GNUC_UNUSED,
+                                                           guint         n_param_values,
+                                                           const GValue *param_values,
+                                                           gpointer      invocation_hint G_GNUC_UNUSED,
+                                                           gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN) (gpointer     data1,
+                                                                 gint64       arg_1,
+                                                                 gint64       arg_2,
+                                                                 gdouble      arg_3,
+                                                                 gboolean     arg_4,
+                                                                 gpointer     data2);
+  register GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 5);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_int64 (param_values + 1),
+            g_marshal_value_peek_int64 (param_values + 2),
+            g_marshal_value_peek_double (param_values + 3),
+            g_marshal_value_peek_boolean (param_values + 4),
+            data2);
+}
+
+/* VOID:STRING,BOOLEAN,BOOLEAN (./baconvideowidget-marshal.list:2) */
+extern void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure     *closure,
+                                                                   GValue       *return_value,
+                                                                   guint         n_param_values,
+                                                                   const GValue *param_values,
+                                                                   gpointer      invocation_hint,
+                                                                   gpointer      marshal_data);
+void
+baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure     *closure,
+                                                       GValue       *return_value G_GNUC_UNUSED,
+                                                       guint         n_param_values,
+                                                       const GValue *param_values,
+                                                       gpointer      invocation_hint G_GNUC_UNUSED,
+                                                       gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN) (gpointer     data1,
+                                                             gpointer     arg_1,
+                                                             gboolean     arg_2,
+                                                             gboolean     arg_3,
+                                                             gpointer     data2);
+  register GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_string (param_values + 1),
+            g_marshal_value_peek_boolean (param_values + 2),
+            g_marshal_value_peek_boolean (param_values + 3),
+            data2);
+}
+
+/* BOOLEAN:BOXED,BOXED,BOOLEAN (./baconvideowidget-marshal.list:3) */
+extern void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure     *closure,
+                                                                   GValue       *return_value,
+                                                                   guint         n_param_values,
+                                                                   const GValue *param_values,
+                                                                   gpointer      invocation_hint,
+                                                                   gpointer      marshal_data);
+void
+baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure     *closure,
+                                                       GValue       *return_value G_GNUC_UNUSED,
+                                                       guint         n_param_values,
+                                                       const GValue *param_values,
+                                                       gpointer      invocation_hint G_GNUC_UNUSED,
+                                                       gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN) (gpointer     data1,
+                                                                 gpointer     arg_1,
+                                                                 gpointer     arg_2,
+                                                                 gboolean     arg_3,
+                                                                 gpointer     data2);
+  register GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_boxed (param_values + 1),
+                       g_marshal_value_peek_boxed (param_values + 2),
+                       g_marshal_value_peek_boolean (param_values + 3),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
+}
+
+/* VOID:INT64,INT64,FLOAT,BOOLEAN (./baconvideowidget-marshal.list:4) */
+extern void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure     *closure,
+                                                                      GValue       *return_value,
+                                                                      guint         n_param_values,
+                                                                      const GValue *param_values,
+                                                                      gpointer      invocation_hint,
+                                                                      gpointer      marshal_data);
+void
+baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure     *closure,
+                                                          GValue       *return_value G_GNUC_UNUSED,
+                                                          guint         n_param_values,
+                                                          const GValue *param_values,
+                                                          gpointer      invocation_hint G_GNUC_UNUSED,
+                                                          gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN) (gpointer     data1,
+                                                                gint64       arg_1,
+                                                                gint64       arg_2,
+                                                                gfloat       arg_3,
+                                                                gboolean     arg_4,
+                                                                gpointer     data2);
+  register GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 5);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_int64 (param_values + 1),
+            g_marshal_value_peek_int64 (param_values + 2),
+            g_marshal_value_peek_float (param_values + 3),
+            g_marshal_value_peek_boolean (param_values + 4),
+            data2);
+}
+
+G_END_DECLS
+
+#endif /* __baconvideowidget_marshal_MARSHAL_H__ */
+
diff --git a/libcesarplayer/baconvideowidget-marshal.h b/libcesarplayer/baconvideowidget-marshal.h
index 035d853..7cba5d9 100644
--- a/libcesarplayer/baconvideowidget-marshal.h
+++ b/libcesarplayer/baconvideowidget-marshal.h
@@ -1,44 +1,44 @@
-
-#ifndef __baconvideowidget_marshal_MARSHAL_H__
-#define __baconvideowidget_marshal_MARSHAL_H__
-
-#include       <glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:INT64,INT64,DOUBLE,BOOLEAN (./baconvideowidget-marshal.list:1) */
-extern void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure     *closure,
-                                                                       GValue       *return_value,
-                                                                       guint         n_param_values,
-                                                                       const GValue *param_values,
-                                                                       gpointer      invocation_hint,
-                                                                       gpointer      marshal_data);
-
-/* VOID:STRING,BOOLEAN,BOOLEAN (./baconvideowidget-marshal.list:2) */
-extern void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data);
-
-/* BOOLEAN:BOXED,BOXED,BOOLEAN (./baconvideowidget-marshal.list:3) */
-extern void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data);
-
-/* VOID:INT64,INT64,FLOAT,BOOLEAN (./baconvideowidget-marshal.list:4) */
-extern void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __baconvideowidget_marshal_MARSHAL_H__ */
-
+
+#ifndef __baconvideowidget_marshal_MARSHAL_H__
+#define __baconvideowidget_marshal_MARSHAL_H__
+
+#include       <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* VOID:INT64,INT64,DOUBLE,BOOLEAN (./baconvideowidget-marshal.list:1) */
+extern void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure     *closure,
+                                                                       GValue       *return_value,
+                                                                       guint         n_param_values,
+                                                                       const GValue *param_values,
+                                                                       gpointer      invocation_hint,
+                                                                       gpointer      marshal_data);
+
+/* VOID:STRING,BOOLEAN,BOOLEAN (./baconvideowidget-marshal.list:2) */
+extern void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure     *closure,
+                                                                   GValue       *return_value,
+                                                                   guint         n_param_values,
+                                                                   const GValue *param_values,
+                                                                   gpointer      invocation_hint,
+                                                                   gpointer      marshal_data);
+
+/* BOOLEAN:BOXED,BOXED,BOOLEAN (./baconvideowidget-marshal.list:3) */
+extern void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure     *closure,
+                                                                   GValue       *return_value,
+                                                                   guint         n_param_values,
+                                                                   const GValue *param_values,
+                                                                   gpointer      invocation_hint,
+                                                                   gpointer      marshal_data);
+
+/* VOID:INT64,INT64,FLOAT,BOOLEAN (./baconvideowidget-marshal.list:4) */
+extern void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure     *closure,
+                                                                      GValue       *return_value,
+                                                                      guint         n_param_values,
+                                                                      const GValue *param_values,
+                                                                      gpointer      invocation_hint,
+                                                                      gpointer      marshal_data);
+
+G_END_DECLS
+
+#endif /* __baconvideowidget_marshal_MARSHAL_H__ */
+
diff --git a/rdotnet/Makefile b/rdotnet/Makefile
new file mode 100644
index 0000000..16c904e
--- /dev/null
+++ b/rdotnet/Makefile
@@ -0,0 +1,620 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# rdotnet/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
+pkgdatadir = $(datadir)/chronojump
+pkgincludedir = $(includedir)/chronojump
+pkglibdir = $(libdir)/chronojump
+pkglibexecdir = $(libexecdir)/chronojump
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-mingw32
+host_triplet = i686-pc-mingw32
+subdir = rdotnet
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+       $(top_srcdir)/build/m4/shamrock/mono.m4 \
+       $(top_srcdir)/build/m4/shamrock/programs.m4 \
+       $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = aclocal -Ic:/gstreamer-sdk/0.10/x86/share/aclocal 
-IC:/MinGW/msys/1.0/home/chronojump/cerbero/build-tools/share/aclocal
+ACLOCAL_AMFLAGS = -I build/m4/shamrock -I build/m4/shave ${ACLOCAL_FLAGS}
+ALL_LINGUAS = 
+AMTAR = $${TAR-tar}
+AR = i686-w64-mingw32-ar
+AUTOCONF = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoconf
+AUTOHEADER = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoheader
+AUTOMAKE = ${SHELL} /usr/home/chronojump/chronojump/missing --run automake-1.12
+AWK = gawk
+CATALOGS = 
+CATOBJEXT = .gmo
+CC = i686-w64-mingw32-gcc
+CCDEPMODE = depmode=gcc3
+CESARPLAYER_CFLAGS = -mms-bitfields -Ic:/gstreamer-sdk/0.10/x86/include/gtk-2.0 
-Ic:/gstreamer-sdk/0.10/x86/lib/gtk-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/atk-1.0 
-Ic:/gstreamer-sdk/0.10/x86/include/cairo -Ic:/gstreamer-sdk/0.10/x86/include/gdk-pixbuf-2.0 
-Ic:/gstreamer-sdk/0.10/x86/include/pango-1.0 -Ic:/gstreamer-sdk/0.10/x86/include/glib-2.0 
-Ic:/gstreamer-sdk/0.10/x86/lib/glib-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/pixman-1 
-Ic:/gstreamer-sdk/0.10/x86/include/fontconfig -Ic:/gstreamer-sdk/0.10/x86/include/freetype2 
-Ic:/gstreamer-sdk/0.10/x86/include/libpng15 -Ic:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10 
-Ic:/gstreamer-sdk/0.10/x86/include/libxml2  
+CESARPLAYER_LIBS = -Lc:/gstreamer-sdk/0.10/x86/lib -lgtk-win32-2.0 -latk-1.0 -lgdk-win32-2.0 
-lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgio-2.0 -lgstaudio-0.10 
-lgstvideo-0.10 -lgstpbutils-0.10 -lgstinterfaces-0.10 -lgstapp-0.10 -lgstbase-0.10 -lgsttag-0.10 
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lxml2 -lglib-2.0 -lintl  
+CFLAGS = -Wall -g -O2 -DWINVER=0x0501
+CPP = i686-w64-mingw32-cpp
+CPPFLAGS = 
+CYGPATH_W = echo
+DATADIRNAME = share
+DEFS = -DPACKAGE_NAME=\"chronojump\" -DPACKAGE_TARNAME=\"chronojump\" -DPACKAGE_VERSION=\"1.3.9\" 
-DPACKAGE_STRING=\"chronojump\ 1.3.9\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"chronojump\" 
-DVERSION=\"1.3.9\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 
-DHAVE_UNISTD_H=1 -DLT_OBJDIR=\".libs/\" -DGETTEXT_PACKAGE=\"chronojump\" -DHAVE_LOCALE_H=1 
-DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DENABLE_NLS=1 -DOSTYPE_WINDOWS=1
+DEPDIR = .deps
+DLLTOOL = i686-w64-mingw32-dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = .exe
+FGREP = /bin/grep -F
+GETTEXT_PACKAGE = chronojump
+GLADE_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml  
+GLADE_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glade-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll  
+GLIB_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml  
+GLIB_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll  
+GMOFILES = 
+GMSGFMT = /usr/home/chronojump/cerbero/build-tools/bin/msgfmt
+GREP = /bin/grep
+GTK_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml  
+GTK_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll  
+INSTALL = /bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+INSTOBJEXT = .mo
+INTLLIBS = -lintl 
+INTLTOOL_EXTRACT = /usr/home/chronojump/cerbero/build-tools/bin/intltool-extract
+INTLTOOL_MERGE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-merge
+INTLTOOL_PERL = /bin/perl
+INTLTOOL_UPDATE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-update
+LD = i686-w64-mingw32-ld
+LDFLAGS = -Lc:/gstreamer-sdk/0.10/x86/lib 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = cp -p
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /usr/home/chronojump/chronojump/missing --run makeinfo
+MANIFEST_TOOL = :
+MCS = /c/gstreamer-sdk/0.10/x86/bin/dmcs
+MKDIR_P = /bin/mkdir -p
+MKINSTALLDIRS = ./mkinstalldirs
+MONO = /c/gstreamer-sdk/0.10/x86/bin/mono
+MONO_MODULE_CFLAGS =  
+MONO_MODULE_LIBS =  
+MSGFMT = msgfmt
+MSGFMT_OPTS = -c
+MSGMERGE = /usr/home/chronojump/cerbero/build-tools/bin/msgmerge
+NM = i686-w64-mingw32-nm
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL = 
+OTOOL64 = 
+PACKAGE = chronojump
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = chronojump
+PACKAGE_STRING = chronojump 1.3.9
+PACKAGE_TARNAME = chronojump
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.3.9
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/home/chronojump/cerbero/build-tools/bin/pkg-config
+PKG_CONFIG_LIBDIR = c:/gstreamer-sdk/0.10/x86/lib/pkgconfig
+PKG_CONFIG_PATH = c:/gstreamer-sdk/0.10/x86/share/pkgconfig
+POFILES = 
+POSUB = po
+PO_IN_DATADIR_FALSE = 
+PO_IN_DATADIR_TRUE = 
+PYTHON = /c/Python27/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_PLATFORM = win32
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.7
+RANLIB = i686-w64-mingw32-ranlib
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/sh
+STRIP = i686-w64-mingw32-strip
+USE_NLS = yes
+VERSION = 1.3.9
+XGETTEXT = /usr/home/chronojump/cerbero/build-tools/bin/xgettext
+abs_builddir = /usr/home/chronojump/chronojump/rdotnet
+abs_srcdir = /usr/home/chronojump/chronojump/rdotnet
+abs_top_builddir = /usr/home/chronojump/chronojump
+abs_top_srcdir = /usr/home/chronojump/chronojump
+ac_ct_AR = 
+ac_ct_CC = i686-w64-mingw32-gcc
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-mingw32
+build_alias = 
+build_cpu = i686
+build_os = mingw32
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = /c/gstreamer-sdk/0.10/x86
+expanded_bindir = /c/gstreamer-sdk/0.10/x86/bin
+expanded_datadir = /c/gstreamer-sdk/0.10/x86/share
+expanded_libdir = /c/gstreamer-sdk/0.10/x86/lib
+host = i686-pc-mingw32
+host_alias = 
+host_cpu = i686
+host_os = mingw32
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /usr/home/chronojump/chronojump/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/chronojump
+pkgpythondir = ${pythondir}/chronojump
+prefix = /c/gstreamer-sdk/0.10/x86
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}\Lib\site-packages
+pythondir = ${prefix}\Lib\site-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+SUBDIRS = RDotNet.NativeLibrary R.NET
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign rdotnet/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+cscopelist-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS) $(LISP)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" 
distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
+       cscopelist-recursive ctags-recursive install-am install-strip \
+       tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       cscopelist cscopelist-recursive ctags ctags-recursive \
+       distclean distclean-generic distclean-libtool distclean-tags \
+       distdir dvi dvi-am html html-am info info-am install \
+       install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-recursive uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/Makefile.in b/rdotnet/Makefile.in
new file mode 100644
index 0000000..1bb9c55
--- /dev/null
+++ b/rdotnet/Makefile.in
@@ -0,0 +1,620 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ SET_MAKE@
+VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = rdotnet
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+       $(top_srcdir)/build/m4/shamrock/mono.m4 \
+       $(top_srcdir)/build/m4/shamrock/programs.m4 \
+       $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@
+CESARPLAYER_LIBS = @CESARPLAYER_LIBS@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLADE_SHARP_20_CFLAGS = @GLADE_SHARP_20_CFLAGS@
+GLADE_SHARP_20_LIBS = @GLADE_SHARP_20_LIBS@
+GLIB_SHARP_20_CFLAGS = @GLIB_SHARP_20_CFLAGS@
+GLIB_SHARP_20_LIBS = @GLIB_SHARP_20_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GTK_SHARP_20_CFLAGS = @GTK_SHARP_20_CFLAGS@
+GTK_SHARP_20_LIBS = @GTK_SHARP_20_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MCS = @MCS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MONO = @MONO@
+MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
+MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+expanded_bindir = @expanded_bindir@
+expanded_datadir = @expanded_datadir@
+expanded_libdir = @expanded_libdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = RDotNet.NativeLibrary R.NET
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign rdotnet/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+cscopelist-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS) $(LISP)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" 
distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
+       cscopelist-recursive ctags-recursive install-am install-strip \
+       tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       cscopelist cscopelist-recursive ctags ctags-recursive \
+       distclean distclean-generic distclean-libtool distclean-tags \
+       distdir dvi dvi-am html html-am info info-am install \
+       install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-recursive uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/R.NET/BuiltinFunction.cs b/rdotnet/R.NET/BuiltinFunction.cs
index edcca4b..ee136ce 100644
--- a/rdotnet/R.NET/BuiltinFunction.cs
+++ b/rdotnet/R.NET/BuiltinFunction.cs
@@ -1,34 +1,34 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Linq;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A built-in function.
-       /// </summary>
-       public class BuiltinFunction : Function
-       {
-               /// <summary>
-               /// Creates a built-in function proxy.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="pointer">The pointer.</param>
-               protected internal BuiltinFunction(REngine engine, IntPtr pointer)
-                       : base(engine, pointer)
-               {}
+   /// <summary>
+   /// A built-in function.
+   /// </summary>
+   public class BuiltinFunction : Function
+   {
+      /// <summary>
+      /// Creates a built-in function proxy.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="pointer">The pointer.</param>
+      protected internal BuiltinFunction(REngine engine, IntPtr pointer)
+         : base(engine, pointer)
+      { }
 
-               public override SymbolicExpression Invoke(SymbolicExpression[] args)
-               {
-                       IntPtr argument = Engine.NilValue.DangerousGetHandle();
-                       foreach (SymbolicExpression arg in args.Reverse())
-                       {
-                               argument = Engine.GetFunction<Rf_cons>("Rf_cons")(arg.DangerousGetHandle(), 
argument);
-                       }
-                       IntPtr call = Engine.GetFunction<Rf_lcons>("Rf_lcons")(handle, argument);
+      public override SymbolicExpression Invoke(SymbolicExpression[] args)
+      {
+         IntPtr argument = Engine.NilValue.DangerousGetHandle();
+         foreach (SymbolicExpression arg in args.Reverse())
+         {
+            argument = Engine.GetFunction<Rf_cons>()(arg.DangerousGetHandle(), argument);
+         }
+         IntPtr call = Engine.GetFunction<Rf_lcons>()(handle, argument);
 
-                       IntPtr result = Engine.GetFunction<Rf_eval>("Rf_eval")(call, 
Engine.GlobalEnvironment.DangerousGetHandle());
-                       return new SymbolicExpression(Engine, result);
-               }
-       }
-}
+         IntPtr result = Engine.GetFunction<Rf_eval>()(call, Engine.GlobalEnvironment.DangerousGetHandle());
+         return new SymbolicExpression(Engine, result);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/CharacterMatrix.cs b/rdotnet/R.NET/CharacterMatrix.cs
index f27c55c..647f863 100644
--- a/rdotnet/R.NET/CharacterMatrix.cs
+++ b/rdotnet/R.NET/CharacterMatrix.cs
@@ -1,99 +1,122 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A matrix of strings.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class CharacterMatrix : Matrix<string>
-       {
-               /// <summary>
-               /// Creates a new empty CharacterMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <seealso cref="REngineExtension.CreateCharacterMatrix(REngine, int, int)"/>
-               public CharacterMatrix(REngine engine, int rowCount, int columnCount)
-                       : base(engine, SymbolicExpressionType.CharacterVector, rowCount, columnCount)
-               {}
+   /// <summary>
+   /// A matrix of strings.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class CharacterMatrix : Matrix<string>
+   {
+      /// <summary>
+      /// Creates a new empty CharacterMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <seealso cref="REngineExtension.CreateCharacterMatrix(REngine, int, int)"/>
+      public CharacterMatrix(REngine engine, int rowCount, int columnCount)
+         : base(engine, SymbolicExpressionType.CharacterVector, rowCount, columnCount)
+      { }
 
-               /// <summary>
-               /// Creates a new CharacterMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="matrix">The values.</param>
-               /// <seealso cref="REngineExtension.CreateCharacterMatrix(REngine, string[,])"/>
-               public CharacterMatrix(REngine engine, string[,] matrix)
-                       : base(engine, SymbolicExpressionType.CharacterVector, matrix)
-               {}
+      /// <summary>
+      /// Creates a new CharacterMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="matrix">The values.</param>
+      /// <seealso cref="REngineExtension.CreateCharacterMatrix(REngine, string[,])"/>
+      public CharacterMatrix(REngine engine, string[,] matrix)
+         : base(engine, SymbolicExpressionType.CharacterVector, matrix)
+      { }
 
-               /// <summary>
-               /// Creates a new instance for a string matrix.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a string matrix.</param>
-               protected internal CharacterMatrix(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for a string matrix.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a string matrix.</param>
+      protected internal CharacterMatrix(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
-               /// <param name="columnIndex">The zero-based columnIndex index of the element to get or 
set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override string this[int rowIndex, int columnIndex]
-               {
-                       get
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
-                                       return new InternalString(Engine, pointer);
-                               }
-                       }
-                       set
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       SymbolicExpression s = value == null ? Engine.NilValue : new 
InternalString(Engine, value);
-                                       using (new ProtectedPointer(s))
-                                       {
-                                               Marshal.WriteIntPtr(DataPointer, offset, 
s.DangerousGetHandle());
-                                       }
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+      /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override string this[int rowIndex, int columnIndex]
+      {
+         get
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(rowIndex, columnIndex);
+               IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
+               return new InternalString(Engine, pointer);
+            }
+         }
+         set
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               SetValue(rowIndex, columnIndex, value);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of a pointer in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return Marshal.SizeOf(typeof(IntPtr)); }
-               }
-       }
-}
+      private void SetValue(int rowIndex, int columnIndex, string value)
+      {
+         int offset = GetOffset(rowIndex, columnIndex);
+         SymbolicExpression s = value == null ? Engine.NilValue : new InternalString(Engine, value);
+         using (new ProtectedPointer(s))
+         {
+            Marshal.WriteIntPtr(DataPointer, offset, s.DangerousGetHandle());
+         }
+      }
+
+      protected override void InitMatrixFastDirect(string[,] matrix)
+      {
+         int rows = matrix.GetLength(0);
+         int cols = matrix.GetLength(1);
+         for (int i = 0; i < rows; i++)
+         {
+            for (int j = 0; j < cols; j++)
+            {
+               SetValue(i, j, matrix[i, j]);
+            }
+         }
+      }
+
+      protected override string[,] GetArrayFast()
+      {
+         throw new NotImplementedException();
+      }
+
+      /// <summary>
+      /// Gets the size of a pointer in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return Marshal.SizeOf(typeof(IntPtr)); }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/CharacterVector.cs b/rdotnet/R.NET/CharacterVector.cs
index 1e07f6c..070f615 100644
--- a/rdotnet/R.NET/CharacterVector.cs
+++ b/rdotnet/R.NET/CharacterVector.cs
@@ -1,90 +1,117 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Collections.Generic;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A collection of strings.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class CharacterVector : Vector<string>
-       {
-               /// <summary>
-               /// Creates a new empty CharacterVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="length">The length.</param>
-               /// <seealso cref="REngineExtension.CreateCharacterVector(REngine, int)"/>
-               public CharacterVector(REngine engine, int length)
-                       : base(engine, SymbolicExpressionType.CharacterVector, length)
-               {}
+   /// <summary>
+   /// A collection of strings.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class CharacterVector : Vector<string>
+   {
+      /// <summary>
+      /// Creates a new empty CharacterVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="length">The length.</param>
+      /// <seealso cref="REngineExtension.CreateCharacterVector(REngine, int)"/>
+      public CharacterVector(REngine engine, int length)
+         : base(engine, SymbolicExpressionType.CharacterVector, length)
+      { }
 
-               /// <summary>
-               /// Creates a new CharacterVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="vector">The values.</param>
-               /// <seealso cref="REngineExtension.CreateCharacterVector(REngine, IEnumerable{string})"/>
-               public CharacterVector(REngine engine, IEnumerable<string> vector)
-                       : base(engine, SymbolicExpressionType.CharacterVector, vector)
-               {}
+      /// <summary>
+      /// Creates a new CharacterVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="vector">The values.</param>
+      /// <seealso cref="REngineExtension.CreateCharacterVector(REngine, IEnumerable{string})"/>
+      public CharacterVector(REngine engine, IEnumerable<string> vector)
+         : base(engine, SymbolicExpressionType.CharacterVector, vector)
+      { }
 
-               /// <summary>
-               /// Creates a new instance for a string vector.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a string vector.</param>
-               protected internal CharacterVector(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for a string vector.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a string vector.</param>
+      protected internal CharacterVector(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="index">The zero-based index of the element to get or set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override string this[int index]
-               {
-                       get
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
-                                       return new InternalString(Engine, pointer);
-                               }
-                       }
-                       set
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       SymbolicExpression s = value == null ? Engine.NilValue : new 
InternalString(Engine, value);
-                                       using (new ProtectedPointer(s))
-                                       {
-                                               Marshal.WriteIntPtr(DataPointer, offset, 
s.DangerousGetHandle());
-                                       }
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="index">The zero-based index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override string this[int index]
+      {
+         get
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               return GetValue(index);
+            }
+         }
+         set
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               SetValue(index, value);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of a pointer in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return Marshal.SizeOf(typeof(IntPtr)); }
-               }
-       }
-}
+      protected override string[] GetArrayFast()
+      {
+         int n = this.Length;
+         string[] res = new string[n];
+         for (int i = 0; i < n; i++)
+            res[i] = GetValue(i);
+         return res;
+      }
+
+      private string GetValue(int index)
+      {
+         int offset = GetOffset(index);
+         IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
+         return new InternalString(Engine, pointer).GetInternalValue();
+      }
+
+      private void SetValue(int index, string value)
+      {
+         int offset = GetOffset(index);
+         SymbolicExpression s = value == null ? Engine.GetPredefinedSymbol("R_NaString") : new 
InternalString(Engine, value);
+         using (new ProtectedPointer(s))
+         {
+            Marshal.WriteIntPtr(DataPointer, offset, s.DangerousGetHandle());
+         }
+      }
+
+      protected override void SetVectorDirect(string[] values)
+      {
+         // Possibly not the fastest implementation, but faster may require C code.
+         // TODO check the behavior of P/Invoke on array of strings (VT_ARRAY|VT_LPSTR?)
+         for (int i = 0; i < values.Length; i++)
+            SetValue(i, values[i]);
+      }
+
+      /// <summary>
+      /// Gets the size of a pointer in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return Marshal.SizeOf(typeof(IntPtr)); }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Closure.cs b/rdotnet/R.NET/Closure.cs
index b31c51d..e3fbd41 100644
--- a/rdotnet/R.NET/Closure.cs
+++ b/rdotnet/R.NET/Closure.cs
@@ -1,74 +1,74 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Linq;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A closure.
-       /// </summary>
-       public class Closure : Function
-       {
-               /// <summary>
-               /// Creates a closure object.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="pointer">The pointer.</param>
-               protected internal Closure(REngine engine, IntPtr pointer)
-                       : base(engine, pointer)
-               {}
+   /// <summary>
+   /// A closure.
+   /// </summary>
+   public class Closure : Function
+   {
+      /// <summary>
+      /// Creates a closure object.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="pointer">The pointer.</param>
+      protected internal Closure(REngine engine, IntPtr pointer)
+         : base(engine, pointer)
+      { }
 
-               /// <summary>
-               /// Gets the arguments list.
-               /// </summary>
-               public Pairlist Arguments
-               {
-                       get
-                       {
-                               SEXPREC sexp = GetInternalStructure();
-                               return new Pairlist(Engine, sexp.closxp.formals);
-                       }
-               }
+      /// <summary>
+      /// Gets the arguments list.
+      /// </summary>
+      public Pairlist Arguments
+      {
+         get
+         {
+            SEXPREC sexp = GetInternalStructure();
+            return new Pairlist(Engine, sexp.closxp.formals);
+         }
+      }
 
-               /// <summary>
-               /// Gets the body.
-               /// </summary>
-               public Language Body
-               {
-                       get
-                       {
-                               SEXPREC sexp = GetInternalStructure();
-                               return new Language(Engine, sexp.closxp.body);
-                       }
-               }
+      /// <summary>
+      /// Gets the body.
+      /// </summary>
+      public Language Body
+      {
+         get
+         {
+            SEXPREC sexp = GetInternalStructure();
+            return new Language(Engine, sexp.closxp.body);
+         }
+      }
 
-               /// <summary>
-               /// Gets the environment.
-               /// </summary>
-               public REnvironment Environment
-               {
-                       get
-                       {
-                               SEXPREC sexp = GetInternalStructure();
-                               return new REnvironment(Engine, sexp.closxp.env);
-                       }
-               }
+      /// <summary>
+      /// Gets the environment.
+      /// </summary>
+      public REnvironment Environment
+      {
+         get
+         {
+            SEXPREC sexp = GetInternalStructure();
+            return new REnvironment(Engine, sexp.closxp.env);
+         }
+      }
 
-               public override SymbolicExpression Invoke(SymbolicExpression[] args)
-               {
-                       int count = Arguments.Count;
-                       if (args.Length != count)
-                       {
-                               throw new ArgumentException();
-                       }
+      public override SymbolicExpression Invoke(SymbolicExpression[] args)
+      {
+         int count = Arguments.Count;
+         if (args.Length != count)
+         {
+            throw new ArgumentException();
+         }
 
-                       var arguments = new GenericVector(Engine, args);
-                       var names = new CharacterVector(Engine, Arguments.Select(arg => 
arg.PrintName).ToArray());
-                       arguments.SetAttribute(Engine.GetPredefinedSymbol("R_NamesSymbol"), names);
+         var arguments = new GenericVector(Engine, args);
+         var names = new CharacterVector(Engine, Arguments.Select(arg => arg.PrintName).ToArray());
+         arguments.SetAttribute(Engine.GetPredefinedSymbol("R_NamesSymbol"), names);
 
-                       IntPtr newEnvironment = 
Engine.GetFunction<Rf_allocSExp>("Rf_allocSExp")(SymbolicExpressionType.Environment);
-                       IntPtr result = 
Engine.GetFunction<Rf_applyClosure>("Rf_applyClosure")(Body.DangerousGetHandle(), handle, 
arguments.ToPairlist().DangerousGetHandle(), Environment.DangerousGetHandle(), newEnvironment);
-                       return new SymbolicExpression(Engine, result);
-               }
-       }
-}
+         IntPtr newEnvironment = Engine.GetFunction<Rf_allocSExp>()(SymbolicExpressionType.Environment);
+         IntPtr result = Engine.GetFunction<Rf_applyClosure>()(Body.DangerousGetHandle(), handle, 
arguments.ToPairlist().DangerousGetHandle(), Environment.DangerousGetHandle(), newEnvironment);
+         return new SymbolicExpression(Engine, result);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/ComplexMatrix.cs b/rdotnet/R.NET/ComplexMatrix.cs
index 0bc46d4..f230ad1 100644
--- a/rdotnet/R.NET/ComplexMatrix.cs
+++ b/rdotnet/R.NET/ComplexMatrix.cs
@@ -1,100 +1,116 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Numerics;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A matrix of complex numbers.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class ComplexMatrix : Matrix<Complex>
-       {
-               /// <summary>
-               /// Creates a new empty ComplexMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <seealso cref="REngineExtension.CreateComplexMatrix(REngine, int, int)"/>
-               public ComplexMatrix(REngine engine, int rowCount, int columnCount)
-                       : base(engine, SymbolicExpressionType.ComplexVector, rowCount, columnCount)
-               {}
+   /// <summary>
+   /// A matrix of complex numbers.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class ComplexMatrix : Matrix<Complex>
+   {
+      /// <summary>
+      /// Creates a new empty ComplexMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <seealso cref="REngineExtension.CreateComplexMatrix(REngine, int, int)"/>
+      public ComplexMatrix(REngine engine, int rowCount, int columnCount)
+         : base(engine, SymbolicExpressionType.ComplexVector, rowCount, columnCount)
+      { }
 
-               /// <summary>
-               /// Creates a new ComplexMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="matrix">The values.</param>
-               /// <seealso cref="REngineExtension.CreateComplexMatrix(REngine, Complex[,])"/>
-               public ComplexMatrix(REngine engine, Complex[,] matrix)
-                       : base(engine, SymbolicExpressionType.CharacterVector, matrix)
-               {}
+      /// <summary>
+      /// Creates a new ComplexMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="matrix">The values.</param>
+      /// <seealso cref="REngineExtension.CreateComplexMatrix(REngine, Complex[,])"/>
+      public ComplexMatrix(REngine engine, Complex[,] matrix)
+         : base(engine, SymbolicExpressionType.CharacterVector, matrix)
+      { }
 
-               /// <summary>
-               /// Creates a new instance for a complex number matrix.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a complex number matrix.</param>
-               protected internal ComplexMatrix(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for a complex number matrix.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a complex number matrix.</param>
+      protected internal ComplexMatrix(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
-               /// <param name="columnIndex">The zero-based columnIndex index of the element to get or 
set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override Complex this[int rowIndex, int columnIndex]
-               {
-                       get
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       var data = new double[2];
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       IntPtr pointer = IntPtr.Add(DataPointer, offset);
-                                       Marshal.Copy(pointer, data, 0, data.Length);
-                                       return new Complex(data[0], data[1]);
-                               }
-                       }
-                       set
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       var data = new[] { value.Real, value.Imaginary };
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       IntPtr pointer = IntPtr.Add(DataPointer, offset);
-                                       Marshal.Copy(data, 0, pointer, data.Length);
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+      /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override Complex this[int rowIndex, int columnIndex]
+      {
+         get
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               var data = new double[2];
+               int offset = GetOffset(rowIndex, columnIndex);
+               IntPtr pointer = IntPtr.Add(DataPointer, offset);
+               Marshal.Copy(pointer, data, 0, data.Length);
+               return new Complex(data[0], data[1]);
+            }
+         }
+         set
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               var data = new[] { value.Real, value.Imaginary };
+               int offset = GetOffset(rowIndex, columnIndex);
+               IntPtr pointer = IntPtr.Add(DataPointer, offset);
+               Marshal.Copy(data, 0, pointer, data.Length);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of a complex number in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return Marshal.SizeOf(typeof(Complex)); }
-               }
-       }
-}
+      protected override void InitMatrixFastDirect(Complex[,] matrix)
+      {
+         var vectorCplx = Utility.ArrayConvertOneDim(matrix);
+         var data = Utility.SerializeComplexToDouble(vectorCplx);
+         Marshal.Copy(data, 0, DataPointer, data.Length);
+      }
+
+      protected override Complex[,] GetArrayFast()
+      {
+         int n = this.ItemCount;
+         var data = new double[2 * n];
+         Marshal.Copy(DataPointer, data, 0, 2 * n);
+         var oneDim = Utility.DeserializeComplexFromDouble(data);
+         return Utility.ArrayConvertAllTwoDim(oneDim, this.RowCount, this.ColumnCount);
+      }
+
+      /// <summary>
+      /// Gets the size of a complex number in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return Marshal.SizeOf(typeof(Complex)); }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/ComplexVector.cs b/rdotnet/R.NET/ComplexVector.cs
index ba5db93..3e7f6d5 100644
--- a/rdotnet/R.NET/ComplexVector.cs
+++ b/rdotnet/R.NET/ComplexVector.cs
@@ -1,91 +1,106 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Collections.Generic;
 using System.Numerics;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A collection of complex numbers.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class ComplexVector : Vector<Complex>
-       {
-               /// <summary>
-               /// Creates a new empty ComplexVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="length">The length.</param>
-               /// <seealso cref="REngineExtension.CreateComplexVector(REngine, int)"/>
-               public ComplexVector(REngine engine, int length)
-                       : base(engine, SymbolicExpressionType.ComplexVector, length)
-               {}
+   /// <summary>
+   /// A collection of complex numbers.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class ComplexVector : Vector<Complex>
+   {
+      /// <summary>
+      /// Creates a new empty ComplexVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="length">The length.</param>
+      /// <seealso cref="REngineExtension.CreateComplexVector(REngine, int)"/>
+      public ComplexVector(REngine engine, int length)
+         : base(engine, SymbolicExpressionType.ComplexVector, length)
+      { }
 
-               /// <summary>
-               /// Creates a new ComplexVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="vector">The values.</param>
-               /// <seealso cref="REngineExtension.CreateComplexVector(REngine, 
System.Collections.Generic.IEnumerable{System.Numerics.Complex})"/>
-               public ComplexVector(REngine engine, IEnumerable<Complex> vector)
-                       : base(engine, SymbolicExpressionType.ComplexVector, vector)
-               {}
+      /// <summary>
+      /// Creates a new ComplexVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="vector">The values.</param>
+      /// <seealso cref="REngineExtension.CreateComplexVector(REngine, 
System.Collections.Generic.IEnumerable{System.Numerics.Complex})"/>
+      public ComplexVector(REngine engine, IEnumerable<Complex> vector)
+         : base(engine, SymbolicExpressionType.ComplexVector, vector)
+      { }
 
-               /// <summary>
-               /// Creates a new instance for a complex number vector.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a complex number vector.</param>
-               protected internal ComplexVector(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for a complex number vector.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a complex number vector.</param>
+      protected internal ComplexVector(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="index">The zero-based index of the element to get or set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override Complex this[int index]
-               {
-                       get
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       var data = new double[2];
-                                       int offset = GetOffset(index);
-                                       IntPtr pointer = IntPtr.Add(DataPointer, offset);
-                                       Marshal.Copy(pointer, data, 0, data.Length);
-                                       return new Complex(data[0], data[1]);
-                               }
-                       }
-                       set
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       var data = new[] { value.Real, value.Imaginary };
-                                       int offset = GetOffset(index);
-                                       IntPtr pointer = IntPtr.Add(DataPointer, offset);
-                                       Marshal.Copy(data, 0, pointer, data.Length);
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="index">The zero-based index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override Complex this[int index]
+      {
+         get
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               var data = new double[2];
+               int offset = GetOffset(index);
+               IntPtr pointer = IntPtr.Add(DataPointer, offset);
+               Marshal.Copy(pointer, data, 0, data.Length);
+               return new Complex(data[0], data[1]);
+            }
+         }
+         set
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               var data = new[] { value.Real, value.Imaginary };
+               int offset = GetOffset(index);
+               IntPtr pointer = IntPtr.Add(DataPointer, offset);
+               Marshal.Copy(data, 0, pointer, data.Length);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of a complex number in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return Marshal.SizeOf(typeof(Complex)); }
-               }
-       }
-}
+      protected override Complex[] GetArrayFast()
+      {
+         int n = this.Length;
+         var data = new double[2*n];
+         Marshal.Copy(DataPointer, data, 0, 2 * n);
+         return Utility.DeserializeComplexFromDouble(data);
+      }
+
+      protected override void SetVectorDirect(Complex[] values)
+      {
+         double[] data = Utility.SerializeComplexToDouble(values);
+         IntPtr pointer = IntPtr.Add(DataPointer, 0);
+         Marshal.Copy(data, 0, pointer, data.Length);
+      }
+
+      /// <summary>
+      /// Gets the size of a complex number in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return Marshal.SizeOf(typeof(Complex)); }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/DataFrame.cs b/rdotnet/R.NET/DataFrame.cs
index e267951..9500c62 100644
--- a/rdotnet/R.NET/DataFrame.cs
+++ b/rdotnet/R.NET/DataFrame.cs
@@ -1,204 +1,273 @@
-using System;
+using RDotNet.Diagnostics;
+using RDotNet.Dynamic;
+using System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Dynamic;
+using System.Linq;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Dynamic;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A data frame.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class DataFrame : Vector<DynamicVector>
-       {
-               private const string RRowNamesSymbolName = "R_RowNamesSymbol";
-
-               /// <summary>
-               /// Creates a new instance.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a data frame.</param>
-               protected internal DataFrame(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
-
-               /// <summary>
-               /// Gets or sets the column at the specified index as a vector.
-               /// </summary>
-               /// <param name="columnIndex">The zero-based index of the column to get or set.</param>
-               /// <returns>The column at the specified index.</returns>
-               public override DynamicVector this[int columnIndex]
-               {
-                       get
-                       {
-                               if (columnIndex < 0 || Length <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(columnIndex);
-                                       IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
-                                       return new DynamicVector(Engine, pointer);
-                               }
-                       }
-                       set
-                       {
-                               if (columnIndex < 0 || Length <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(columnIndex);
-                                       Marshal.WriteIntPtr(DataPointer, offset, (value ?? 
Engine.NilValue).DangerousGetHandle());
-                               }
-                       }
-               }
-
-               /// <summary>
-               /// Gets or sets the element at the specified indexes.
-               /// </summary>
-               /// <param name="rowIndex">The row index.</param>
-               /// <param name="columnIndex">The column index.</param>
-               /// <returns>The element.</returns>
-               public object this[int rowIndex, int columnIndex]
-               {
-                       get
-                       {
-                               DynamicVector column = this[columnIndex];
-                               return column[rowIndex];
-                       }
-                       set
-                       {
-                               DynamicVector column = this[columnIndex];
-                               column[rowIndex] = value;
-                       }
-               }
-
-               /// <summary>
-               /// Gets or sets the element at the specified index and name.
-               /// </summary>
-               /// <param name="rowIndex">The row index.</param>
-               /// <param name="columnName">The column name.</param>
-               /// <returns>The element.</returns>
-               public object this[int rowIndex, string columnName]
-               {
-                       get
-                       {
-                               DynamicVector column = this[columnName];
-                               return column[rowIndex];
-                       }
-                       set
-                       {
-                               DynamicVector column = this[columnName];
-                               column[rowIndex] = value;
-                       }
-               }
-
-               /// <summary>
-               /// Gets or sets the element at the specified names.
-               /// </summary>
-               /// <param name="rowName">The row name.</param>
-               /// <param name="columnName">The column name.</param>
-               /// <returns>The element.</returns>
-               public object this[string rowName, string columnName]
-               {
-                       get
-                       {
-                               DynamicVector column = this[columnName];
-                               return column[rowName];
-                       }
-                       set
-                       {
-                               DynamicVector column = this[columnName];
-                               column[rowName] = value;
-                       }
-               }
-
-               /// <summary>
-               /// Gets the number of data sets.
-               /// </summary>
-               public int RowCount
-               {
-                       get { return ColumnCount == 0 ? 0 : this[0].Length; }
-               }
-
-               /// <summary>
-               /// Gets the number of kinds of data.
-               /// </summary>
-               public int ColumnCount
-               {
-                       get { return Length; }
-               }
-
-               /// <summary>
-               /// Gets the names of rows.
-               /// </summary>
-               public string[] RowNames
-               {
-                       get
-                       {
-                               SymbolicExpression rowNamesSymbol = 
Engine.GetPredefinedSymbol(RRowNamesSymbolName);
-                               SymbolicExpression rowNames = GetAttribute(rowNamesSymbol);
-                               if (rowNames == null)
-                               {
-                                       return null;
-                               }
-                               CharacterVector rowNamesVector = rowNames.AsCharacter();
-                               if (rowNamesVector == null)
-                               {
-                                       return null;
-                               }
-
-                               int length = rowNamesVector.Length;
-                               var result = new string[length];
-                               rowNamesVector.CopyTo(result, length);
-                               return result;
-                       }
-               }
-
-               /// <summary>
-               /// Gets the names of columns.
-               /// </summary>
-               public string[] ColumnNames
-               {
-                       get { return Names; }
-               }
-
-               protected override int DataSize
-               {
-                       get { return Marshal.SizeOf(typeof(IntPtr)); }
-               }
-
-               /// <summary>
-               /// Gets the row at the specified index.
-               /// </summary>
-               /// <param name="rowIndex">The index.</param>
-               /// <returns>The row.</returns>
-               public DataFrameRow GetRow(int rowIndex)
-               {
-                       return new DataFrameRow(this, rowIndex);
-               }
-
-               /// <summary>
-               /// Enumerates all the rows in the data frame.
-               /// </summary>
-               /// <returns>The collection of the rows.</returns>
-               public IEnumerable<DataFrameRow> GetRows()
-               {
-                       int rowCount = RowCount;
-                       for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
-                       {
-                               yield return GetRow(rowIndex);
-                       }
-               }
-
-               public override DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
-               {
-                       return new DataFrameDynamicMeta(parameter, this);
-               }
-       }
-}
+   /// <summary>
+   /// A data frame.
+   /// </summary>
+   [DebuggerDisplay(@"ColumnCount = {ColumnCount}; RowCount = {RowCount}; RObjectType = {Type}")]
+   [DebuggerTypeProxy(typeof(DataFrameDebugView))]
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class DataFrame : Vector<DynamicVector>
+   {
+      private const string RRowNamesSymbolName = "R_RowNamesSymbol";
+
+      /// <summary>
+      /// Creates a new instance.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a data frame.</param>
+      protected internal DataFrame(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
+
+      /// <summary>
+      /// Gets or sets the column at the specified index as a vector.
+      /// </summary>
+      /// <param name="columnIndex">The zero-based index of the column to get or set.</param>
+      /// <returns>The column at the specified index.</returns>
+      public override DynamicVector this[int columnIndex]
+      {
+         get
+         {
+            if (columnIndex < 0 || Length <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               return GetColumn(columnIndex);
+            }
+         }
+         set
+         {
+            if (columnIndex < 0 || Length <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               SetColumn(columnIndex, value);
+            }
+         }
+      }
+
+      protected override DynamicVector[] GetArrayFast()
+      {
+         var res = new DynamicVector[this.Length];
+         for (int i = 0; i < res.Length; i++)
+            res[i] = GetColumn(i);
+         return res;
+      }
+
+      private DynamicVector GetColumn(int columnIndex)
+      {
+         int offset = GetOffset(columnIndex);
+         IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
+         return new DynamicVector(Engine, pointer);
+      }
+
+      private void SetColumn(int columnIndex, DynamicVector value)
+      {
+         int offset = GetOffset(columnIndex);
+         Marshal.WriteIntPtr(DataPointer, offset, (value ?? Engine.NilValue).DangerousGetHandle());
+      }
+
+      protected override void SetVectorDirect(DynamicVector[] values)
+      {
+         for (int i = 0; i < values.Length; i++)
+            SetColumn(i, values[i]);
+      }
+
+      /// <summary>
+      /// Gets or sets the element at the specified indexes.
+      /// </summary>
+      /// <param name="rowIndex">The row index.</param>
+      /// <param name="columnIndex">The column index.</param>
+      /// <returns>The element.</returns>
+      public object this[int rowIndex, int columnIndex]
+      {
+         get
+         {
+            DynamicVector column = this[columnIndex];
+            return column[rowIndex];
+         }
+         set
+         {
+            DynamicVector column = this[columnIndex];
+            column[rowIndex] = value;
+         }
+      }
+
+      /// <summary>
+      /// Gets or sets the element at the specified index and name.
+      /// </summary>
+      /// <param name="rowIndex">The row index.</param>
+      /// <param name="columnName">The column name.</param>
+      /// <returns>The element.</returns>
+      public object this[int rowIndex, string columnName]
+      {
+         get
+         {
+            DynamicVector column = this[columnName];
+            return column[rowIndex];
+         }
+         set
+         {
+            DynamicVector column = this[columnName];
+            column[rowIndex] = value;
+         }
+      }
+
+      /// <summary>
+      /// Gets or sets the element at the specified names.
+      /// </summary>
+      /// <param name="rowName">The row name.</param>
+      /// <param name="columnName">The column name.</param>
+      /// <returns>The element.</returns>
+      public object this[string rowName, string columnName]
+      {
+         get
+         {
+            DynamicVector column = this[columnName];
+            return column[rowName];
+         }
+         set
+         {
+            DynamicVector column = this[columnName];
+            column[rowName] = value;
+         }
+      }
+
+      /// <summary>
+      /// Gets the number of data sets.
+      /// </summary>
+      public int RowCount
+      {
+         get { return ColumnCount == 0 ? 0 : this[0].Length; }
+      }
+
+      /// <summary>
+      /// Gets the number of kinds of data.
+      /// </summary>
+      public int ColumnCount
+      {
+         get { return Length; }
+      }
+
+      /// <summary>
+      /// Gets the names of rows.
+      /// </summary>
+      public string[] RowNames
+      {
+         get
+         {
+            SymbolicExpression rowNamesSymbol = Engine.GetPredefinedSymbol(RRowNamesSymbolName);
+            SymbolicExpression rowNames = GetAttribute(rowNamesSymbol);
+            if (rowNames == null)
+            {
+               return null;
+            }
+            CharacterVector rowNamesVector = rowNames.AsCharacter();
+            if (rowNamesVector == null)
+            {
+               return null;
+            }
+
+            int length = rowNamesVector.Length;
+            var result = new string[length];
+            rowNamesVector.CopyTo(result, length);
+            return result;
+         }
+      }
+
+      /// <summary>
+      /// Gets the names of columns.
+      /// </summary>
+      public string[] ColumnNames
+      {
+         get { return Names; }
+      }
+
+      protected override int DataSize
+      {
+         get { return Marshal.SizeOf(typeof(IntPtr)); }
+      }
+
+      /// <summary>
+      /// Gets the row at the specified index.
+      /// </summary>
+      /// <param name="rowIndex">The index.</param>
+      /// <returns>The row.</returns>
+      public DataFrameRow GetRow(int rowIndex)
+      {
+         return new DataFrameRow(this, rowIndex);
+      }
+
+      /// <summary>
+      /// Gets the row at the specified index mapping a specified class.
+      /// </summary>
+      /// <typeparam name="TRow">The row type with <see cref="DataFrameRowAttribute"/>.</typeparam>
+      /// <returns>The row.</returns>
+      public TRow GetRow<TRow>(int rowIndex)
+         where TRow : class, new()
+      {
+         var rowType = typeof(TRow);
+         var attribute = (DataFrameRowAttribute)rowType.GetCustomAttributes(typeof(DataFrameRowAttribute), 
false).Single();
+         if (attribute == null)
+         {
+            throw new ArgumentException("DataFrameRowAttribute is required.");
+         }
+         var row = GetRow(rowIndex);
+         return attribute.Convert<TRow>(row);
+      }
+
+      /// <summary>
+      /// Enumerates all the rows in the data frame.
+      /// </summary>
+      /// <returns>The collection of the rows.</returns>
+      public IEnumerable<DataFrameRow> GetRows()
+      {
+         int rowCount = RowCount;
+         for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
+         {
+            yield return GetRow(rowIndex);
+         }
+      }
+
+      /// <summary>
+      /// Enumerates all the rows in the data frame mapping a specified class.
+      /// </summary>
+      /// <typeparam name="TRow">The row type with <see cref="DataFrameRowAttribute"/>.</typeparam>
+      /// <returns>The collection of the rows.</returns>
+      public IEnumerable<TRow> GetRows<TRow>()
+         where TRow : class, new()
+      {
+         var rowType = typeof(TRow);
+         var attribute = (DataFrameRowAttribute)rowType.GetCustomAttributes(typeof(DataFrameRowAttribute), 
false).Single();
+         if (attribute == null)
+         {
+            throw new ArgumentException("DataFrameRowAttribute is required.");
+         }
+         int rowCount = RowCount;
+         for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
+         {
+            var row = GetRow(rowIndex);
+            yield return attribute.Convert<TRow>(row);
+         }
+      }
+
+      public override DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
+      {
+         return new DataFrameDynamicMeta(parameter, this);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/DataFrameColumnAttribute.cs b/rdotnet/R.NET/DataFrameColumnAttribute.cs
new file mode 100644
index 0000000..731b2e9
--- /dev/null
+++ b/rdotnet/R.NET/DataFrameColumnAttribute.cs
@@ -0,0 +1,74 @@
+using System;
+
+namespace RDotNet
+{
+   /// <summary>
+   /// Represents a column of certain data frames.
+   /// </summary>
+   [AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultiple = false)]
+   public class DataFrameColumnAttribute : Attribute
+   {
+      private static readonly string[] Empty = new string[0];
+
+      private readonly int index;
+
+      /// <summary>
+      /// Gets the index.
+      /// </summary>
+      public int Index
+      {
+         get { return this.index; }
+      }
+
+      private string name;
+
+      /// <summary>
+      /// Gets or sets the name.
+      /// </summary>
+      public string Name
+      {
+         get { return this.name; }
+         set
+         {
+            if (this.index < 0 && value == null)
+            {
+               throw new ArgumentNullException("value", "Name must not be null when Index is not defined.");
+            }
+            this.name = value;
+         }
+      }
+
+      /// <summary>
+      /// Initializes a new instance by name.
+      /// </summary>
+      /// <param name="name">The name.</param>
+      public DataFrameColumnAttribute(string name)
+      {
+         if (name == null)
+         {
+            throw new ArgumentNullException("name");
+         }
+         this.name = name;
+         this.index = -1;
+      }
+
+      /// <summary>
+      /// Initializes a new instance by index.
+      /// </summary>
+      /// <param name="name">The index.</param>
+      public DataFrameColumnAttribute(int index)
+      {
+         if (index < 0)
+         {
+            throw new ArgumentOutOfRangeException("index");
+         }
+         this.name = null;
+         this.index = index;
+      }
+
+      internal int GetIndex(string[] names)
+      {
+         return Index >= 0 ? Index : Array.IndexOf(names ?? Empty, Name);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/DataFrameRow.cs b/rdotnet/R.NET/DataFrameRow.cs
index a47df59..bde1e1a 100644
--- a/rdotnet/R.NET/DataFrameRow.cs
+++ b/rdotnet/R.NET/DataFrameRow.cs
@@ -4,100 +4,100 @@ using System.Dynamic;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A data frame row.
-       /// </summary>
-       public class DataFrameRow : DynamicObject
-       {
-               private DataFrame frame;
-               private int rowIndex;
+   /// <summary>
+   /// A data frame row.
+   /// </summary>
+   public class DataFrameRow : DynamicObject
+   {
+      private DataFrame frame;
+      private int rowIndex;
 
-               public DataFrameRow(DataFrame frame, int rowIndex)
-               {
-                       this.frame = frame;
-                       this.rowIndex = rowIndex;
-               }
+      public DataFrameRow(DataFrame frame, int rowIndex)
+      {
+         this.frame = frame;
+         this.rowIndex = rowIndex;
+      }
 
-               /// <summary>
-               /// Gets and sets the value at the specified column.
-               /// </summary>
-               /// <param name="index">The column index.</param>
-               /// <returns>The value.</returns>
-               public object this[int index]
-               {
-                       get
-                       {
-                               DynamicVector column = DataFrame[index];
-                               return column[RowIndex];
-                       }
-                       set
-                       {
-                               DynamicVector column = DataFrame[index];
-                               column[RowIndex] = value;
-                       }
-               }
+      /// <summary>
+      /// Gets and sets the value at the specified column.
+      /// </summary>
+      /// <param name="index">The column index.</param>
+      /// <returns>The value.</returns>
+      public object this[int index]
+      {
+         get
+         {
+            DynamicVector column = DataFrame[index];
+            return column[RowIndex];
+         }
+         set
+         {
+            DynamicVector column = DataFrame[index];
+            column[RowIndex] = value;
+         }
+      }
 
-               /// <summary>
-               /// Gets and sets the value at the specified column.
-               /// </summary>
-               /// <param name="name">The column name.</param>
-               /// <returns>The value.</returns>
-               public object this[string name]
-               {
-                       get
-                       {
-                               DynamicVector column = DataFrame[name];
-                               return column[RowIndex];
-                       }
-                       set
-                       {
-                               DynamicVector column = DataFrame[name];
-                               column[RowIndex] = value;
-                       }
-               }
+      /// <summary>
+      /// Gets and sets the value at the specified column.
+      /// </summary>
+      /// <param name="name">The column name.</param>
+      /// <returns>The value.</returns>
+      public object this[string name]
+      {
+         get
+         {
+            DynamicVector column = DataFrame[name];
+            return column[RowIndex];
+         }
+         set
+         {
+            DynamicVector column = DataFrame[name];
+            column[RowIndex] = value;
+         }
+      }
 
-               /// <summary>
-               /// Gets the data frame containing this row.
-               /// </summary>
-               public DataFrame DataFrame
-               {
-                       get { return this.frame; }
-               }
+      /// <summary>
+      /// Gets the data frame containing this row.
+      /// </summary>
+      public DataFrame DataFrame
+      {
+         get { return this.frame; }
+      }
 
-               /// <summary>
-               /// Gets the index of this row.
-               /// </summary>
-               public int RowIndex
-               {
-                       get { return this.rowIndex; }
-               }
+      /// <summary>
+      /// Gets the index of this row.
+      /// </summary>
+      public int RowIndex
+      {
+         get { return this.rowIndex; }
+      }
 
-               public override IEnumerable<string> GetDynamicMemberNames()
-               {
-                       return DataFrame.ColumnNames;
-               }
+      public override IEnumerable<string> GetDynamicMemberNames()
+      {
+         return DataFrame.ColumnNames;
+      }
 
-               public override bool TryGetMember(GetMemberBinder binder, out object result)
-               {
-                       string[] columnNames = DataFrame.ColumnNames;
-                       if (columnNames == null || Array.IndexOf(columnNames, binder.Name) < 0)
-                       {
-                               result = null;
-                               return false;
-                       }
-                       result = this[binder.Name];
-                       return true;
-               }
+      public override bool TryGetMember(GetMemberBinder binder, out object result)
+      {
+         string[] columnNames = DataFrame.ColumnNames;
+         if (columnNames == null || Array.IndexOf(columnNames, binder.Name) < 0)
+         {
+            result = null;
+            return false;
+         }
+         result = this[binder.Name];
+         return true;
+      }
 
-               public override bool TrySetMember(SetMemberBinder binder, object value)
-               {
-                       string[] columnNames = DataFrame.ColumnNames;
-                       if (columnNames == null || Array.IndexOf(columnNames, binder.Name) < 0)
-                       {
-                               return false;
-                       }
-                       this[binder.Name] = value;
-                       return true;
-               }
-       }
-}
+      public override bool TrySetMember(SetMemberBinder binder, object value)
+      {
+         string[] columnNames = DataFrame.ColumnNames;
+         if (columnNames == null || Array.IndexOf(columnNames, binder.Name) < 0)
+         {
+            return false;
+         }
+         this[binder.Name] = value;
+         return true;
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/DataFrameRowAttribute.cs b/rdotnet/R.NET/DataFrameRowAttribute.cs
new file mode 100644
index 0000000..bbad093
--- /dev/null
+++ b/rdotnet/R.NET/DataFrameRowAttribute.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
+namespace RDotNet
+{
+   internal delegate void Map(DataFrameRow from, object to);
+
+   /// <summary>
+   /// Indicates the class with the attribute represents rows of certain data frames.
+   /// </summary>
+   [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
+   public class DataFrameRowAttribute : Attribute
+   {
+      private readonly Dictionary<Type, Map> cache;
+
+      /// <summary>
+      /// Initializes a new instance.
+      /// </summary>
+      public DataFrameRowAttribute()
+      {
+         this.cache = new Dictionary<Type, Map>();
+      }
+
+      internal TRow Convert<TRow>(DataFrameRow row)
+         where TRow : class, new()
+      {
+         var rowType = typeof(TRow);
+         Map map;
+         if (!this.cache.TryGetValue(rowType, out map))
+         {
+            map = CreateMap(rowType);
+            this.cache.Add(rowType, map);
+         }
+         var result = Activator.CreateInstance(rowType);
+         map(row, result);
+         return (TRow)result;
+      }
+
+      private static Map CreateMap(Type rowType)
+      {
+         var tuples = (from property in rowType.GetProperties()
+                       let attribute = 
(DataFrameColumnAttribute)property.GetCustomAttributes(typeof(DataFrameColumnAttribute), 
true).SingleOrDefault()
+                       where attribute != null
+                       select Tuple.Create(attribute, property.GetSetMethod())).ToArray();
+         return (from, to) => Map(from, to, tuples);
+      }
+
+      private static void Map(DataFrameRow from, object to, Tuple<DataFrameColumnAttribute, MethodInfo>[] 
tuples)
+      {
+         var names = from.DataFrame.ColumnNames;
+         foreach (var t in tuples)
+         {
+            var attribute = t.Item1;
+            var setter = t.Item2;
+            var index = attribute.GetIndex(names);
+            setter.Invoke(to, new object[] { from[index] });
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Devices/CharacterDeviceAdapter.cs b/rdotnet/R.NET/Devices/CharacterDeviceAdapter.cs
index 7183915..8615320 100644
--- a/rdotnet/R.NET/Devices/CharacterDeviceAdapter.cs
+++ b/rdotnet/R.NET/Devices/CharacterDeviceAdapter.cs
@@ -1,256 +1,261 @@
-using System;
+using RDotNet.Internals;
+using RDotNet.Internals.Unix;
+using System;
 using System.IO;
 using System.Runtime.InteropServices;
 using System.Text;
-using RDotNet.Internals;
-using RDotNet.Internals.Unix;
-using RDotNet.Internals.Windows;
 
 namespace RDotNet.Devices
 {
-       internal class CharacterDeviceAdapter : IDisposable
-       {
-               private readonly ICharacterDevice device;
-
-               private REngine engine;
-
-               /// <summary>
-               /// Creates an instance.
-               /// </summary>
-               /// <param name="device">The implementation.</param>
-               public CharacterDeviceAdapter(ICharacterDevice device)
-               {
-                       if (device == null)
-                       {
-                               throw new ArgumentNullException("device");
-                       }
-                       this.device = device;
-               }
-
-               /// <summary>
-               /// Gets the implementation of <see cref="ICharacterDevice"/> interface.
-               /// </summary>
-               public ICharacterDevice Device
-               {
-                       get { return this.device; }
-               }
-
-               private REngine Engine
-               {
-                       get { return this.engine; }
-               }
-
-               #region IDisposable Members
-
-               public void Dispose()
-               {
-                       GC.KeepAlive(this);
-               }
-
-               #endregion
-
-               internal void Install(REngine engine, StartupParameter parameter)
-               {
-                       this.engine = engine;
-                       switch (Environment.OSVersion.Platform)
-                       {
-                               case PlatformID.Win32NT:
-                                       SetupWindowsDevice(parameter);
-                                       break;
-                               case PlatformID.MacOSX:
-                               case PlatformID.Unix:
-                                       SetupUnixDevice();
-                                       break;
-                       }
-               }
-
-               private void SetupWindowsDevice(StartupParameter parameter)
-               {
-                       string rhome = 
Marshal.PtrToStringAnsi(this.engine.GetFunction<getValue>("get_R_HOME")());
-                       parameter.start.rhome = Marshal.StringToHGlobalAnsi(ConvertSeparator(rhome));
-                       string home = 
Marshal.PtrToStringAnsi(this.engine.GetFunction<getValue>("getRUser")());
-                       parameter.start.home = Marshal.StringToHGlobalAnsi(ConvertSeparator(home));
-                       parameter.start.CharacterMode = UiMode.LinkDll;
-                       parameter.start.ReadConsole = ReadConsole;
-                       parameter.start.WriteConsole = WriteConsole;
-                       parameter.start.WriteConsoleEx = WriteConsoleEx;
-                       parameter.start.CallBack = Callback;
-                       parameter.start.ShowMessage = ShowMessage;
-                       parameter.start.YesNoCancel = Ask;
-                       parameter.start.Busy = Busy;
-               }
-
-               private void SetupUnixDevice()
-               {
-                       IntPtr suicidePointer = this.engine.DangerousGetHandle("ptr_R_Suicide");
-                       IntPtr newSuicide = Marshal.GetFunctionPointerForDelegate((ptr_R_Suicide)Suicide);
-                       Marshal.WriteIntPtr(suicidePointer, newSuicide);
-                       IntPtr showMessagePointer = this.engine.DangerousGetHandle("ptr_R_ShowMessage");
-                       IntPtr newShowMessage = 
Marshal.GetFunctionPointerForDelegate((ptr_R_ShowMessage)ShowMessage);
-                       Marshal.WriteIntPtr(showMessagePointer, newShowMessage);
-                       IntPtr readConsolePointer = this.engine.DangerousGetHandle("ptr_R_ReadConsole");
-                       IntPtr newReadConsole = 
Marshal.GetFunctionPointerForDelegate((ptr_R_ReadConsole)ReadConsole);
-                       Marshal.WriteIntPtr(readConsolePointer, newReadConsole);
-                       IntPtr writeConsolePointer = this.engine.DangerousGetHandle("ptr_R_WriteConsole");
-                       IntPtr newWriteConsole = 
Marshal.GetFunctionPointerForDelegate((ptr_R_WriteConsole)WriteConsole);
-                       Marshal.WriteIntPtr(writeConsolePointer, newWriteConsole);
-                       IntPtr writeConsoleExPointer = this.engine.DangerousGetHandle("ptr_R_WriteConsoleEx");
-                       IntPtr newWriteConsoleEx = 
Marshal.GetFunctionPointerForDelegate((ptr_R_WriteConsoleEx)WriteConsoleEx);
-                       Marshal.WriteIntPtr(writeConsoleExPointer, newWriteConsoleEx);
-                       IntPtr resetConsolePointer = this.engine.DangerousGetHandle("ptr_R_ResetConsole");
-                       IntPtr newResetConsole = 
Marshal.GetFunctionPointerForDelegate((ptr_R_ResetConsole)ResetConsole);
-                       Marshal.WriteIntPtr(resetConsolePointer, newResetConsole);
-                       IntPtr flushConsolePointer = this.engine.DangerousGetHandle("ptr_R_FlushConsole");
-                       IntPtr newFlushConsole = 
Marshal.GetFunctionPointerForDelegate((ptr_R_FlushConsole)FlushConsole);
-                       Marshal.WriteIntPtr(flushConsolePointer, newFlushConsole);
-                       IntPtr clearerrConsolePointer = 
this.engine.DangerousGetHandle("ptr_R_ClearerrConsole");
-                       IntPtr newClearerrConsole = 
Marshal.GetFunctionPointerForDelegate((ptr_R_ClearerrConsole)ClearErrorConsole);
-                       Marshal.WriteIntPtr(clearerrConsolePointer, newClearerrConsole);
-                       IntPtr busyPointer = this.engine.DangerousGetHandle("ptr_R_Busy");
-                       IntPtr newBusy = Marshal.GetFunctionPointerForDelegate((ptr_R_Busy)Busy);
-                       Marshal.WriteIntPtr(busyPointer, newBusy);
-                       IntPtr cleanUpPointer = this.engine.DangerousGetHandle("ptr_R_CleanUp");
-                       IntPtr newCleanUp = Marshal.GetFunctionPointerForDelegate((ptr_R_CleanUp)CleanUp);
-                       Marshal.WriteIntPtr(cleanUpPointer, newCleanUp);
-                       IntPtr showFilesPointer = this.engine.DangerousGetHandle("ptr_R_ShowFiles");
-                       IntPtr newShowFiles = 
Marshal.GetFunctionPointerForDelegate((ptr_R_ShowFiles)ShowFiles);
-                       Marshal.WriteIntPtr(showFilesPointer, newShowFiles);
-                       IntPtr chooseFilePointer = this.engine.DangerousGetHandle("ptr_R_ChooseFile");
-                       IntPtr newChooseFile = 
Marshal.GetFunctionPointerForDelegate((ptr_R_ChooseFile)ChooseFile);
-                       Marshal.WriteIntPtr(chooseFilePointer, newChooseFile);
-                       IntPtr editFilePointer = this.engine.DangerousGetHandle("ptr_R_EditFile");
-                       IntPtr newEditFile = Marshal.GetFunctionPointerForDelegate((ptr_R_EditFile)EditFile);
-                       Marshal.WriteIntPtr(editFilePointer, newEditFile);
-                       IntPtr loadHistoryPointer = this.engine.DangerousGetHandle("ptr_R_loadhistory");
-                       IntPtr newLoadHistory = 
Marshal.GetFunctionPointerForDelegate((ptr_R_loadhistory)LoadHistory);
-                       Marshal.WriteIntPtr(loadHistoryPointer, newLoadHistory);
-                       IntPtr saveHistoryPointer = this.engine.DangerousGetHandle("ptr_R_savehistory");
-                       IntPtr newSaveHistory = 
Marshal.GetFunctionPointerForDelegate((ptr_R_savehistory)SaveHistory);
-                       Marshal.WriteIntPtr(saveHistoryPointer, newSaveHistory);
-                       IntPtr addHistoryPointer = this.engine.DangerousGetHandle("ptr_R_addhistory");
-                       IntPtr newAddHistory = 
Marshal.GetFunctionPointerForDelegate((ptr_R_addhistory)AddHistory);
-                       Marshal.WriteIntPtr(addHistoryPointer, newAddHistory);
-               }
-
-               private static string ConvertSeparator(string path)
-               {
-                       return path.Replace(Path.DirectorySeparatorChar, '/');
-               }
-
-               private bool ReadConsole(string prompt, StringBuilder buffer, int count, bool history)
-               {
-                       buffer.Clear();
-                       string input = Device.ReadConsole(prompt, count, history);
-                       buffer.Append(input).Append("\n"); // input must end with '\n\0' ('\0' is appended 
during marshalling).
-                       return input != null;
-               }
-
-               private void WriteConsole(string buffer, int length)
-               {
-                       WriteConsoleEx(buffer, length, ConsoleOutputType.None);
-               }
-
-               private void WriteConsoleEx(string buffer, int length, ConsoleOutputType outputType)
-               {
-                       Device.WriteConsole(buffer, length, outputType);
-               }
-
-               private void ShowMessage(string message)
-               {
-                       Device.ShowMessage(message);
-               }
-
-               private void Busy(BusyType which)
-               {
-                       Device.Busy(which);
-               }
-
-               private void Callback()
-               {
-                       Device.Callback();
-               }
-
-               private YesNoCancel Ask(string question)
-               {
-                       return Device.Ask(question);
-               }
-
-               private void Suicide(string message)
-               {
-                       Device.Suicide(message);
-               }
-
-               private void ResetConsole()
-               {
-                       Device.ResetConsole();
-               }
-
-               private void FlushConsole()
-               {
-                       Device.FlushConsole();
-               }
-
-               private void ClearErrorConsole()
-               {
-                       Device.ClearErrorConsole();
-               }
-
-               private void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
-               {
-                       Device.CleanUp(saveAction, status, runLast);
-               }
-
-               private bool ShowFiles(int count, string[] files, string[] headers, string title, bool 
delete, string pager)
-               {
-                       return Device.ShowFiles(files, headers, title, delete, pager);
-               }
-
-               private int ChooseFile(bool create, StringBuilder buffer, int length)
-               {
-                       string path = Device.ChooseFile(create);
-                       return path == null ? 0 : Encoding.ASCII.GetByteCount(path);
-               }
-
-               private void EditFile(string file)
-               {
-                       Device.EditFile(file);
-               }
-
-               private IntPtr LoadHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
-               {
-                       var c = new Language(Engine, call);
-                       var op = new SymbolicExpression(Engine, operation);
-                       var arglist = new Pairlist(Engine, args);
-                       var env = new REnvironment(Engine, environment);
-                       SymbolicExpression result = Device.LoadHistory(c, op, arglist, env);
-                       return result.DangerousGetHandle();
-               }
-
-               private IntPtr SaveHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
-               {
-                       var c = new Language(Engine, call);
-                       var op = new SymbolicExpression(Engine, operation);
-                       var arglist = new Pairlist(Engine, args);
-                       var env = new REnvironment(Engine, environment);
-                       SymbolicExpression result = Device.SaveHistory(c, op, arglist, env);
-                       return result.DangerousGetHandle();
-               }
-
-               private IntPtr AddHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
-               {
-                       var c = new Language(Engine, call);
-                       var op = new SymbolicExpression(Engine, operation);
-                       var arglist = new Pairlist(Engine, args);
-                       var env = new REnvironment(Engine, environment);
-                       SymbolicExpression result = Device.AddHistory(c, op, arglist, env);
-                       return result.DangerousGetHandle();
-               }
-
-               #region Nested type: getValue
-
-               [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-               private delegate IntPtr getValue();
-
-               #endregion
-       }
-}
+   internal class CharacterDeviceAdapter : IDisposable
+   {
+      private readonly ICharacterDevice device;
+
+      private REngine engine;
+
+      /// <summary>
+      /// Creates an instance.
+      /// </summary>
+      /// <param name="device">The implementation.</param>
+      public CharacterDeviceAdapter(ICharacterDevice device)
+      {
+         if (device == null)
+         {
+            throw new ArgumentNullException("device");
+         }
+         this.device = device;
+      }
+
+      /// <summary>
+      /// Gets the implementation of <see cref="ICharacterDevice"/> interface.
+      /// </summary>
+      public ICharacterDevice Device
+      {
+         get { return this.device; }
+      }
+
+      private REngine Engine
+      {
+         get { return this.engine; }
+      }
+
+      #region IDisposable Members
+
+      public void Dispose()
+      {
+         GC.KeepAlive(this);
+      }
+
+      #endregion IDisposable Members
+
+      internal void Install(REngine engine, StartupParameter parameter)
+      {
+         this.engine = engine;
+         switch (Environment.OSVersion.Platform)
+         {
+            case PlatformID.Win32NT:
+               SetupWindowsDevice(parameter);
+               break;
+
+            case PlatformID.MacOSX:
+            case PlatformID.Unix:
+               SetupUnixDevice();
+               break;
+         }
+      }
+
+      private void SetupWindowsDevice(StartupParameter parameter)
+      {
+         if (parameter.RHome == null)
+         {
+            string rhome = Marshal.PtrToStringAnsi(this.engine.GetFunction<getValue>("get_R_HOME")());
+            parameter.start.rhome = Marshal.StringToHGlobalAnsi(ConvertSeparator(rhome));
+         }
+         if (parameter.Home == null)
+         {
+            string home = Marshal.PtrToStringAnsi(this.engine.GetFunction<getValue>("getRUser")());
+            parameter.start.home = Marshal.StringToHGlobalAnsi(ConvertSeparator(home));
+         }
+         parameter.start.ReadConsole = ReadConsole;
+         parameter.start.WriteConsole = WriteConsole;
+         parameter.start.WriteConsoleEx = WriteConsoleEx;
+         parameter.start.CallBack = Callback;
+         parameter.start.ShowMessage = ShowMessage;
+         parameter.start.YesNoCancel = Ask;
+         parameter.start.Busy = Busy;
+      }
+
+      private void SetupUnixDevice()
+      {
+         IntPtr suicidePointer = this.engine.DangerousGetHandle("ptr_R_Suicide");
+         IntPtr newSuicide = Marshal.GetFunctionPointerForDelegate((ptr_R_Suicide)Suicide);
+         Marshal.WriteIntPtr(suicidePointer, newSuicide);
+         IntPtr showMessagePointer = this.engine.DangerousGetHandle("ptr_R_ShowMessage");
+         IntPtr newShowMessage = Marshal.GetFunctionPointerForDelegate((ptr_R_ShowMessage)ShowMessage);
+         Marshal.WriteIntPtr(showMessagePointer, newShowMessage);
+         IntPtr readConsolePointer = this.engine.DangerousGetHandle("ptr_R_ReadConsole");
+         IntPtr newReadConsole = Marshal.GetFunctionPointerForDelegate((ptr_R_ReadConsole)ReadConsole);
+         Marshal.WriteIntPtr(readConsolePointer, newReadConsole);
+         IntPtr writeConsolePointer = this.engine.DangerousGetHandle("ptr_R_WriteConsole");
+         IntPtr newWriteConsole = Marshal.GetFunctionPointerForDelegate((ptr_R_WriteConsole)WriteConsole);
+         Marshal.WriteIntPtr(writeConsolePointer, newWriteConsole);
+         IntPtr writeConsoleExPointer = this.engine.DangerousGetHandle("ptr_R_WriteConsoleEx");
+         IntPtr newWriteConsoleEx = 
Marshal.GetFunctionPointerForDelegate((ptr_R_WriteConsoleEx)WriteConsoleEx);
+         Marshal.WriteIntPtr(writeConsoleExPointer, newWriteConsoleEx);
+         IntPtr resetConsolePointer = this.engine.DangerousGetHandle("ptr_R_ResetConsole");
+         IntPtr newResetConsole = Marshal.GetFunctionPointerForDelegate((ptr_R_ResetConsole)ResetConsole);
+         Marshal.WriteIntPtr(resetConsolePointer, newResetConsole);
+         IntPtr flushConsolePointer = this.engine.DangerousGetHandle("ptr_R_FlushConsole");
+         IntPtr newFlushConsole = Marshal.GetFunctionPointerForDelegate((ptr_R_FlushConsole)FlushConsole);
+         Marshal.WriteIntPtr(flushConsolePointer, newFlushConsole);
+         IntPtr clearerrConsolePointer = this.engine.DangerousGetHandle("ptr_R_ClearerrConsole");
+         IntPtr newClearerrConsole = 
Marshal.GetFunctionPointerForDelegate((ptr_R_ClearerrConsole)ClearErrorConsole);
+         Marshal.WriteIntPtr(clearerrConsolePointer, newClearerrConsole);
+         IntPtr busyPointer = this.engine.DangerousGetHandle("ptr_R_Busy");
+         IntPtr newBusy = Marshal.GetFunctionPointerForDelegate((ptr_R_Busy)Busy);
+         Marshal.WriteIntPtr(busyPointer, newBusy);
+         IntPtr cleanUpPointer = this.engine.DangerousGetHandle("ptr_R_CleanUp");
+         IntPtr newCleanUp = Marshal.GetFunctionPointerForDelegate((ptr_R_CleanUp)CleanUp);
+         Marshal.WriteIntPtr(cleanUpPointer, newCleanUp);
+         IntPtr showFilesPointer = this.engine.DangerousGetHandle("ptr_R_ShowFiles");
+         IntPtr newShowFiles = Marshal.GetFunctionPointerForDelegate((ptr_R_ShowFiles)ShowFiles);
+         Marshal.WriteIntPtr(showFilesPointer, newShowFiles);
+         IntPtr chooseFilePointer = this.engine.DangerousGetHandle("ptr_R_ChooseFile");
+         IntPtr newChooseFile = Marshal.GetFunctionPointerForDelegate((ptr_R_ChooseFile)ChooseFile);
+         Marshal.WriteIntPtr(chooseFilePointer, newChooseFile);
+         IntPtr editFilePointer = this.engine.DangerousGetHandle("ptr_R_EditFile");
+         IntPtr newEditFile = Marshal.GetFunctionPointerForDelegate((ptr_R_EditFile)EditFile);
+         Marshal.WriteIntPtr(editFilePointer, newEditFile);
+         IntPtr loadHistoryPointer = this.engine.DangerousGetHandle("ptr_R_loadhistory");
+         IntPtr newLoadHistory = Marshal.GetFunctionPointerForDelegate((ptr_R_loadhistory)LoadHistory);
+         Marshal.WriteIntPtr(loadHistoryPointer, newLoadHistory);
+         IntPtr saveHistoryPointer = this.engine.DangerousGetHandle("ptr_R_savehistory");
+         IntPtr newSaveHistory = Marshal.GetFunctionPointerForDelegate((ptr_R_savehistory)SaveHistory);
+         Marshal.WriteIntPtr(saveHistoryPointer, newSaveHistory);
+         IntPtr addHistoryPointer = this.engine.DangerousGetHandle("ptr_R_addhistory");
+         IntPtr newAddHistory = Marshal.GetFunctionPointerForDelegate((ptr_R_addhistory)AddHistory);
+         Marshal.WriteIntPtr(addHistoryPointer, newAddHistory);
+      }
+
+      private static string ConvertSeparator(string path)
+      {
+         return path.Replace(Path.DirectorySeparatorChar, '/');
+      }
+
+      private bool ReadConsole(string prompt, StringBuilder buffer, int count, bool history)
+      {
+         buffer.Clear();
+         string input = Device.ReadConsole(prompt, count, history);
+         buffer.Append(input).Append("\n"); // input must end with '\n\0' ('\0' is appended during 
marshalling).
+         return input != null;
+      }
+
+      private void WriteConsole(string buffer, int length)
+      {
+         WriteConsoleEx(buffer, length, ConsoleOutputType.None);
+      }
+
+      private void WriteConsoleEx(string buffer, int length, ConsoleOutputType outputType)
+      {
+         Device.WriteConsole(buffer, length, outputType);
+      }
+
+      private void ShowMessage(string message)
+      {
+         Device.ShowMessage(message);
+      }
+
+      private void Busy(BusyType which)
+      {
+         Device.Busy(which);
+      }
+
+      private void Callback()
+      {
+         Device.Callback();
+      }
+
+      private YesNoCancel Ask(string question)
+      {
+         return Device.Ask(question);
+      }
+
+      private void Suicide(string message)
+      {
+         Device.Suicide(message);
+      }
+
+      private void ResetConsole()
+      {
+         Device.ResetConsole();
+      }
+
+      private void FlushConsole()
+      {
+         Device.FlushConsole();
+      }
+
+      private void ClearErrorConsole()
+      {
+         Device.ClearErrorConsole();
+      }
+
+      private void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
+      {
+         Device.CleanUp(saveAction, status, runLast);
+      }
+
+      private bool ShowFiles(int count, string[] files, string[] headers, string title, bool delete, string 
pager)
+      {
+         return Device.ShowFiles(files, headers, title, delete, pager);
+      }
+
+      private int ChooseFile(bool create, StringBuilder buffer, int length)
+      {
+         string path = Device.ChooseFile(create);
+         return path == null ? 0 : Encoding.ASCII.GetByteCount(path);
+      }
+
+      private void EditFile(string file)
+      {
+         Device.EditFile(file);
+      }
+
+      private IntPtr LoadHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
+      {
+         var c = new Language(Engine, call);
+         var op = new SymbolicExpression(Engine, operation);
+         var arglist = new Pairlist(Engine, args);
+         var env = new REnvironment(Engine, environment);
+         SymbolicExpression result = Device.LoadHistory(c, op, arglist, env);
+         return result.DangerousGetHandle();
+      }
+
+      private IntPtr SaveHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
+      {
+         var c = new Language(Engine, call);
+         var op = new SymbolicExpression(Engine, operation);
+         var arglist = new Pairlist(Engine, args);
+         var env = new REnvironment(Engine, environment);
+         SymbolicExpression result = Device.SaveHistory(c, op, arglist, env);
+         return result.DangerousGetHandle();
+      }
+
+      private IntPtr AddHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
+      {
+         var c = new Language(Engine, call);
+         var op = new SymbolicExpression(Engine, operation);
+         var arglist = new Pairlist(Engine, args);
+         var env = new REnvironment(Engine, environment);
+         SymbolicExpression result = Device.AddHistory(c, op, arglist, env);
+         return result.DangerousGetHandle();
+      }
+
+      #region Nested type: getValue
+
+      [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+      private delegate IntPtr getValue();
+
+      #endregion Nested type: getValue
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Devices/ConsoleDevice.cs b/rdotnet/R.NET/Devices/ConsoleDevice.cs
index 094b5ff..f0fbfbd 100644
--- a/rdotnet/R.NET/Devices/ConsoleDevice.cs
+++ b/rdotnet/R.NET/Devices/ConsoleDevice.cs
@@ -1,141 +1,143 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.IO;
-using RDotNet.Internals;
 
 namespace RDotNet.Devices
 {
-       /// <summary>
-       /// The default IO device.
-       /// </summary>
-       public class ConsoleDevice : ICharacterDevice
-       {
-               #region ICharacterDevice Members
-
-               public string ReadConsole(string prompt, int capacity, bool history)
-               {
-                       Console.Write(prompt);
-                       return Console.ReadLine();
-               }
-
-               public void WriteConsole(string output, int length, ConsoleOutputType outputType)
-               {
-                       Console.Write(output);
-               }
-
-               public void ShowMessage(string message)
-               {
-                       Console.Write(message);
-               }
-
-               public void Busy(BusyType which)
-               {}
-
-               public void Callback()
-               {}
-
-               public YesNoCancel Ask(string question)
-               {
-                       Console.Write("{0} [y/n/c]: ", question);
-                       string input = Console.ReadLine();
-                       if (!string.IsNullOrEmpty(input))
-                       {
-                               switch (Char.ToLower(input[0]))
-                               {
-                                       case 'y':
-                                               return YesNoCancel.Yes;
-                                       case 'n':
-                                               return YesNoCancel.No;
-                                       case 'c':
-                                               return YesNoCancel.Cancel;
-                               }
-                       }
-                       return default(YesNoCancel);
-               }
-
-               public void Suicide(string message)
-               {
-                       Console.Error.WriteLine(message);
-                       CleanUp(StartupSaveAction.Suicide, 2, false);
-               }
-
-               public void ResetConsole()
-               {
-                       Console.Clear();
-               }
-
-               public void FlushConsole()
-               {
-                       Console.Write(string.Empty);
-               }
-
-               public void ClearErrorConsole()
-               {
-                       Console.Clear();
-               }
-
-               public void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
-               {
-                       Environment.Exit(status);
-               }
-
-               public bool ShowFiles(string[] files, string[] headers, string title, bool delete, string 
pager)
-               {
-                       int count = files.Length;
-                       for (int index = 0; index < count; index++)
-                       {
-                               try
-                               {
-                                       Console.WriteLine(headers);
-                                       Console.WriteLine(File.ReadAllText(files[index]));
-                                       if (delete)
-                                       {
-                                               File.Delete(files[index]);
-                                       }
-                               }
-                               catch (IOException)
-                               {
-                                       return false;
-                               }
-                       }
-                       return true;
-               }
-
-               public string ChooseFile(bool create)
-               {
-                       string path = Console.ReadLine();
-                       if (string.IsNullOrWhiteSpace(path))
-                       {
-                               return null;
-                       }
-                       if (create && !File.Exists(path))
-                       {
-                               File.Create(path).Close();
-                       }
-                       if (File.Exists(path))
-                       {
-                               return path;
-                       }
-                       return null;
-               }
-
-               public void EditFile(string file)
-               {}
-
-               public SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist 
args, REnvironment environment)
-               {
-                       return environment.Engine.NilValue;
-               }
-
-               public SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist 
args, REnvironment environment)
-               {
-                       return environment.Engine.NilValue;
-               }
-
-               public SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist 
args, REnvironment environment)
-               {
-                       return environment.Engine.NilValue;
-               }
-
-               #endregion
-       }
-}
+   /// <summary>
+   /// The default IO device.
+   /// </summary>
+   public class ConsoleDevice : ICharacterDevice
+   {
+      #region ICharacterDevice Members
+
+      public string ReadConsole(string prompt, int capacity, bool history)
+      {
+         Console.Write(prompt);
+         return Console.ReadLine();
+      }
+
+      public void WriteConsole(string output, int length, ConsoleOutputType outputType)
+      {
+         Console.Write(output);
+      }
+
+      public void ShowMessage(string message)
+      {
+         Console.Write(message);
+      }
+
+      public void Busy(BusyType which)
+      { }
+
+      public void Callback()
+      { }
+
+      public YesNoCancel Ask(string question)
+      {
+         Console.Write("{0} [y/n/c]: ", question);
+         string input = Console.ReadLine();
+         if (!string.IsNullOrEmpty(input))
+         {
+            switch (Char.ToLower(input[0]))
+            {
+               case 'y':
+                  return YesNoCancel.Yes;
+
+               case 'n':
+                  return YesNoCancel.No;
+
+               case 'c':
+                  return YesNoCancel.Cancel;
+            }
+         }
+         return default(YesNoCancel);
+      }
+
+      public void Suicide(string message)
+      {
+         Console.Error.WriteLine(message);
+         CleanUp(StartupSaveAction.Suicide, 2, false);
+      }
+
+      public void ResetConsole()
+      {
+         Console.Clear();
+      }
+
+      public void FlushConsole()
+      {
+         Console.Write(string.Empty);
+      }
+
+      public void ClearErrorConsole()
+      {
+         Console.Clear();
+      }
+
+      public void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
+      {
+         Environment.Exit(status);
+      }
+
+      public bool ShowFiles(string[] files, string[] headers, string title, bool delete, string pager)
+      {
+         int count = files.Length;
+         for (int index = 0; index < count; index++)
+         {
+            try
+            {
+               Console.WriteLine(headers);
+               Console.WriteLine(File.ReadAllText(files[index]));
+               if (delete)
+               {
+                  File.Delete(files[index]);
+               }
+            }
+            catch (IOException)
+            {
+               return false;
+            }
+         }
+         return true;
+      }
+
+      public string ChooseFile(bool create)
+      {
+         string path = Console.ReadLine();
+         if (string.IsNullOrWhiteSpace(path))
+         {
+            return null;
+         }
+         if (create && !File.Exists(path))
+         {
+            File.Create(path).Close();
+         }
+         if (File.Exists(path))
+         {
+            return path;
+         }
+         return null;
+      }
+
+      public void EditFile(string file)
+      { }
+
+      public SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment)
+      {
+         return environment.Engine.NilValue;
+      }
+
+      public SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment)
+      {
+         return environment.Engine.NilValue;
+      }
+
+      public SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment)
+      {
+         return environment.Engine.NilValue;
+      }
+
+      #endregion ICharacterDevice Members
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Devices/ICharacterDevice.cs b/rdotnet/R.NET/Devices/ICharacterDevice.cs
index 476f4c2..be3a00c 100644
--- a/rdotnet/R.NET/Devices/ICharacterDevice.cs
+++ b/rdotnet/R.NET/Devices/ICharacterDevice.cs
@@ -2,141 +2,141 @@
 
 namespace RDotNet.Devices
 {
-       /// <summary>
-       /// A console class handles user's inputs and outputs.
-       /// </summary>
-       public interface ICharacterDevice
-       {
-               /// <summary>
-               /// Read input from console.
-               /// </summary>
-               /// <param name="prompt">The prompt message.</param>
-               /// <param name="capacity">The buffer's capacity in byte.</param>
-               /// <param name="history">Whether the input should be added to any command history.</param>
-               /// <returns>The input.</returns>
-               string ReadConsole(string prompt, int capacity, bool history);
-
-               /// <summary>
-               /// Write output on console.
-               /// </summary>
-               /// <param name="output">The output message</param>
-               /// <param name="length">The output's length in byte.</param>
-               /// <param name="outputType">The output type.</param>
-               void WriteConsole(string output, int length, ConsoleOutputType outputType);
-
-               /// <summary>
-               /// Displays the message.
-               /// </summary>
-               /// <remarks>
-               /// It should be brought to the user's attention immediately. 
-               /// </remarks>
-               /// <param name="message">The message.</param>
-               void ShowMessage(string message);
-
-               /// <summary>
-               /// Invokes actions.
-               /// </summary>
-               /// <param name="which">The state.</param>
-               void Busy(BusyType which);
-
-               /// <summary>
-               /// Callback function.
-               /// </summary>
-               void Callback();
-
-               /// <summary>
-               /// Asks user's decision.
-               /// </summary>
-               /// <param name="question">The question.</param>
-               /// <returns>User's decision.</returns>
-               YesNoCancel Ask(string question);
-
-               /// <summary>
-               /// Abort R environment itself as soon as possible.
-               /// </summary>
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               /// <param name="message">The message.</param>
-               void Suicide(string message);
-
-               /// <summary>
-               /// Clear the console.
-               /// </summary>
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               void ResetConsole();
-
-               /// <summary>
-               /// Flush the console.
-               /// </summary>
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               void FlushConsole();
-
-               /// <summary>
-               /// Clear the error console.
-               /// </summary>
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               void ClearErrorConsole();
-
-               /// <summary>
-               /// Invokes any actions which occur at system termination.
-               /// </summary>
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               /// <param name="saveAction">The save type.</param>
-               /// <param name="status">Exit code.</param>
-               /// <param name="runLast">Whether R should execute <code>.Last</code>.</param>
-               void CleanUp(StartupSaveAction saveAction, int status, bool runLast);
-
-               /// <summary>
-               /// Displays the contents of files. 
-               /// </summary>
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               /// <param name="files">The file paths.</param>
-               /// <param name="headers">The header before the contents is printed.</param>
-               /// <param name="title">The window title.</param>
-               /// <param name="delete">Whether the file will be deleted.</param>
-               /// <param name="pager">The pager used.</param>
-               /// <returns></returns>
-               bool ShowFiles(string[] files, string[] headers, string title, bool delete, string pager);
-
-               /// <summary>
-               /// Chooses a file.
-               /// </summary>
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               /// <param name="create">To be created.</param>
-               /// <returns>The length of input.</returns>
-               string ChooseFile(bool create);
-
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               void EditFile(string file);
-
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment);
-
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment);
-
-               /// <remarks>
-               /// Only Unix.
-               /// </remarks>
-               SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment);
-       }
-}
+   /// <summary>
+   /// A console class handles user's inputs and outputs.
+   /// </summary>
+   public interface ICharacterDevice
+   {
+      /// <summary>
+      /// Read input from console.
+      /// </summary>
+      /// <param name="prompt">The prompt message.</param>
+      /// <param name="capacity">The buffer's capacity in byte.</param>
+      /// <param name="history">Whether the input should be added to any command history.</param>
+      /// <returns>The input.</returns>
+      string ReadConsole(string prompt, int capacity, bool history);
+
+      /// <summary>
+      /// Write output on console.
+      /// </summary>
+      /// <param name="output">The output message</param>
+      /// <param name="length">The output's length in byte.</param>
+      /// <param name="outputType">The output type.</param>
+      void WriteConsole(string output, int length, ConsoleOutputType outputType);
+
+      /// <summary>
+      /// Displays the message.
+      /// </summary>
+      /// <remarks>
+      /// It should be brought to the user's attention immediately.
+      /// </remarks>
+      /// <param name="message">The message.</param>
+      void ShowMessage(string message);
+
+      /// <summary>
+      /// Invokes actions.
+      /// </summary>
+      /// <param name="which">The state.</param>
+      void Busy(BusyType which);
+
+      /// <summary>
+      /// Callback function.
+      /// </summary>
+      void Callback();
+
+      /// <summary>
+      /// Asks user's decision.
+      /// </summary>
+      /// <param name="question">The question.</param>
+      /// <returns>User's decision.</returns>
+      YesNoCancel Ask(string question);
+
+      /// <summary>
+      /// Abort R environment itself as soon as possible.
+      /// </summary>
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      /// <param name="message">The message.</param>
+      void Suicide(string message);
+
+      /// <summary>
+      /// Clear the console.
+      /// </summary>
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      void ResetConsole();
+
+      /// <summary>
+      /// Flush the console.
+      /// </summary>
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      void FlushConsole();
+
+      /// <summary>
+      /// Clear the error console.
+      /// </summary>
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      void ClearErrorConsole();
+
+      /// <summary>
+      /// Invokes any actions which occur at system termination.
+      /// </summary>
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      /// <param name="saveAction">The save type.</param>
+      /// <param name="status">Exit code.</param>
+      /// <param name="runLast">Whether R should execute <code>.Last</code>.</param>
+      void CleanUp(StartupSaveAction saveAction, int status, bool runLast);
+
+      /// <summary>
+      /// Displays the contents of files.
+      /// </summary>
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      /// <param name="files">The file paths.</param>
+      /// <param name="headers">The header before the contents is printed.</param>
+      /// <param name="title">The window title.</param>
+      /// <param name="delete">Whether the file will be deleted.</param>
+      /// <param name="pager">The pager used.</param>
+      /// <returns></returns>
+      bool ShowFiles(string[] files, string[] headers, string title, bool delete, string pager);
+
+      /// <summary>
+      /// Chooses a file.
+      /// </summary>
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      /// <param name="create">To be created.</param>
+      /// <returns>The length of input.</returns>
+      string ChooseFile(bool create);
+
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      void EditFile(string file);
+
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment);
+
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment);
+
+      /// <remarks>
+      /// Only Unix.
+      /// </remarks>
+      SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist args, REnvironment 
environment);
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Devices/NullCharacterDevice.cs b/rdotnet/R.NET/Devices/NullCharacterDevice.cs
index c0eb773..a10985b 100644
--- a/rdotnet/R.NET/Devices/NullCharacterDevice.cs
+++ b/rdotnet/R.NET/Devices/NullCharacterDevice.cs
@@ -1,84 +1,84 @@
-using System;
-using RDotNet.Internals;
+using RDotNet.Internals;
+using System;
 
 namespace RDotNet.Devices
 {
-       /// <summary>
-       /// The default IO device.
-       /// </summary>
-       public class NullCharacterDevice : ICharacterDevice
-       {
-               #region ICharacterDevice Members
-
-               public string ReadConsole(string prompt, int capacity, bool history)
-               {
-                       return null;
-               }
-
-               public void WriteConsole(string output, int length, ConsoleOutputType outputType)
-               {}
-
-               public void ShowMessage(string message)
-               {}
-
-               public void Busy(BusyType which)
-               {}
-
-               public void Callback()
-               {}
-
-               public YesNoCancel Ask(string question)
-               {
-                       return default(YesNoCancel);
-               }
-
-               public void Suicide(string message)
-               {
-                       CleanUp(StartupSaveAction.Suicide, 2, false);
-               }
-
-               public void ResetConsole()
-               {}
-
-               public void FlushConsole()
-               {}
-
-               public void ClearErrorConsole()
-               {}
-
-               public void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
-               {
-                       Environment.Exit(status);
-               }
-
-               public bool ShowFiles(string[] files, string[] headers, string title, bool delete, string 
pager)
-               {
-                       return false;
-               }
-
-               public string ChooseFile(bool create)
-               {
-                       return null;
-               }
-
-               public void EditFile(string file)
-               {}
-
-               public SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist 
args, REnvironment environment)
-               {
-                       return environment.Engine.NilValue;
-               }
-
-               public SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist 
args, REnvironment environment)
-               {
-                       return environment.Engine.NilValue;
-               }
-
-               public SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist 
args, REnvironment environment)
-               {
-                       return environment.Engine.NilValue;
-               }
-
-               #endregion
-       }
-}
+   /// <summary>
+   /// The default IO device.
+   /// </summary>
+   public class NullCharacterDevice : ICharacterDevice
+   {
+      #region ICharacterDevice Members
+
+      public string ReadConsole(string prompt, int capacity, bool history)
+      {
+         return null;
+      }
+
+      public void WriteConsole(string output, int length, ConsoleOutputType outputType)
+      { }
+
+      public void ShowMessage(string message)
+      { }
+
+      public void Busy(BusyType which)
+      { }
+
+      public void Callback()
+      { }
+
+      public YesNoCancel Ask(string question)
+      {
+         return default(YesNoCancel);
+      }
+
+      public void Suicide(string message)
+      {
+         CleanUp(StartupSaveAction.Suicide, 2, false);
+      }
+
+      public void ResetConsole()
+      { }
+
+      public void FlushConsole()
+      { }
+
+      public void ClearErrorConsole()
+      { }
+
+      public void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
+      {
+         Environment.Exit(status);
+      }
+
+      public bool ShowFiles(string[] files, string[] headers, string title, bool delete, string pager)
+      {
+         return false;
+      }
+
+      public string ChooseFile(bool create)
+      {
+         return null;
+      }
+
+      public void EditFile(string file)
+      { }
+
+      public SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment)
+      {
+         return environment.Engine.NilValue;
+      }
+
+      public SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment)
+      {
+         return environment.Engine.NilValue;
+      }
+
+      public SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist args, 
REnvironment environment)
+      {
+         return environment.Engine.NilValue;
+      }
+
+      #endregion ICharacterDevice Members
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Diagnostics/DataFrameColumnDisplay.cs 
b/rdotnet/R.NET/Diagnostics/DataFrameColumnDisplay.cs
new file mode 100644
index 0000000..496e1ef
--- /dev/null
+++ b/rdotnet/R.NET/Diagnostics/DataFrameColumnDisplay.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Diagnostics;
+using System.Linq;
+
+namespace RDotNet.Diagnostics
+{
+   [DebuggerDisplay("{Display,nq}")]
+   internal class DataFrameColumnDisplay
+   {
+      [DebuggerBrowsable(DebuggerBrowsableState.Never)]
+      private readonly DataFrame data;
+
+      [DebuggerBrowsable(DebuggerBrowsableState.Never)]
+      private readonly int columnIndex;
+
+      public DataFrameColumnDisplay(DataFrame data, int columnIndex)
+      {
+         this.data = data;
+         this.columnIndex = columnIndex;
+      }
+
+      [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+      public object[] Value
+      {
+         get
+         {
+            var column = this.data[this.columnIndex];
+            return column.IsFactor() ? column.AsFactor().GetFactors() : column.ToArray();
+         }
+      }
+
+      [DebuggerBrowsable(DebuggerBrowsableState.Never)]
+      public string Display
+      {
+         get
+         {
+            var column = this.data[this.columnIndex];
+            var names = this.data.ColumnNames;
+            if (names == null || names[this.columnIndex] == null)
+            {
+               return String.Format("NA ({0})", column.Type);
+            }
+            else
+            {
+               return String.Format("\"{0}\" ({1})", names[this.columnIndex], column.Type);
+            }
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Diagnostics/DataFrameDebugView.cs b/rdotnet/R.NET/Diagnostics/DataFrameDebugView.cs
new file mode 100644
index 0000000..e38d73e
--- /dev/null
+++ b/rdotnet/R.NET/Diagnostics/DataFrameDebugView.cs
@@ -0,0 +1,26 @@
+using System.Diagnostics;
+using System.Linq;
+
+namespace RDotNet.Diagnostics
+{
+   internal class DataFrameDebugView
+   {
+      private readonly DataFrame dataFrame;
+
+      public DataFrameDebugView(DataFrame dataFrame)
+      {
+         this.dataFrame = dataFrame;
+      }
+
+      [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+      public DataFrameColumnDisplay[] Column
+      {
+         get
+         {
+            return Enumerable.Range(0, this.dataFrame.ColumnCount)
+               .Select(column => new DataFrameColumnDisplay(this.dataFrame, column))
+               .ToArray();
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Diagnostics/FactorDebugView.cs b/rdotnet/R.NET/Diagnostics/FactorDebugView.cs
new file mode 100644
index 0000000..25c0628
--- /dev/null
+++ b/rdotnet/R.NET/Diagnostics/FactorDebugView.cs
@@ -0,0 +1,24 @@
+using System.Diagnostics;
+using System.Linq;
+
+namespace RDotNet.Diagnostics
+{
+   internal class FactorDebugView
+   {
+      private readonly Factor factor;
+
+      public FactorDebugView(Factor factor)
+      {
+         this.factor = factor;
+      }
+
+      [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+      public string[] Value
+      {
+         get
+         {
+            return this.factor.GetFactors().ToArray();
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Diagnostics/MatrixDebugView.cs b/rdotnet/R.NET/Diagnostics/MatrixDebugView.cs
new file mode 100644
index 0000000..73338ef
--- /dev/null
+++ b/rdotnet/R.NET/Diagnostics/MatrixDebugView.cs
@@ -0,0 +1,25 @@
+using System.Diagnostics;
+
+namespace RDotNet.Diagnostics
+{
+   internal class MatrixDebugView<T>
+   {
+      private readonly Matrix<T> matrix;
+
+      public MatrixDebugView(Matrix<T> matrix)
+      {
+         this.matrix = matrix;
+      }
+
+      [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+      public T[,] Value
+      {
+         get
+         {
+            var array = new T[this.matrix.RowCount, this.matrix.ColumnCount];
+            this.matrix.CopyTo(array, this.matrix.RowCount, this.matrix.ColumnCount);
+            return array;
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Diagnostics/VectorDebugView.cs b/rdotnet/R.NET/Diagnostics/VectorDebugView.cs
new file mode 100644
index 0000000..673e6da
--- /dev/null
+++ b/rdotnet/R.NET/Diagnostics/VectorDebugView.cs
@@ -0,0 +1,25 @@
+using System.Diagnostics;
+
+namespace RDotNet.Diagnostics
+{
+   internal class VectorDebugView<T>
+   {
+      private readonly Vector<T> vector;
+
+      public VectorDebugView(Vector<T> vector)
+      {
+         this.vector = vector;
+      }
+
+      [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+      public T[] Value
+      {
+         get
+         {
+            var array = new T[this.vector.Length];
+            this.vector.CopyTo(array, array.Length);
+            return array;
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Dynamic/DataFrameDynamicMeta.cs b/rdotnet/R.NET/Dynamic/DataFrameDynamicMeta.cs
index a139353..31a2bf8 100644
--- a/rdotnet/R.NET/Dynamic/DataFrameDynamicMeta.cs
+++ b/rdotnet/R.NET/Dynamic/DataFrameDynamicMeta.cs
@@ -7,36 +7,36 @@ using System.Reflection;
 
 namespace RDotNet.Dynamic
 {
-       public class DataFrameDynamicMeta : SymbolicExpressionDynamicMeta
-       {
-               private static readonly Type[] IndexerNameType = new[] { typeof(string) };
+   public class DataFrameDynamicMeta : SymbolicExpressionDynamicMeta
+   {
+      private static readonly Type[] IndexerNameType = new[] { typeof(string) };
 
-               public DataFrameDynamicMeta(System.Linq.Expressions.Expression parameter, DataFrame frame)
-                       : base(parameter, frame)
-               {}
+      public DataFrameDynamicMeta(System.Linq.Expressions.Expression parameter, DataFrame frame)
+         : base(parameter, frame)
+      { }
 
-               public override IEnumerable<string> GetDynamicMemberNames()
-               {
-                       return base.GetDynamicMemberNames().Concat(GetNames());
-               }
+      public override IEnumerable<string> GetDynamicMemberNames()
+      {
+         return base.GetDynamicMemberNames().Concat(GetNames());
+      }
 
-               public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
-               {
-                       if (!GetNames().Contains(binder.Name))
-                       {
-                               return base.BindGetMember(binder);
-                       }
+      public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
+      {
+         if (!GetNames().Contains(binder.Name))
+         {
+            return base.BindGetMember(binder);
+         }
 
-                       ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value, 
typeof(DataFrame));
-                       ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name, 
typeof(string));
-                       PropertyInfo indexer = typeof(DataFrame).GetProperty("Item", IndexerNameType);
-                       IndexExpression call = System.Linq.Expressions.Expression.Property(instance, indexer, 
name);
-                       return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call, 
typeof(DynamicVector)));
-               }
+         ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value, typeof(DataFrame));
+         ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name, typeof(string));
+         PropertyInfo indexer = typeof(DataFrame).GetProperty("Item", IndexerNameType);
+         IndexExpression call = System.Linq.Expressions.Expression.Property(instance, indexer, name);
+         return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call, 
typeof(DynamicVector)));
+      }
 
-               private string[] GetNames()
-               {
-                       return ((DataFrame)Value).ColumnNames ?? Empty;
-               }
-       }
-}
+      private string[] GetNames()
+      {
+         return ((DataFrame)Value).ColumnNames ?? Empty;
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Dynamic/ListDynamicMeta.cs b/rdotnet/R.NET/Dynamic/ListDynamicMeta.cs
index b0150c2..5ae19f3 100644
--- a/rdotnet/R.NET/Dynamic/ListDynamicMeta.cs
+++ b/rdotnet/R.NET/Dynamic/ListDynamicMeta.cs
@@ -7,36 +7,36 @@ using System.Reflection;
 
 namespace RDotNet.Dynamic
 {
-       public class ListDynamicMeta : SymbolicExpressionDynamicMeta
-       {
-               private static readonly Type[] IndexerNameType = new[] { typeof(string) };
+   public class ListDynamicMeta : SymbolicExpressionDynamicMeta
+   {
+      private static readonly Type[] IndexerNameType = new[] { typeof(string) };
 
-               public ListDynamicMeta(System.Linq.Expressions.Expression parameter, GenericVector list)
-                       : base(parameter, list)
-               {}
+      public ListDynamicMeta(System.Linq.Expressions.Expression parameter, GenericVector list)
+         : base(parameter, list)
+      { }
 
-               public override IEnumerable<string> GetDynamicMemberNames()
-               {
-                       return base.GetDynamicMemberNames().Concat(GetNames());
-               }
+      public override IEnumerable<string> GetDynamicMemberNames()
+      {
+         return base.GetDynamicMemberNames().Concat(GetNames());
+      }
 
-               public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
-               {
-                       if (!GetNames().Contains(binder.Name))
-                       {
-                               return base.BindGetMember(binder);
-                       }
+      public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
+      {
+         if (!GetNames().Contains(binder.Name))
+         {
+            return base.BindGetMember(binder);
+         }
 
-                       ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value, 
typeof(GenericVector));
-                       ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name, 
typeof(string));
-                       PropertyInfo indexer = typeof(GenericVector).GetProperty("Item", IndexerNameType);
-                       IndexExpression call = System.Linq.Expressions.Expression.Property(instance, indexer, 
name);
-                       return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call, 
typeof(SymbolicExpression)));
-               }
+         ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value, 
typeof(GenericVector));
+         ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name, typeof(string));
+         PropertyInfo indexer = typeof(GenericVector).GetProperty("Item", IndexerNameType);
+         IndexExpression call = System.Linq.Expressions.Expression.Property(instance, indexer, name);
+         return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call, 
typeof(SymbolicExpression)));
+      }
 
-               private string[] GetNames()
-               {
-                       return ((GenericVector)Value).Names ?? Empty;
-               }
-       }
-}
+      private string[] GetNames()
+      {
+         return ((GenericVector)Value).Names ?? Empty;
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Dynamic/SymbolicExpressionDynamicMeta.cs 
b/rdotnet/R.NET/Dynamic/SymbolicExpressionDynamicMeta.cs
index 7110d2c..304eecc 100644
--- a/rdotnet/R.NET/Dynamic/SymbolicExpressionDynamicMeta.cs
+++ b/rdotnet/R.NET/Dynamic/SymbolicExpressionDynamicMeta.cs
@@ -6,36 +6,36 @@ using System.Reflection;
 
 namespace RDotNet.Dynamic
 {
-       public class SymbolicExpressionDynamicMeta : DynamicMetaObject
-       {
-               protected static readonly string[] Empty = new string[0];
+   public class SymbolicExpressionDynamicMeta : DynamicMetaObject
+   {
+      protected static readonly string[] Empty = new string[0];
 
-               public SymbolicExpressionDynamicMeta(System.Linq.Expressions.Expression parameter, 
SymbolicExpression expression)
-                       : base(parameter, BindingRestrictions.Empty, expression)
-               {}
+      public SymbolicExpressionDynamicMeta(System.Linq.Expressions.Expression parameter, SymbolicExpression 
expression)
+         : base(parameter, BindingRestrictions.Empty, expression)
+      { }
 
-               public override IEnumerable<string> GetDynamicMemberNames()
-               {
-                       return base.GetDynamicMemberNames().Concat(GetAttributeNames());
-               }
+      public override IEnumerable<string> GetDynamicMemberNames()
+      {
+         return base.GetDynamicMemberNames().Concat(GetAttributeNames());
+      }
 
-               public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
-               {
-                       if (!GetAttributeNames().Contains(binder.Name))
-                       {
-                               return base.BindGetMember(binder);
-                       }
+      public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
+      {
+         if (!GetAttributeNames().Contains(binder.Name))
+         {
+            return base.BindGetMember(binder);
+         }
 
-                       ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value, 
typeof(SymbolicExpression));
-                       ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name, 
typeof(string));
-                       MethodInfo getAttribute = typeof(SymbolicExpression).GetMethod("GetAttribute");
-                       MethodCallExpression call = System.Linq.Expressions.Expression.Call(instance, 
getAttribute, name);
-                       return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call, 
typeof(SymbolicExpression)));
-               }
+         ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value, 
typeof(SymbolicExpression));
+         ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name, typeof(string));
+         MethodInfo getAttribute = typeof(SymbolicExpression).GetMethod("GetAttribute");
+         MethodCallExpression call = System.Linq.Expressions.Expression.Call(instance, getAttribute, name);
+         return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call, 
typeof(SymbolicExpression)));
+      }
 
-               private string[] GetAttributeNames()
-               {
-                       return ((SymbolicExpression)Value).GetAttributeNames() ?? Empty;
-               }
-       }
-}
+      private string[] GetAttributeNames()
+      {
+         return ((SymbolicExpression)Value).GetAttributeNames() ?? Empty;
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/DynamicVector.cs b/rdotnet/R.NET/DynamicVector.cs
index 30a73e1..c1b00af 100644
--- a/rdotnet/R.NET/DynamicVector.cs
+++ b/rdotnet/R.NET/DynamicVector.cs
@@ -1,215 +1,257 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Numerics;
 using System.Runtime.InteropServices;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A collection of values.
-       /// </summary>
-       /// <remarks>
-       /// This vector cannot contain more than one types of values.
-       /// Consider to use another vector class instead.
-       /// </remarks>
-       public class DynamicVector : Vector<object>
-       {
-               protected internal DynamicVector(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
-
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <remarks>
-               /// The value is converted into specific type.
-               /// </remarks>
-               /// <param name="index">The zero-based index of the element to get or set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override object this[int index]
-               {
-                       get
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       IntPtr pointer = DataPointer;
-                                       int offset = GetOffset(index);
-                                       switch (Type)
-                                       {
-                                               case SymbolicExpressionType.NumericVector:
-                                                       return ReadDouble(pointer, offset);
-                                               case SymbolicExpressionType.IntegerVector:
-                                                       return ReadInt32(pointer, offset);
-                                               case SymbolicExpressionType.CharacterVector:
-                                                       return ReadString(pointer, offset);
-                                               case SymbolicExpressionType.LogicalVector:
-                                                       return ReadBoolean(pointer, offset);
-                                               case SymbolicExpressionType.RawVector:
-                                                       return ReadByte(pointer, offset);
-                                               case SymbolicExpressionType.ComplexVector:
-                                                       return ReadComplex(pointer, offset);
-                                               default:
-                                                       return ReadSymbolicExpression(pointer, offset);
-                                       }
-                               }
-                       }
-                       set
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       IntPtr pointer = DataPointer;
-                                       int offset = GetOffset(index);
-                                       switch (Type)
-                                       {
-                                               case SymbolicExpressionType.NumericVector:
-                                                       WriteDouble((double)value, pointer, offset);
-                                                       return;
-                                               case SymbolicExpressionType.IntegerVector:
-                                                       WriteInt32((int)value, pointer, offset);
-                                                       return;
-                                               case SymbolicExpressionType.CharacterVector:
-                                                       WriteString((string)value, pointer, offset);
-                                                       return;
-                                               case SymbolicExpressionType.LogicalVector:
-                                                       WriteBoolean((bool)value, pointer, offset);
-                                                       return;
-                                               case SymbolicExpressionType.RawVector:
-                                                       WriteByte((byte)value, pointer, offset);
-                                                       return;
-                                               case SymbolicExpressionType.ComplexVector:
-                                                       WriteComplex((Complex)value, pointer, offset);
-                                                       return;
-                                               default:
-                                                       WriteSymbolicExpression((SymbolicExpression)value, 
pointer, offset);
-                                                       return;
-                                       }
-                               }
-                       }
-               }
-
-               protected override int DataSize
-               {
-                       get
-                       {
-                               switch (Type)
-                               {
-                                       case SymbolicExpressionType.NumericVector:
-                                               return sizeof(double);
-                                       case SymbolicExpressionType.IntegerVector:
-                                               return sizeof(int);
-                                       case SymbolicExpressionType.CharacterVector:
-                                               return Marshal.SizeOf(typeof(IntPtr));
-                                       case SymbolicExpressionType.LogicalVector:
-                                               return sizeof(int);
-                                       case SymbolicExpressionType.RawVector:
-                                               return sizeof(byte);
-                                       case SymbolicExpressionType.ComplexVector:
-                                               return Marshal.SizeOf(typeof(Complex));
-                                       default:
-                                               return Marshal.SizeOf(typeof(IntPtr));
-                               }
-                       }
-               }
-
-               private double ReadDouble(IntPtr pointer, int offset)
-               {
-                       var data = new byte[sizeof(double)];
-                       for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
-                       {
-                               data[byteIndex] = Marshal.ReadByte(pointer, offset + byteIndex);
-                       }
-                       return BitConverter.ToDouble(data, 0);
-               }
-
-               private void WriteDouble(double value, IntPtr pointer, int offset)
-               {
-                       byte[] data = BitConverter.GetBytes(value);
-                       for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
-                       {
-                               Marshal.WriteByte(pointer, offset + byteIndex, data[byteIndex]);
-                       }
-               }
-
-               private int ReadInt32(IntPtr pointer, int offset)
-               {
-                       return Marshal.ReadInt32(pointer, offset);
-               }
-
-               private void WriteInt32(int value, IntPtr pointer, int offset)
-               {
-                       Marshal.WriteInt32(pointer, offset, value);
-               }
-
-               private string ReadString(IntPtr pointer, int offset)
-               {
-                       pointer = Marshal.ReadIntPtr(pointer, offset);
-                       pointer = IntPtr.Add(pointer, Marshal.SizeOf(typeof(VECTOR_SEXPREC)));
-                       return Marshal.PtrToStringAnsi(pointer);
-               }
-
-               private void WriteString(string value, IntPtr pointer, int offset)
-               {
-                       IntPtr stringPointer = Engine.GetFunction<Rf_mkChar>("Rf_mkChar")(value);
-                       Marshal.WriteIntPtr(pointer, offset, stringPointer);
-               }
-
-               private bool ReadBoolean(IntPtr pointer, int offset)
-               {
-                       int data = Marshal.ReadInt32(pointer, offset);
-                       return Convert.ToBoolean(data);
-               }
-
-               private void WriteBoolean(bool value, IntPtr pointer, int offset)
-               {
-                       int data = Convert.ToInt32(value);
-                       Marshal.WriteInt32(pointer, offset, data);
-               }
-
-               private byte ReadByte(IntPtr pointer, int offset)
-               {
-                       return Marshal.ReadByte(pointer, offset);
-               }
-
-               private void WriteByte(byte value, IntPtr pointer, int offset)
-               {
-                       Marshal.WriteByte(pointer, offset, value);
-               }
-
-               private Complex ReadComplex(IntPtr pointer, int offset)
-               {
-                       var data = new byte[Marshal.SizeOf(typeof(Complex))];
-                       Marshal.Copy(pointer, data, 0, data.Length);
-                       double real = BitConverter.ToDouble(data, 0);
-                       double imaginary = BitConverter.ToDouble(data, sizeof(double));
-                       return new Complex(real, imaginary);
-               }
-
-               private void WriteComplex(Complex value, IntPtr pointer, int offset)
-               {
-                       byte[] real = BitConverter.GetBytes(value.Real);
-                       byte[] imaginary = BitConverter.GetBytes(value.Imaginary);
-                       Marshal.Copy(real, 0, pointer, real.Length);
-                       pointer = IntPtr.Add(pointer, real.Length);
-                       Marshal.Copy(imaginary, 0, pointer, imaginary.Length);
-               }
-
-               private SymbolicExpression ReadSymbolicExpression(IntPtr pointer, int offset)
-               {
-                       IntPtr sexp = IntPtr.Add(pointer, offset);
-                       return new SymbolicExpression(Engine, sexp);
-               }
-
-               private void WriteSymbolicExpression(SymbolicExpression sexp, IntPtr pointer, int offset)
-               {
-                       Marshal.WriteIntPtr(pointer, offset, sexp.DangerousGetHandle());
-               }
-       }
-}
+   /// <summary>
+   /// A collection of values.
+   /// </summary>
+   /// <remarks>
+   /// This vector cannot contain more than one types of values.
+   /// Consider to use another vector class instead.
+   /// </remarks>
+   public class DynamicVector : Vector<object>
+   {
+      protected internal DynamicVector(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
+
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <remarks>
+      /// The value is converted into specific type.
+      /// </remarks>
+      /// <param name="index">The zero-based index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override object this[int index]
+      {
+         get
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               return GetValue(index);
+            }
+         }
+         set
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               SetValue(index, value);
+            }
+         }
+      }
+
+      protected override object[] GetArrayFast()
+      {
+         var res = new object[this.Length];
+         for (int i = 0; i < res.Length; i++)
+            res[i] = GetValue(i);
+         return res;
+      }
+
+      private object GetValue(int index)
+      {
+         IntPtr pointer = DataPointer;
+         int offset = GetOffset(index);
+         switch (Type)
+         {
+            case SymbolicExpressionType.NumericVector:
+               return ReadDouble(pointer, offset);
+
+            case SymbolicExpressionType.IntegerVector:
+               return ReadInt32(pointer, offset);
+
+            case SymbolicExpressionType.CharacterVector:
+               return ReadString(pointer, offset);
+
+            case SymbolicExpressionType.LogicalVector:
+               return ReadBoolean(pointer, offset);
+
+            case SymbolicExpressionType.RawVector:
+               return ReadByte(pointer, offset);
+
+            case SymbolicExpressionType.ComplexVector:
+               return ReadComplex(pointer, offset);
+
+            default:
+               return ReadSymbolicExpression(pointer, offset);
+         }
+      }
+
+      protected override void SetVectorDirect(object[] values)
+      {
+         for (int i = 0; i < values.Length; i++)
+            SetValue(i, values[i]);
+      }
+
+      private void SetValue(int index, object value)
+      {
+         IntPtr pointer = DataPointer;
+         int offset = GetOffset(index);
+         switch (Type)
+         {
+            case SymbolicExpressionType.NumericVector:
+               WriteDouble((double)value, pointer, offset);
+               return;
+
+            case SymbolicExpressionType.IntegerVector:
+               WriteInt32((int)value, pointer, offset);
+               return;
+
+            case SymbolicExpressionType.CharacterVector:
+               WriteString((string)value, pointer, offset);
+               return;
+
+            case SymbolicExpressionType.LogicalVector:
+               WriteBoolean((bool)value, pointer, offset);
+               return;
+
+            case SymbolicExpressionType.RawVector:
+               WriteByte((byte)value, pointer, offset);
+               return;
+
+            case SymbolicExpressionType.ComplexVector:
+               WriteComplex((Complex)value, pointer, offset);
+               return;
+
+            default:
+               WriteSymbolicExpression((SymbolicExpression)value, pointer, offset);
+               return;
+         }
+      }
+
+      protected override int DataSize
+      {
+         get
+         {
+            switch (Type)
+            {
+               case SymbolicExpressionType.NumericVector:
+                  return sizeof(double);
+
+               case SymbolicExpressionType.IntegerVector:
+                  return sizeof(int);
+
+               case SymbolicExpressionType.CharacterVector:
+                  return Marshal.SizeOf(typeof(IntPtr));
+
+               case SymbolicExpressionType.LogicalVector:
+                  return sizeof(int);
+
+               case SymbolicExpressionType.RawVector:
+                  return sizeof(byte);
+
+               case SymbolicExpressionType.ComplexVector:
+                  return Marshal.SizeOf(typeof(Complex));
+
+               default:
+                  return Marshal.SizeOf(typeof(IntPtr));
+            }
+         }
+      }
+
+      private double ReadDouble(IntPtr pointer, int offset)
+      {
+         var data = new byte[sizeof(double)];
+         for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
+         {
+            data[byteIndex] = Marshal.ReadByte(pointer, offset + byteIndex);
+         }
+         return BitConverter.ToDouble(data, 0);
+      }
+
+      private void WriteDouble(double value, IntPtr pointer, int offset)
+      {
+         byte[] data = BitConverter.GetBytes(value);
+         for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
+         {
+            Marshal.WriteByte(pointer, offset + byteIndex, data[byteIndex]);
+         }
+      }
+
+      private int ReadInt32(IntPtr pointer, int offset)
+      {
+         return Marshal.ReadInt32(pointer, offset);
+      }
+
+      private void WriteInt32(int value, IntPtr pointer, int offset)
+      {
+         Marshal.WriteInt32(pointer, offset, value);
+      }
+
+      private string ReadString(IntPtr pointer, int offset)
+      {
+         pointer = Marshal.ReadIntPtr(pointer, offset);
+         pointer = IntPtr.Add(pointer, Marshal.SizeOf(typeof(VECTOR_SEXPREC)));
+         return Marshal.PtrToStringAnsi(pointer);
+      }
+
+      private void WriteString(string value, IntPtr pointer, int offset)
+      {
+         IntPtr stringPointer = Engine.GetFunction<Rf_mkChar>()(value);
+         Marshal.WriteIntPtr(pointer, offset, stringPointer);
+      }
+
+      private bool ReadBoolean(IntPtr pointer, int offset)
+      {
+         int data = Marshal.ReadInt32(pointer, offset);
+         return Convert.ToBoolean(data);
+      }
+
+      private void WriteBoolean(bool value, IntPtr pointer, int offset)
+      {
+         int data = Convert.ToInt32(value);
+         Marshal.WriteInt32(pointer, offset, data);
+      }
+
+      private byte ReadByte(IntPtr pointer, int offset)
+      {
+         return Marshal.ReadByte(pointer, offset);
+      }
+
+      private void WriteByte(byte value, IntPtr pointer, int offset)
+      {
+         Marshal.WriteByte(pointer, offset, value);
+      }
+
+      private Complex ReadComplex(IntPtr pointer, int offset)
+      {
+         var data = new byte[Marshal.SizeOf(typeof(Complex))];
+         Marshal.Copy(pointer, data, 0, data.Length);
+         double real = BitConverter.ToDouble(data, 0);
+         double imaginary = BitConverter.ToDouble(data, sizeof(double));
+         return new Complex(real, imaginary);
+      }
+
+      private void WriteComplex(Complex value, IntPtr pointer, int offset)
+      {
+         byte[] real = BitConverter.GetBytes(value.Real);
+         byte[] imaginary = BitConverter.GetBytes(value.Imaginary);
+         Marshal.Copy(real, 0, pointer, real.Length);
+         pointer = IntPtr.Add(pointer, real.Length);
+         Marshal.Copy(imaginary, 0, pointer, imaginary.Length);
+      }
+
+      private SymbolicExpression ReadSymbolicExpression(IntPtr pointer, int offset)
+      {
+         IntPtr sexp = IntPtr.Add(pointer, offset);
+         return new SymbolicExpression(Engine, sexp);
+      }
+
+      private void WriteSymbolicExpression(SymbolicExpression sexp, IntPtr pointer, int offset)
+      {
+         Marshal.WriteIntPtr(pointer, offset, sexp.DangerousGetHandle());
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Environment.cs b/rdotnet/R.NET/Environment.cs
index 187191c..51d0dbc 100644
--- a/rdotnet/R.NET/Environment.cs
+++ b/rdotnet/R.NET/Environment.cs
@@ -1,90 +1,115 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Runtime.InteropServices;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// An environment object.
-       /// </summary>
-       public class REnvironment : SymbolicExpression
-       {
-               /// <summary>
-               /// Creates an environment object.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="pointer">The pointer to an environment.</param>
-               protected internal REnvironment(REngine engine, IntPtr pointer)
-                       : base(engine, pointer)
-               {}
+   /// <summary>
+   /// An environment object.
+   /// </summary>
+   public class REnvironment : SymbolicExpression
+   {
+      /// <summary>
+      /// Creates an environment object.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="pointer">The pointer to an environment.</param>
+      protected internal REnvironment(REngine engine, IntPtr pointer)
+         : base(engine, pointer)
+      { }
 
-               /// <summary>
-               /// Gets the parental environment.
-               /// </summary>
-               public REnvironment Parent
-               {
-                       get
-                       {
-                               SEXPREC sexp = GetInternalStructure();
-                               IntPtr parent = sexp.envsxp.enclos;
-                               return Engine.CheckNil(parent) ? null : new REnvironment(Engine, parent);
-                       }
-               }
+      /// <summary>
+      /// Creates a new environment object.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="parent">The parent environment.</param>
+      public REnvironment(REngine engine, REnvironment parent)
+         : base(engine, engine.GetFunction<Rf_NewEnvironment>()(engine.NilValue.DangerousGetHandle(), 
engine.NilValue.DangerousGetHandle(), parent.handle))
+      { }
 
-               /// <summary>
-               /// Gets a symbol defined in this environment.
-               /// </summary>
-               /// <param name="name">The name.</param>
-               /// <returns>The symbol.</returns>
-               public SymbolicExpression GetSymbol(string name)
-               {
-                       if (name == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (name == string.Empty)
-                       {
-                               throw new ArgumentException();
-                       }
+      /// <summary>
+      /// Gets the parental environment.
+      /// </summary>
+      public REnvironment Parent
+      {
+         get
+         {
+            SEXPREC sexp = GetInternalStructure();
+            IntPtr parent = sexp.envsxp.enclos;
+            return Engine.CheckNil(parent) ? null : new REnvironment(Engine, parent);
+         }
+      }
 
-                       IntPtr installedName = Engine.GetFunction<Rf_install>("Rf_install")(name);
-                       IntPtr value = Engine.GetFunction<Rf_findVar>("Rf_findVar")(installedName, handle);
-                       if (Engine.CheckUnbound(value))
-                       {
-                               return null;
-                       }
+      /// <summary>
+      /// Gets a symbol defined in this environment.
+      /// </summary>
+      /// <param name="name">The name.</param>
+      /// <returns>The symbol.</returns>
+      public SymbolicExpression GetSymbol(string name)
+      {
+         if (name == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (name == string.Empty)
+         {
+            throw new ArgumentException();
+         }
 
-                       var sexp = (SEXPREC)Marshal.PtrToStructure(value, typeof(SEXPREC));
-                       if (sexp.sxpinfo.type == SymbolicExpressionType.Promise)
-                       {
-                               value = Engine.GetFunction<Rf_eval>("Rf_eval")(value, handle);
-                       }
-                       return new SymbolicExpression(Engine, value);
-               }
+         IntPtr installedName = Engine.GetFunction<Rf_install>()(name);
+         IntPtr value = Engine.GetFunction<Rf_findVar>()(installedName, handle);
+         if (Engine.CheckUnbound(value))
+         {
+            return null;
+         }
 
-               /// <summary>
-               /// Defines a symbol in this environment.
-               /// </summary>
-               /// <param name="name">The name.</param>
-               /// <param name="expression">The symbol.</param>
-               public void SetSymbol(string name, SymbolicExpression expression)
-               {
-                       IntPtr installedName = Engine.GetFunction<Rf_install>("Rf_install")(name);
-                       Engine.GetFunction<Rf_setVar>("Rf_setVar")(installedName, 
expression.DangerousGetHandle(), handle);
-               }
+         var sexp = (SEXPREC)Marshal.PtrToStructure(value, typeof(SEXPREC));
+         if (sexp.sxpinfo.type == SymbolicExpressionType.Promise)
+         {
+            value = Engine.GetFunction<Rf_eval>()(value, handle);
+         }
+         return new SymbolicExpression(Engine, value);
+      }
 
-               /// <summary>
-               /// Gets the symbol names defined in this environment.
-               /// </summary>
-               /// <param name="all">Including special functions or not.</param>
-               /// <returns>Symbol names.</returns>
-               public string[] GetSymbolNames(bool all = false)
-               {
-                       var symbolNames = new CharacterVector(Engine, 
Engine.GetFunction<R_lsInternal>("R_lsInternal")(handle, all));
-                       int length = symbolNames.Length;
-                       var copy = new string[length];
-                       symbolNames.CopyTo(copy, length);
-                       return copy;
-               }
-       }
-}
+      /// <summary>
+      /// Defines a symbol in this environment.
+      /// </summary>
+      /// <param name="name">The name.</param>
+      /// <param name="expression">The symbol.</param>
+      public void SetSymbol(string name, SymbolicExpression expression)
+      {
+         if (name == null)
+         {
+            throw new ArgumentNullException("name");
+         }
+         if (name == string.Empty)
+         {
+            throw new ArgumentException();
+         }
+         if (expression == null)
+         {
+            expression = Engine.NilValue;
+         }
+         if (expression.Engine != this.Engine)
+         {
+            throw new ArgumentException();
+         }
+         IntPtr installedName = Engine.GetFunction<Rf_install>()(name);
+         Engine.GetFunction<Rf_setVar>()(installedName, expression.DangerousGetHandle(), handle);
+      }
+
+      /// <summary>
+      /// Gets the symbol names defined in this environment.
+      /// </summary>
+      /// <param name="all">Including special functions or not.</param>
+      /// <returns>Symbol names.</returns>
+      public string[] GetSymbolNames(bool all = false)
+      {
+         var symbolNames = new CharacterVector(Engine, Engine.GetFunction<R_lsInternal>()(handle, all));
+         int length = symbolNames.Length;
+         var copy = new string[length];
+         symbolNames.CopyTo(copy, length);
+         return copy;
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Expression.cs b/rdotnet/R.NET/Expression.cs
index f7c6536..2074e5e 100644
--- a/rdotnet/R.NET/Expression.cs
+++ b/rdotnet/R.NET/Expression.cs
@@ -1,62 +1,62 @@
-using System;
-using RDotNet.Internals;
+using RDotNet.Internals;
+using System;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// An expression object.
-       /// </summary>
-       public class Expression : SymbolicExpression
-       {
-               /// <summary>
-               /// Creates an expression object.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="pointer">The pointer to an expression.</param>
-               protected internal Expression(REngine engine, IntPtr pointer)
-                       : base(engine, pointer)
-               {}
+   /// <summary>
+   /// An expression object.
+   /// </summary>
+   public class Expression : SymbolicExpression
+   {
+      /// <summary>
+      /// Creates an expression object.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="pointer">The pointer to an expression.</param>
+      protected internal Expression(REngine engine, IntPtr pointer)
+         : base(engine, pointer)
+      { }
 
-               /// <summary>
-               /// Evaluates the expression in the specified environment.
-               /// </summary>
-               /// <param name="environment">The environment.</param>
-               /// <returns>The evaluation result.</returns>
-               public SymbolicExpression Evaluate(REnvironment environment)
-               {
-                       if (environment == null)
-                       {
-                               throw new ArgumentNullException("environment");
-                       }
-                       if (Engine != environment.Engine)
-                       {
-                               throw new ArgumentException(null, "environment");
-                       }
+      /// <summary>
+      /// Evaluates the expression in the specified environment.
+      /// </summary>
+      /// <param name="environment">The environment.</param>
+      /// <returns>The evaluation result.</returns>
+      public SymbolicExpression Evaluate(REnvironment environment)
+      {
+         if (environment == null)
+         {
+            throw new ArgumentNullException("environment");
+         }
+         if (Engine != environment.Engine)
+         {
+            throw new ArgumentException(null, "environment");
+         }
 
-                       return new SymbolicExpression(Engine, Engine.GetFunction<Rf_eval>("Rf_eval")(handle, 
environment.DangerousGetHandle()));
-               }
+         return new SymbolicExpression(Engine, Engine.GetFunction<Rf_eval>()(handle, 
environment.DangerousGetHandle()));
+      }
 
-               /// <summary>
-               /// Evaluates the expression in the specified environment.
-               /// </summary>
-               /// <param name="environment">The environment.</param>
-               /// <param name="result">The evaluation result, or <c>null</c> if the evaluation 
failed</param>
-               /// <returns><c>True</c> if the evaluation succeeded.</returns>
-               public bool TryEvaluate(REnvironment environment, out SymbolicExpression result)
-               {
-                       if (environment == null)
-                       {
-                               throw new ArgumentNullException("environment");
-                       }
-                       if (Engine != environment.Engine)
-                       {
-                               throw new ArgumentException(null, "environment");
-                       }
+      /// <summary>
+      /// Evaluates the expression in the specified environment.
+      /// </summary>
+      /// <param name="environment">The environment.</param>
+      /// <param name="result">The evaluation result, or <c>null</c> if the evaluation failed</param>
+      /// <returns><c>True</c> if the evaluation succeeded.</returns>
+      public bool TryEvaluate(REnvironment environment, out SymbolicExpression result)
+      {
+         if (environment == null)
+         {
+            throw new ArgumentNullException("environment");
+         }
+         if (Engine != environment.Engine)
+         {
+            throw new ArgumentException(null, "environment");
+         }
 
-                       bool errorOccurred;
-                       IntPtr pointer = Engine.GetFunction<R_tryEval>("R_tryEval")(handle, 
environment.DangerousGetHandle(), out errorOccurred);
-                       result = errorOccurred ? null : new SymbolicExpression(Engine, pointer);
-                       return !errorOccurred;
-               }
-       }
-}
+         bool errorOccurred;
+         IntPtr pointer = Engine.GetFunction<R_tryEval>()(handle, environment.DangerousGetHandle(), out 
errorOccurred);
+         result = errorOccurred ? null : new SymbolicExpression(Engine, pointer);
+         return !errorOccurred;
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/ExpressionVector.cs b/rdotnet/R.NET/ExpressionVector.cs
index 46079c0..5a73c0d 100644
--- a/rdotnet/R.NET/ExpressionVector.cs
+++ b/rdotnet/R.NET/ExpressionVector.cs
@@ -4,53 +4,77 @@ using System.Security.Permissions;
 
 namespace RDotNet
 {
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class ExpressionVector : Vector<Expression>
-       {
-               /// <summary>
-               /// Creates a new instance for an expression vector.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to an expression vector.</param>
-               internal ExpressionVector(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class ExpressionVector : Vector<Expression>
+   {
+      /// <summary>
+      /// Creates a new instance for an expression vector.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to an expression vector.</param>
+      internal ExpressionVector(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               public override Expression this[int index]
-               {
-                       get
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
-                                       return new Expression(Engine, pointer);
-                               }
-                       }
-                       set
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       Marshal.WriteIntPtr(DataPointer, offset, (value ?? 
Engine.NilValue).DangerousGetHandle());
-                               }
-                       }
-               }
+      public override Expression this[int index]
+      {
+         get
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               return GetValue(index);
+            }
+         }
+         set
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               SetValue(index, value);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of a pointer in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return Marshal.SizeOf(typeof(IntPtr)); }
-               }
-       }
-}
+      protected override Expression[] GetArrayFast()
+      {
+         var res = new Expression[this.Length];
+         for (int i = 0; i < res.Length; i++)
+            res[i] = GetValue(i);
+         return res;
+      }
+
+      private Expression GetValue(int index)
+      {
+         int offset = GetOffset(index);
+         IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
+         return new Expression(Engine, pointer);
+      }
+
+      private void SetValue(int index, Expression value)
+      {
+         int offset = GetOffset(index);
+         Marshal.WriteIntPtr(DataPointer, offset, (value ?? Engine.NilValue).DangerousGetHandle());
+      }
+
+      protected override void SetVectorDirect(Expression[] values)
+      {
+         for (int i = 0; i < values.Length; i++)
+            SetValue(i, values[i]);
+      }
+
+      /// <summary>
+      /// Gets the size of a pointer in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return Marshal.SizeOf(typeof(IntPtr)); }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Factor.cs b/rdotnet/R.NET/Factor.cs
new file mode 100644
index 0000000..4c9a6dc
--- /dev/null
+++ b/rdotnet/R.NET/Factor.cs
@@ -0,0 +1,108 @@
+using RDotNet.Diagnostics;
+using RDotNet.Internals;
+using System;
+using System.Diagnostics;
+using System.Linq;
+using System.Security.Permissions;
+
+namespace RDotNet
+{
+   /// <summary>
+   /// Represents factors.
+   /// </summary>
+   [DebuggerDisplay("Length = {Length}; Ordered = {IsOrdered}; RObjectType = {Type}")]
+   [DebuggerTypeProxy(typeof(FactorDebugView))]
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class Factor : IntegerVector
+   {
+      /// <summary>
+      /// Creates a new instance for a factor vector.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a factor vector.</param>
+      protected internal Factor(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
+
+      /// <summary>
+      /// Gets the levels of the factor.
+      /// </summary>
+      public string[] GetLevels()
+      {
+         return GetAttribute(Engine.GetPredefinedSymbol("R_LevelsSymbol")).AsCharacter().ToArray();
+      }
+
+      /// <summary>
+      /// Gets the levels of the factor.
+      /// </summary>
+      /// <returns>Factors.</returns>
+      public string[] GetFactors()
+      {
+         var levels = GetLevels();
+         return this.Select(value => levels[value - 1]).ToArray();
+      }
+
+      /// <summary>
+      /// Gets the levels of the factor as the specific enum type.
+      /// </summary>
+      /// <remarks>
+      /// Be careful to the underlying values.
+      /// You had better set <c>levels</c> and <c>labels</c> argument explicitly.
+      /// </remarks>
+      /// <example>
+      /// <code>
+      /// public enum Group
+      /// {
+      ///    Treatment = 1,
+      ///    Control = 2
+      /// }
+      ///
+      /// // You must set 'levels' and 'labels' arguments explicitly in this case
+      /// // because levels of factor is sorted by default and the names in R and in enum names are 
different.
+      /// var code = @"factor(
+      ///    c(rep('T', 5), rep('C', 5), rep('T', 4), rep('C', 5)),
+      ///    levels=c('T', 'C'),
+      ///    labels=c('Treatment', 'Control')
+      /// )";
+      /// var factor = engine.Evaluate(code).AsFactor();
+      /// foreach (Group g in factor.GetFactors&lt;Group&gt;())
+      /// {
+      ///    Console.Write("{0} ", g);
+      /// }
+      /// </code>
+      /// </example>
+      /// <typeparam name="TEnum">The type of enum.</typeparam>
+      /// <param name="ignoreCase">The value indicating case-sensitivity.</param>
+      /// <returns>Factors.</returns>
+      public TEnum[] GetFactors<TEnum>(bool ignoreCase = false)
+         where TEnum : struct
+      {
+         Type enumType = typeof(TEnum);
+         if (!enumType.IsEnum)
+         {
+            throw new ArgumentException("Only enum type is supported");
+         }
+         // The exact underlying type of factor is Int32.
+         // But probably other types are available.
+         //if (Enum.GetUnderlyingType(enumType) != typeof(Int32))
+         //{
+         //   throw new ArgumentException("Only Int32 is supported");
+         //}
+         var levels = GetLevels();
+         return this.Select(value => levels[value - 1])
+            .Select(value => (TEnum)Enum.Parse(enumType, value, ignoreCase))
+            .ToArray();
+      }
+
+      /// <summary>
+      /// Gets the value which indicating the factor is ordered or not.
+      /// </summary>
+      public bool IsOrdered
+      {
+         get
+         {
+            return Engine.GetFunction<Rf_isOrdered>()(this.handle);
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Function.cs b/rdotnet/R.NET/Function.cs
index fa4c482..9f3ac61 100644
--- a/rdotnet/R.NET/Function.cs
+++ b/rdotnet/R.NET/Function.cs
@@ -2,25 +2,25 @@
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A function is one of closure, built-in function, or special function.
-       /// </summary>
-       public abstract class Function : SymbolicExpression
-       {
-               /// <summary>
-               /// Creates a function object.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="pointer">The pointer.</param>
-               protected Function(REngine engine, IntPtr pointer)
-                       : base(engine, pointer)
-               {}
+   /// <summary>
+   /// A function is one of closure, built-in function, or special function.
+   /// </summary>
+   public abstract class Function : SymbolicExpression
+   {
+      /// <summary>
+      /// Creates a function object.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="pointer">The pointer.</param>
+      protected Function(REngine engine, IntPtr pointer)
+         : base(engine, pointer)
+      { }
 
-               /// <summary>
-               /// Executes the function.
-               /// </summary>
-               /// <param name="args">The arguments.</param>
-               /// <returns>The return value.</returns>
-               public abstract SymbolicExpression Invoke(SymbolicExpression[] args);
-       }
-}
+      /// <summary>
+      /// Executes the function.
+      /// </summary>
+      /// <param name="args">The arguments.</param>
+      /// <returns>The return value.</returns>
+      public abstract SymbolicExpression Invoke(SymbolicExpression[] args);
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/GenericVector.cs b/rdotnet/R.NET/GenericVector.cs
index 411d436..bbd05c0 100644
--- a/rdotnet/R.NET/GenericVector.cs
+++ b/rdotnet/R.NET/GenericVector.cs
@@ -1,97 +1,120 @@
-using System;
+using RDotNet.Dynamic;
+using RDotNet.Internals;
+using System;
 using System.Collections.Generic;
 using System.Dynamic;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Dynamic;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A generic list. This is also known as list in R.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class GenericVector : Vector<SymbolicExpression>
-       {
-               /// <summary>
-               /// Creates a new empty GenericVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="length">The length.</param>
-               public GenericVector(REngine engine, int length)
-                       : base(engine, 
engine.GetFunction<Rf_allocVector>("Rf_allocVector")(SymbolicExpressionType.List, length))
-               {}
+   /// <summary>
+   /// A generic list. This is also known as list in R.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class GenericVector : Vector<SymbolicExpression>
+   {
+      /// <summary>
+      /// Creates a new empty GenericVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="length">The length.</param>
+      public GenericVector(REngine engine, int length)
+         : base(engine, engine.GetFunction<Rf_allocVector>()(SymbolicExpressionType.List, length))
+      { }
+
+      /// <summary>
+      /// Creates a new GenericVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="list">The values.</param>
+      public GenericVector(REngine engine, IEnumerable<SymbolicExpression> list)
+         : base(engine, SymbolicExpressionType.List, list)
+      { }
+
+      /// <summary>
+      /// Creates a new instance for a list.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a list.</param>
+      protected internal GenericVector(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
+
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="index">The zero-based index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override SymbolicExpression this[int index]
+      {
+         get
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               return GetValue(index);
+            }
+         }
+         set
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               SetValue(index, value);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Creates a new GenericVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="list">The values.</param>
-               public GenericVector(REngine engine, IEnumerable<SymbolicExpression> list)
-                       : base(engine, SymbolicExpressionType.List, list)
-               {}
+      private SymbolicExpression GetValue(int index)
+      {
+         int offset = GetOffset(index);
+         IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
+         return new SymbolicExpression(Engine, pointer);
+      }
 
-               /// <summary>
-               /// Creates a new instance for a list.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a list.</param>
-               protected internal GenericVector(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      private void SetValue(int index, SymbolicExpression value)
+      {
+         int offset = GetOffset(index);
+         Marshal.WriteIntPtr(DataPointer, offset, (value ?? Engine.NilValue).DangerousGetHandle());
+      }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="index">The zero-based index of the element to get or set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override SymbolicExpression this[int index]
-               {
-                       get
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
-                                       return new SymbolicExpression(Engine, pointer);
-                               }
-                       }
-                       set
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       Marshal.WriteIntPtr(DataPointer, offset, (value ?? 
Engine.NilValue).DangerousGetHandle());
-                               }
-                       }
-               }
+      protected override SymbolicExpression[] GetArrayFast()
+      {
+         var res = new SymbolicExpression[this.Length];
+         for (int i = 0; i < res.Length; i++)
+            res[i] = GetValue(i);
+         return res;
+      }
+      protected override void SetVectorDirect(SymbolicExpression[] values)
+      {
+         for (int i = 0; i < values.Length; i++)
+            SetValue(i, values[i]);
+      }
 
-               protected override int DataSize
-               {
-                       get { return Marshal.SizeOf(typeof(IntPtr)); }
-               }
+      protected override int DataSize
+      {
+         get { return Marshal.SizeOf(typeof(IntPtr)); }
+      }
 
-               /// <summary>
-               /// Converts into a <see cref="RDotNet.Pairlist"/>.
-               /// </summary>
-               /// <returns>The pairlist.</returns>
-               public Pairlist ToPairlist()
-               {
-                       return new Pairlist(Engine, 
Engine.GetFunction<Rf_VectorToPairList>("Rf_VectorToPairList")(handle));
-               }
+      /// <summary>
+      /// Converts into a <see cref="RDotNet.Pairlist"/>.
+      /// </summary>
+      /// <returns>The pairlist.</returns>
+      public Pairlist ToPairlist()
+      {
+         return new Pairlist(Engine, Engine.GetFunction<Rf_VectorToPairList>()(handle));
+      }
 
-               public override DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
-               {
-                       return new ListDynamicMeta(parameter, this);
-               }
-       }
-}
+      public override DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
+      {
+         return new ListDynamicMeta(parameter, this);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/IntegerMatrix.cs b/rdotnet/R.NET/IntegerMatrix.cs
index 648be64..e519003 100644
--- a/rdotnet/R.NET/IntegerMatrix.cs
+++ b/rdotnet/R.NET/IntegerMatrix.cs
@@ -1,97 +1,110 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A matrix of integers from <c>-2^31 + 1</c> to <c>2^31 - 1</c>.
-       /// </summary>
-       /// <remarks>
-       /// The minimum value of IntegerVector is different from that of System.Int32 in .NET Framework.
-       /// </remarks>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class IntegerMatrix : Matrix<int>
-       {
-               /// <summary>
-               /// Creates a new empty IntegerMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <seealso cref="REngineExtension.CreateIntegerMatrix(REngine, int, int)"/>
-               public IntegerMatrix(REngine engine, int rowCount, int columnCount)
-                       : base(engine, SymbolicExpressionType.IntegerVector, rowCount, columnCount)
-               {}
+   /// <summary>
+   /// A matrix of integers from <c>-2^31 + 1</c> to <c>2^31 - 1</c>.
+   /// </summary>
+   /// <remarks>
+   /// The minimum value of IntegerVector is different from that of System.Int32 in .NET Framework.
+   /// </remarks>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class IntegerMatrix : Matrix<int>
+   {
+      /// <summary>
+      /// Creates a new empty IntegerMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <seealso cref="REngineExtension.CreateIntegerMatrix(REngine, int, int)"/>
+      public IntegerMatrix(REngine engine, int rowCount, int columnCount)
+         : base(engine, SymbolicExpressionType.IntegerVector, rowCount, columnCount)
+      { }
 
-               /// <summary>
-               /// Creates a new IntegerMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="matrix">The values.</param>
-               /// <seealso cref="REngineExtension.CreateIntegerMatrix(REngine, int[,])"/>
-               public IntegerMatrix(REngine engine, int[,] matrix)
-                       : base(engine, SymbolicExpressionType.IntegerVector, matrix)
-               {}
+      /// <summary>
+      /// Creates a new IntegerMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="matrix">The values.</param>
+      /// <seealso cref="REngineExtension.CreateIntegerMatrix(REngine, int[,])"/>
+      public IntegerMatrix(REngine engine, int[,] matrix)
+         : base(engine, SymbolicExpressionType.IntegerVector, matrix)
+      { }
 
-               /// <summary>
-               /// Creates a new instance for an integer matrix.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to an integer matrix.</param>
-               protected internal IntegerMatrix(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for an integer matrix.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to an integer matrix.</param>
+      protected internal IntegerMatrix(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
-               /// <param name="columnIndex">The zero-based columnIndex index of the element to get or 
set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override int this[int rowIndex, int columnIndex]
-               {
-                       get
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       return Marshal.ReadInt32(DataPointer, offset);
-                               }
-                       }
-                       set
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       Marshal.WriteInt32(DataPointer, offset, value);
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+      /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override int this[int rowIndex, int columnIndex]
+      {
+         get
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(rowIndex, columnIndex);
+               return Marshal.ReadInt32(DataPointer, offset);
+            }
+         }
+         set
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(rowIndex, columnIndex);
+               Marshal.WriteInt32(DataPointer, offset, value);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of an integer in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return sizeof(int); }
-               }
-       }
-}
+      protected override void InitMatrixFastDirect(int[,] matrix)
+      {
+         var values = Utility.ArrayConvertOneDim(matrix);
+         Marshal.Copy(values, 0, DataPointer, values.Length);
+      }
+
+      protected override int[,] GetArrayFast()
+      {
+         var values = new int[this.ItemCount];
+         Marshal.Copy(DataPointer, values, 0, values.Length);
+         return Utility.ArrayConvertAllTwoDim(values, this.RowCount, this.ColumnCount);
+      }
+
+      /// <summary>
+      /// Gets the size of an integer in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return sizeof(int); }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/IntegerVector.cs b/rdotnet/R.NET/IntegerVector.cs
index 0f225db..603dff1 100644
--- a/rdotnet/R.NET/IntegerVector.cs
+++ b/rdotnet/R.NET/IntegerVector.cs
@@ -1,131 +1,143 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Collections.Generic;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A collection of integers from <c>-2^31 + 1</c> to <c>2^31 - 1</c>.
-       /// </summary>
-       /// <remarks>
-       /// The minimum value of IntegerVector is different from that of System.Int32 in .NET Framework.
-       /// </remarks>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class IntegerVector : Vector<int>
-       {
-               /// <summary>
-               /// Creates a new empty IntegerVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="length">The length.</param>
-               /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, int)"/>
-               public IntegerVector(REngine engine, int length)
-                       : base(engine, SymbolicExpressionType.IntegerVector, length)
-               {}
+   /// <summary>
+   /// A collection of integers from <c>-2^31 + 1</c> to <c>2^31 - 1</c>.
+   /// </summary>
+   /// <remarks>
+   /// The minimum value of IntegerVector is different from that of System.Int32 in .NET Framework.
+   /// </remarks>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class IntegerVector : Vector<int>
+   {
+      /// <summary>
+      /// Creates a new empty IntegerVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="length">The length.</param>
+      /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, int)"/>
+      public IntegerVector(REngine engine, int length)
+         : base(engine, SymbolicExpressionType.IntegerVector, length)
+      { }
 
-               /// <summary>
-               /// Creates a new IntegerVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="vector">The values.</param>
-               /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, IEnumerable{int})"/>
-               public IntegerVector(REngine engine, IEnumerable<int> vector)
-                       : base(engine, SymbolicExpressionType.IntegerVector, vector)
-               {}
+      /// <summary>
+      /// Creates a new IntegerVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="vector">The values.</param>
+      /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, IEnumerable{int})"/>
+      public IntegerVector(REngine engine, IEnumerable<int> vector)
+         : base(engine, SymbolicExpressionType.IntegerVector, vector)
+      { }
 
-               /// <summary>
-               /// Creates a new IntegerVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="vector">The values.</param>
-               /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, int[])"/>
-               public IntegerVector(REngine engine, int[] vector)
-                       : base(engine, SymbolicExpressionType.IntegerVector, vector.Length)
-               {
-                       Marshal.Copy(vector, 0, DataPointer, vector.Length);
-               }
+      /// <summary>
+      /// Creates a new IntegerVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="vector">The values.</param>
+      /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, int[])"/>
+      public IntegerVector(REngine engine, int[] vector)
+         : base(engine, SymbolicExpressionType.IntegerVector, vector.Length)
+      {
+         Marshal.Copy(vector, 0, DataPointer, vector.Length);
+      }
 
-               /// <summary>
-               /// Creates a new instance for an integer vector.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to an integer vector.</param>
-               protected internal IntegerVector(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for an integer vector.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to an integer vector.</param>
+      protected internal IntegerVector(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="index">The zero-based index of the element to get or set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override int this[int index]
-               {
-                       get
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       return Marshal.ReadInt32(DataPointer, offset);
-                               }
-                       }
-                       set
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       Marshal.WriteInt32(DataPointer, offset, value);
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="index">The zero-based index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override int this[int index]
+      {
+         get
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(index);
+               return Marshal.ReadInt32(DataPointer, offset);
+            }
+         }
+         set
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(index);
+               Marshal.WriteInt32(DataPointer, offset, value);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of an integer in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return sizeof(int); }
-               }
+      protected override int[] GetArrayFast()
+      {
+         var res = new int[this.Length];
+         Marshal.Copy(DataPointer, res, 0, res.Length);
+         return res;
+      }
 
-               /// <summary>
-               /// Copies the elements to the specified array.
-               /// </summary>
-               /// <param name="destination">The destination array.</param>
-               /// <param name="length">The length to copy.</param>
-               /// <param name="sourceIndex">The first index of the vector.</param>
-               /// <param name="destinationIndex">The first index of the destination array.</param>
-               public new void CopyTo(int[] destination, int length, int sourceIndex = 0, int 
destinationIndex = 0)
-               {
-                       if (destination == null)
-                       {
-                               throw new ArgumentNullException("destination");
-                       }
-                       if (length < 0)
-                       {
-                               throw new IndexOutOfRangeException("length");
-                       }
-                       if (sourceIndex < 0 || Length < sourceIndex + length)
-                       {
-                               throw new IndexOutOfRangeException("sourceIndex");
-                       }
-                       if (destinationIndex < 0 || destination.Length < destinationIndex + length)
-                       {
-                               throw new IndexOutOfRangeException("destinationIndex");
-                       }
+      protected override void SetVectorDirect(int[] values)
+      {
+         Marshal.Copy(values, 0, DataPointer, values.Length);
+      }
 
-                       int offset = GetOffset(sourceIndex);
-                       IntPtr pointer = IntPtr.Add(DataPointer, offset);
-                       Marshal.Copy(pointer, destination, destinationIndex, length);
-               }
-       }
-}
+      /// <summary>
+      /// Gets the size of an integer in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return sizeof(int); }
+      }
+
+      /// <summary>
+      /// Copies the elements to the specified array.
+      /// </summary>
+      /// <param name="destination">The destination array.</param>
+      /// <param name="length">The length to copy.</param>
+      /// <param name="sourceIndex">The first index of the vector.</param>
+      /// <param name="destinationIndex">The first index of the destination array.</param>
+      public new void CopyTo(int[] destination, int length, int sourceIndex = 0, int destinationIndex = 0)
+      {
+         if (destination == null)
+         {
+            throw new ArgumentNullException("destination");
+         }
+         if (length < 0)
+         {
+            throw new IndexOutOfRangeException("length");
+         }
+         if (sourceIndex < 0 || Length < sourceIndex + length)
+         {
+            throw new IndexOutOfRangeException("sourceIndex");
+         }
+         if (destinationIndex < 0 || destination.Length < destinationIndex + length)
+         {
+            throw new IndexOutOfRangeException("destinationIndex");
+         }
+
+         int offset = GetOffset(sourceIndex);
+         IntPtr pointer = IntPtr.Add(DataPointer, offset);
+         Marshal.Copy(pointer, destination, destinationIndex, length);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/InternalString.cs b/rdotnet/R.NET/InternalString.cs
index eb984b2..7b1de9d 100644
--- a/rdotnet/R.NET/InternalString.cs
+++ b/rdotnet/R.NET/InternalString.cs
@@ -1,48 +1,71 @@
-using System;
+using RDotNet.Internals;
+using System;
+using System.Diagnostics;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// Internal string.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class InternalString : SymbolicExpression
-       {
-               /// <summary>
-               /// Creates a new instance.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="pointer">The pointer to a string.</param>
-               public InternalString(REngine engine, IntPtr pointer)
-                       : base(engine, pointer)
-               {}
+   /// <summary>
+   /// Internal string.
+   /// </summary>
+   [DebuggerDisplay("Content = {ToString()}; RObjectType = {Type}")]
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class InternalString : SymbolicExpression
+   {
+      /// <summary>
+      /// Creates a new instance.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="pointer">The pointer to a string.</param>
+      public InternalString(REngine engine, IntPtr pointer)
+         : base(engine, pointer)
+      { }
 
-               /// <summary>
-               /// Creates a new instance.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="s">The string</param>
-               public InternalString(REngine engine, string s)
-                       : base(engine, engine.GetFunction<Rf_mkChar>("Rf_mkChar")(s))
-               {}
+      /// <summary>
+      /// Creates a new instance.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="s">The string</param>
+      public InternalString(REngine engine, string s)
+         : base(engine, engine.GetFunction<Rf_mkChar>()(s))
+      { }
 
-               /// <summary>
-               /// Converts to the string into .NET Framework string.
-               /// </summary>
-               /// <param name="s">The R string.</param>
-               /// <returns>The .NET Framework string.</returns>
-               public static implicit operator string(InternalString s)
-               {
-                       return s.ToString();
-               }
+      /// <summary>
+      /// Converts to the string into .NET Framework string.
+      /// </summary>
+      /// <param name="s">The R string.</param>
+      /// <returns>The .NET Framework string.</returns>
+      public static implicit operator string(InternalString s)
+      {
+         return s.ToString();
+      }
 
-               public override string ToString()
-               {
-                       IntPtr pointer = IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC)));
-                       return Marshal.PtrToStringAnsi(pointer);
-               }
-       }
-}
+      /// <summary>
+      /// Gets the string representation of the string object.
+      /// This returns <c>"NA"</c> if the value is <c>NA</c>, whereas <see cref="GetInternalValue()"/> 
returns <c>null</c>.
+      /// </summary>
+      /// <returns>The string representation.</returns>
+      /// <seealso cref="GetInternalValue()"/>
+      public override string ToString()
+      {
+         IntPtr pointer = IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC)));
+         return Marshal.PtrToStringAnsi(pointer);
+      }
+
+      /// <summary>
+      /// Gets the string representation of the string object.
+      /// This returns <c>null</c> if the value is <c>NA</c>, whereas <see cref="ToString()"/> returns 
<c>"NA"</c>.
+      /// </summary>
+      /// <returns>The string representation.</returns>
+      public string GetInternalValue()
+      {
+         if (handle == Engine.GetPredefinedSymbol("R_NaString").DangerousGetHandle())
+         {
+            return null;
+         }
+         IntPtr pointer = IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC)));
+         return Marshal.PtrToStringAnsi(pointer);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/BusyType.cs b/rdotnet/R.NET/Internals/BusyType.cs
index 05fd721..5adb345 100644
--- a/rdotnet/R.NET/Internals/BusyType.cs
+++ b/rdotnet/R.NET/Internals/BusyType.cs
@@ -1,18 +1,18 @@
 namespace RDotNet.Internals
 {
-       /// <summary>
-       /// Type of R's working.
-       /// </summary>
-       public enum BusyType
-       {
-               /// <summary>
-               /// Terminated states of business.
-               /// </summary>
-               None = 0,
+   /// <summary>
+   /// Type of R's working.
+   /// </summary>
+   public enum BusyType
+   {
+      /// <summary>
+      /// Terminated states of business.
+      /// </summary>
+      None = 0,
 
-               /// <summary>
-               /// Embarks on an extended computation
-               /// </summary>
-               ExtendedComputation = 1,
-       }
-}
+      /// <summary>
+      /// Embarks on an extended computation
+      /// </summary>
+      ExtendedComputation = 1,
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/ConsoleOutputType.cs b/rdotnet/R.NET/Internals/ConsoleOutputType.cs
index 884515a..c61c7ab 100644
--- a/rdotnet/R.NET/Internals/ConsoleOutputType.cs
+++ b/rdotnet/R.NET/Internals/ConsoleOutputType.cs
@@ -1,13 +1,13 @@
 namespace RDotNet.Internals
 {
-       /// <summary>
-       /// Specifies console to output.
-       /// </summary>
-       public enum ConsoleOutputType
-       {
-               /// <summary>
-               /// The default value.
-               /// </summary>
-               None = 0,
-       }
-}
+   /// <summary>
+   /// Specifies console to output.
+   /// </summary>
+   public enum ConsoleOutputType
+   {
+      /// <summary>
+      /// The default value.
+      /// </summary>
+      None = 0,
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Delegates.cs b/rdotnet/R.NET/Internals/Delegates.cs
index 44c0a64..c4a4c0d 100644
--- a/rdotnet/R.NET/Internals/Delegates.cs
+++ b/rdotnet/R.NET/Internals/Delegates.cs
@@ -5,132 +5,159 @@ using WindowsRStart = RDotNet.Internals.Windows.RStart;
 
 namespace RDotNet.Internals
 {
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void R_setStartTime();
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void R_setStartTime();
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate int Rf_initialize_R(int ac, string[] argv);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate int Rf_initialize_R(int ac, string[] argv);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void R_SetParams_Unix(ref UnixRStart start);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void R_SetParams_Unix(ref UnixRStart start);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void R_SetParams_Windows(ref WindowsRStart start);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void R_SetParams_Windows(ref WindowsRStart start);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void R_set_command_line_arguments(int argc, string[] argv);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void R_set_command_line_arguments(int argc, string[] argv);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void setup_Rmainloop();
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void setup_Rmainloop();
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate int Rf_initEmbeddedR(int argc, string[] argv);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate int Rf_initEmbeddedR(int argc, string[] argv);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void Rf_endEmbeddedR(int fatal);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void Rf_endEmbeddedR(int fatal);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_protect(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void R_RunExitFinalizers();
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void Rf_unprotect(int count);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void Rf_CleanEd();
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void Rf_unprotect_ptr(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void R_CleanTempDir();
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_install(string s);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_protect(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_mkString(string s);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void R_PreserveObject(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_mkChar(string s);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void R_ReleaseObject(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_allocVector(SymbolicExpressionType type, int length);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void Rf_unprotect(int count);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_coerceVector(IntPtr sexp, SymbolicExpressionType type);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void Rf_unprotect_ptr(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate bool Rf_isVector(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_install(string s);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate int Rf_length(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_mkString(string s);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_allocMatrix(SymbolicExpressionType type, int rowCount, int columnCount);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_mkChar(string s);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate bool Rf_isMatrix(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_allocVector(SymbolicExpressionType type, int length);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate int Rf_nrows(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_coerceVector(IntPtr sexp, SymbolicExpressionType type);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate int Rf_ncols(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isVector(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_allocList(int length);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isFrame(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate bool Rf_isList(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate int Rf_length(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_eval(IntPtr statement, IntPtr environment);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_allocMatrix(SymbolicExpressionType type, int rowCount, int columnCount);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr R_tryEval(IntPtr statement, IntPtr environment, out bool errorOccurred);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isMatrix(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr R_ParseVector(IntPtr statement, int statementCount, out ParseStatus status, 
IntPtr _);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate int Rf_nrows(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_findVar(IntPtr name, IntPtr environment);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate int Rf_ncols(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void Rf_setVar(IntPtr name, IntPtr value, IntPtr environment);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_allocList(int length);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_getAttrib(IntPtr sexp, IntPtr name);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isList(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_setAttrib(IntPtr sexp, IntPtr name, IntPtr value);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_eval(IntPtr statement, IntPtr environment);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate bool Rf_isEnvironment(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr R_tryEval(IntPtr statement, IntPtr environment, out bool errorOccurred);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate bool Rf_isExpression(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr R_ParseVector(IntPtr statement, int statementCount, out ParseStatus status, 
IntPtr _);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate bool Rf_isSymbol(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_findVar(IntPtr name, IntPtr environment);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate bool Rf_isLanguage(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void Rf_setVar(IntPtr name, IntPtr value, IntPtr environment);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate bool Rf_isFunction(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_getAttrib(IntPtr sexp, IntPtr name);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr R_lsInternal(IntPtr environment, bool all);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_setAttrib(IntPtr sexp, IntPtr name, IntPtr value);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_applyClosure(IntPtr call, IntPtr value, IntPtr arguments, IntPtr 
environment, IntPtr suppliedEnvironment);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isEnvironment(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_VectorToPairList(IntPtr sexp);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isExpression(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_allocSExp(SymbolicExpressionType type);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isSymbol(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_cons(IntPtr sexp, IntPtr next);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isLanguage(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr Rf_lcons(IntPtr sexp, IntPtr next);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isFunction(IntPtr sexp);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void R_gc();
-}
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isFactor(IntPtr sexp);
+
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate bool Rf_isOrdered(IntPtr sexp);
+
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr R_lsInternal(IntPtr environment, bool all);
+
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_applyClosure(IntPtr call, IntPtr value, IntPtr arguments, IntPtr environment, 
IntPtr suppliedEnvironment);
+
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_VectorToPairList(IntPtr sexp);
+
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_allocSExp(SymbolicExpressionType type);
+
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_NewEnvironment(IntPtr names, IntPtr values, IntPtr parent);
+
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_cons(IntPtr sexp, IntPtr next);
+
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr Rf_lcons(IntPtr sexp, IntPtr next);
+
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void R_gc();
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/OutputMode.cs b/rdotnet/R.NET/Internals/OutputMode.cs
index 1365a57..1794aec 100644
--- a/rdotnet/R.NET/Internals/OutputMode.cs
+++ b/rdotnet/R.NET/Internals/OutputMode.cs
@@ -2,30 +2,30 @@ using System;
 
 namespace RDotNet.Internals
 {
-       /// <summary>
-       /// Specifies output mode.
-       /// </summary>
-       [Flags]
-       public enum OutputMode
-       {
-               /// <summary>
-               /// No option.
-               /// </summary>
-               None = 0x0,
+   /// <summary>
+   /// Specifies output mode.
+   /// </summary>
+   [Flags]
+   public enum OutputMode
+   {
+      /// <summary>
+      /// No option.
+      /// </summary>
+      None = 0x0,
 
-               /// <summary>
-               /// Quiet mode.
-               /// </summary>
-               Quiet = 0x1,
+      /// <summary>
+      /// Quiet mode.
+      /// </summary>
+      Quiet = 0x1,
 
-               /// <summary>
-               /// Slave mode.
-               /// </summary>
-               Slave = 0x2,
+      /// <summary>
+      /// Slave mode.
+      /// </summary>
+      Slave = 0x2,
 
-               /// <summary>
-               /// Verbose mode.
-               /// </summary>
-               Verbose = 0x4,
-       }
-}
+      /// <summary>
+      /// Verbose mode.
+      /// </summary>
+      Verbose = 0x4,
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/ParseStatus.cs b/rdotnet/R.NET/Internals/ParseStatus.cs
index 84fb3ae..0e321f8 100644
--- a/rdotnet/R.NET/Internals/ParseStatus.cs
+++ b/rdotnet/R.NET/Internals/ParseStatus.cs
@@ -1,46 +1,46 @@
 namespace RDotNet.Internals
 {
-       /// <summary>
-       /// Parsing status enumeration.
-       /// </summary>
-       public enum ParseStatus
-       {
-               /// <summary>
-               /// The default value.
-               /// </summary>
-               Null,
+   /// <summary>
+   /// Parsing status enumeration.
+   /// </summary>
+   public enum ParseStatus
+   {
+      /// <summary>
+      /// The default value.
+      /// </summary>
+      Null,
 
-               /// <summary>
-               /// No error.
-               /// </summary>
-               OK,
+      /// <summary>
+      /// No error.
+      /// </summary>
+      OK,
 
-               /// <summary>
-               /// Statement is incomplete.
-               /// </summary>
-               Incomplete,
+      /// <summary>
+      /// Statement is incomplete.
+      /// </summary>
+      Incomplete,
 
-               /// <summary>
-               /// Error occurred.
-               /// </summary>
-               Error,
+      /// <summary>
+      /// Error occurred.
+      /// </summary>
+      Error,
 
-               /// <summary>
-               /// EOF.
-               /// </summary>
-               EOF,
+      /// <summary>
+      /// EOF.
+      /// </summary>
+      EOF,
 
-               //#region Original Definitions
-               //[Obsolete("Use ParseStatus.Null instead.")]
-               //PARSE_NULL = Null,
-               //[Obsolete("Use ParseStatus.OK instead.")]
-               //PARSE_OK = OK,
-               //[Obsolete("Use ParseStatus.Incomplete instead.")]
-               //PARSE_INCOMPLETE = Incomplete,
-               //[Obsolete("Use ParseStatus.Error instead.")]
-               //PARSE_ERROR = Error,
-               //[Obsolete("Use ParseStatus.EOF instead.")]
-               //PARSE_EOF = EOF,
-               //#endregion
-       }
-}
+      //#region Original Definitions
+      //[Obsolete("Use ParseStatus.Null instead.")]
+      //PARSE_NULL = Null,
+      //[Obsolete("Use ParseStatus.OK instead.")]
+      //PARSE_OK = OK,
+      //[Obsolete("Use ParseStatus.Incomplete instead.")]
+      //PARSE_INCOMPLETE = Incomplete,
+      //[Obsolete("Use ParseStatus.Error instead.")]
+      //PARSE_ERROR = Error,
+      //[Obsolete("Use ParseStatus.EOF instead.")]
+      //PARSE_EOF = EOF,
+      //#endregion
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/SEXPREC.cs b/rdotnet/R.NET/Internals/SEXPREC.cs
index 70a2ca6..cddd948 100644
--- a/rdotnet/R.NET/Internals/SEXPREC.cs
+++ b/rdotnet/R.NET/Internals/SEXPREC.cs
@@ -3,135 +3,135 @@ using System.Runtime.InteropServices;
 
 namespace RDotNet.Internals
 {
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct SEXPREC
-       {
-               private SEXPREC_HEADER header;
-               private u u;
-
-               public sxpinfo sxpinfo
-               {
-                       get { return this.header.sxpinfo; }
-               }
-
-               public IntPtr attrib
-               {
-                       get { return this.header.attrib; }
-               }
-
-               public IntPtr gengc_next_node
-               {
-                       get { return this.header.gengc_next_node; }
-               }
-
-               public IntPtr gengc_prev_node
-               {
-                       get { return this.header.gengc_prev_node; }
-               }
-
-               internal primsxp primsxp
-               {
-                       get { return this.u.primsxp; }
-               }
-
-               internal symsxp symsxp
-               {
-                       get { return this.u.symsxp; }
-               }
-
-               internal listsxp listsxp
-               {
-                       get { return this.u.listsxp; }
-               }
-
-               internal envsxp envsxp
-               {
-                       get { return this.u.envsxp; }
-               }
-
-               internal closxp closxp
-               {
-                       get { return this.u.closxp; }
-               }
-
-               internal promsxp promsxp
-               {
-                       get { return this.u.promsxp; }
-               }
-       }
-
-       [StructLayout(LayoutKind.Explicit)]
-       internal struct u
-       {
-               [FieldOffset(0)]
-               internal primsxp primsxp;
-
-               [FieldOffset(0)]
-               internal symsxp symsxp;
-
-               [FieldOffset(0)]
-               internal listsxp listsxp;
-
-               [FieldOffset(0)]
-               internal envsxp envsxp;
-
-               [FieldOffset(0)]
-               internal closxp closxp;
-
-               [FieldOffset(0)]
-               internal promsxp promsxp;
-       }
-
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct vecsxp
-       {
-               public int length;
-               public int truelength;
-       }
-
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct primsxp
-       {
-               public int offset;
-       }
-
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct symsxp
-       {
-               public IntPtr pname;
-               public IntPtr value;
-               public IntPtr @internal;
-       }
-
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct listsxp
-       {
-               public IntPtr carval;
-               public IntPtr cdrval;
-               public IntPtr tagval;
-       }
-
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct envsxp
-       {
-               public IntPtr frame;
-               public IntPtr enclos;
-               public IntPtr hashtab;
-       }
-
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct closxp
-       {
-               public IntPtr formals;
-               public IntPtr body;
-               public IntPtr env;
-       }
-
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct promsxp
-       {
-               public IntPtr value;
-               public IntPtr expr;
-               public IntPtr env;
-       }
-}
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct SEXPREC
+   {
+      private SEXPREC_HEADER header;
+      private u u;
+
+      public sxpinfo sxpinfo
+      {
+         get { return this.header.sxpinfo; }
+      }
+
+      public IntPtr attrib
+      {
+         get { return this.header.attrib; }
+      }
+
+      public IntPtr gengc_next_node
+      {
+         get { return this.header.gengc_next_node; }
+      }
+
+      public IntPtr gengc_prev_node
+      {
+         get { return this.header.gengc_prev_node; }
+      }
+
+      internal primsxp primsxp
+      {
+         get { return this.u.primsxp; }
+      }
+
+      internal symsxp symsxp
+      {
+         get { return this.u.symsxp; }
+      }
+
+      internal listsxp listsxp
+      {
+         get { return this.u.listsxp; }
+      }
+
+      internal envsxp envsxp
+      {
+         get { return this.u.envsxp; }
+      }
+
+      internal closxp closxp
+      {
+         get { return this.u.closxp; }
+      }
+
+      internal promsxp promsxp
+      {
+         get { return this.u.promsxp; }
+      }
+   }
+
+   [StructLayout(LayoutKind.Explicit)]
+   internal struct u
+   {
+      [FieldOffset(0)]
+      internal primsxp primsxp;
+
+      [FieldOffset(0)]
+      internal symsxp symsxp;
+
+      [FieldOffset(0)]
+      internal listsxp listsxp;
+
+      [FieldOffset(0)]
+      internal envsxp envsxp;
+
+      [FieldOffset(0)]
+      internal closxp closxp;
+
+      [FieldOffset(0)]
+      internal promsxp promsxp;
+   }
+
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct vecsxp
+   {
+      public int length;
+      public int truelength;
+   }
+
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct primsxp
+   {
+      public int offset;
+   }
+
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct symsxp
+   {
+      public IntPtr pname;
+      public IntPtr value;
+      public IntPtr @internal;
+   }
+
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct listsxp
+   {
+      public IntPtr carval;
+      public IntPtr cdrval;
+      public IntPtr tagval;
+   }
+
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct envsxp
+   {
+      public IntPtr frame;
+      public IntPtr enclos;
+      public IntPtr hashtab;
+   }
+
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct closxp
+   {
+      public IntPtr formals;
+      public IntPtr body;
+      public IntPtr env;
+   }
+
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct promsxp
+   {
+      public IntPtr value;
+      public IntPtr expr;
+      public IntPtr env;
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/SEXPREC_HEADER.cs b/rdotnet/R.NET/Internals/SEXPREC_HEADER.cs
index 997e5e9..00c56f6 100644
--- a/rdotnet/R.NET/Internals/SEXPREC_HEADER.cs
+++ b/rdotnet/R.NET/Internals/SEXPREC_HEADER.cs
@@ -3,12 +3,12 @@ using System.Runtime.InteropServices;
 
 namespace RDotNet.Internals
 {
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct SEXPREC_HEADER
-       {
-               public sxpinfo sxpinfo;
-               public IntPtr attrib;
-               public IntPtr gengc_next_node;
-               public IntPtr gengc_prev_node;
-       }
-}
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct SEXPREC_HEADER
+   {
+      public sxpinfo sxpinfo;
+      public IntPtr attrib;
+      public IntPtr gengc_next_node;
+      public IntPtr gengc_prev_node;
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/SaveActions.cs b/rdotnet/R.NET/Internals/SaveActions.cs
index 897b8d5..55c26b8 100644
--- a/rdotnet/R.NET/Internals/SaveActions.cs
+++ b/rdotnet/R.NET/Internals/SaveActions.cs
@@ -1,54 +1,54 @@
 namespace RDotNet.Internals
 {
-       /// <summary>
-       /// Specifies the restore action.
-       /// </summary>
-       public enum StartupRestoreAction
-       {
-               /// <summary>
-               /// Not restoring.
-               /// </summary>
-               NoRestore = 0,
+   /// <summary>
+   /// Specifies the restore action.
+   /// </summary>
+   public enum StartupRestoreAction
+   {
+      /// <summary>
+      /// Not restoring.
+      /// </summary>
+      NoRestore = 0,
 
-               /// <summary>
-               /// Restoring.
-               /// </summary>
-               Restore = 1,
+      /// <summary>
+      /// Restoring.
+      /// </summary>
+      Restore = 1,
 
-               /// <summary>
-               /// The default value.
-               /// </summary>
-               Default = 2,
-       }
+      /// <summary>
+      /// The default value.
+      /// </summary>
+      Default = 2,
+   }
 
-       /// <summary>
-       /// Specifies the save action.
-       /// </summary>
-       public enum StartupSaveAction
-       {
-               /// <summary>
-               /// The default value.
-               /// </summary>
-               Default = 2,
+   /// <summary>
+   /// Specifies the save action.
+   /// </summary>
+   public enum StartupSaveAction
+   {
+      /// <summary>
+      /// The default value.
+      /// </summary>
+      Default = 2,
 
-               /// <summary>
-               /// No saving.
-               /// </summary>
-               NoSave = 3,
+      /// <summary>
+      /// No saving.
+      /// </summary>
+      NoSave = 3,
 
-               /// <summary>
-               /// Saving.
-               /// </summary>
-               Save = 4,
+      /// <summary>
+      /// Saving.
+      /// </summary>
+      Save = 4,
 
-               /// <summary>
-               /// Asking user.
-               /// </summary>
-               Ask = 5,
+      /// <summary>
+      /// Asking user.
+      /// </summary>
+      Ask = 5,
 
-               /// <summary>
-               /// Terminates without any actions.
-               /// </summary>
-               Suicide = 6,
-       }
-}
+      /// <summary>
+      /// Terminates without any actions.
+      /// </summary>
+      Suicide = 6,
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/SymbolicExpressionType.cs 
b/rdotnet/R.NET/Internals/SymbolicExpressionType.cs
index 7affba6..7ca20e5 100644
--- a/rdotnet/R.NET/Internals/SymbolicExpressionType.cs
+++ b/rdotnet/R.NET/Internals/SymbolicExpressionType.cs
@@ -2,187 +2,187 @@
 
 namespace RDotNet.Internals
 {
-       /// <summary>
-       /// SEXPTYPE enumeration.
-       /// </summary>
-       public enum SymbolicExpressionType
-       {
-               /// <summary>
-               /// Null.
-               /// </summary>
-               Null = 0,
-
-               /// <summary>
-               /// Symbols.
-               /// </summary>
-               Symbol = 1,
-
-               /// <summary>
-               /// Pairlists.
-               /// </summary>
-               Pairlist = 2,
-
-               /// <summary>
-               /// Closures.
-               /// </summary>
-               Closure = 3,
-
-               /// <summary>
-               /// Environments.
-               /// </summary>
-               Environment = 4,
-
-               /// <summary>
-               /// To be evaluated.
-               /// </summary>
-               Promise = 5,
-
-               /// <summary>
-               /// Pairlists for function calls.
-               /// </summary>
-               LanguageObject = 6,
-
-               /// <summary>
-               /// Special functions.
-               /// </summary>
-               SpecialFunction = 7,
-
-               /// <summary>
-               /// Builtin functions.
-               /// </summary>
-               BuiltinFunction = 8,
-
-               /// <summary>
-               /// Internal character string.
-               /// </summary>
-               InternalCharacterString = 9,
-
-               /// <summary>
-               /// Boolean vectors.
-               /// </summary>
-               LogicalVector = 10,
-
-               /// <summary>
-               /// Integer vectors.
-               /// </summary>
-               IntegerVector = 13,
-
-               /// <summary>
-               /// Numeric vectors.
-               /// </summary>
-               NumericVector = 14,
-
-               /// <summary>
-               /// Complex number vectors.
-               /// </summary>
-               ComplexVector = 15,
-
-               /// <summary>
-               /// Character vectors.
-               /// </summary>
-               CharacterVector = 16,
-
-               /// <summary>
-               /// Dot-dot-dot object.
-               /// </summary>
-               DotDotDotObject = 17,
-
-               /// <summary>
-               /// Place holders for any type. 
-               /// </summary>
-               Any = 18,
-
-               /// <summary>
-               /// Generic vectors.
-               /// </summary>
-               List = 19,
-
-               /// <summary>
-               /// Expression vectors.
-               /// </summary>
-               ExpressionVector = 20,
-
-               /// <summary>
-               /// Byte code.
-               /// </summary>
-               ByteCode = 21,
-
-               /// <summary>
-               /// External pointer.
-               /// </summary>
-               ExternalPointer = 22,
-
-               /// <summary>
-               /// Weak reference.
-               /// </summary>
-               WeakReference = 23,
-
-               /// <summary>
-               /// Raw vectors.
-               /// </summary>
-               RawVector = 24,
-
-               /// <summary>
-               /// S4 classes.
-               /// </summary>
-               S4 = 25,
-
-               #region Original Definitions
-
-               //[Obsolete("Use SEXPTYPE.Null instead.")]
-               //NILSXP = Null,
-               //[Obsolete("Use SEXPTYPE.Symbol istead.")]
-               //SYMSXP = Symbol,
-               //[Obsolete("Use SEXPTYPE.Pairlist istead.")]
-               //LISTSXP = Pairlist,
-               //[Obsolete("Use SEXPTYPE.Closure instead.")]
-               //CLOSXP = Closure,
-               //[Obsolete("Use SEXPTYPE.Environment instead.")]
-               //ENVSXP = Environment,
-               //[Obsolete("Use SEXPTYPE.Promise instead.")]
-               //PROMSXP = Promise,
-               //[Obsolete("Use SEXPTYPE.LanguageObject instead.")]
-               //LANGSXP = LanguageObject,
-               //[Obsolete("Use SEXPTYPE.SpecialFunction instead.")]
-               //SPECIALSXP = SpecialFunction,
-               //[Obsolete("Use SEXPTYPE.BuiltinFunction instead.")]
-               //BUILTINSXP = BuiltinFunction,
-               //[Obsolete("Use SEXPTYPE.InternalCharacterString instead.")]
-               //CHARSXP = InternalCharacterString,
-               //[Obsolete("Use SEXPTYPE.LogicalVector instead.")]
-               //LGLSXP = LogicalVector,
-               //[Obsolete("Use SEXPTYPE.IntegerVector instead.")]
-               //INTSXP = IntegerVector,
-               //[Obsolete("Use SEXPTYPE.NumericVector instead.")]
-               //REALSXP = NumericVector,
-               //[Obsolete("Use SEXPTYPE.ComplexVector instead.")]
-               //CPLXSXP = ComplexVector,
-               //[Obsolete("Use SEXPTYPE.CharacterVector instead.")]
-               //STRSXP = CharacterVector,
-               //[Obsolete("Use SEXPTYPE.DotDotDotObject instead.")]
-               //DOTSXP = DotDotDotObject,
-               //[Obsolete("Use SEXPTYPE.Any instead.")]
-               //ANYSXP = Any,
-               //[Obsolete("Use SEXPTYPE.List instead.")]
-               //VECSXP = List,
-               //[Obsolete("Use SEXPTYPE.ExpressionVector instead.")]
-               //EXPRSXP = ExpressionVector,
-               //[Obsolete("Use SEXPTYPE.ByteCode instead.")]
-               //BCODESXP = ByteCode,
-               //[Obsolete("Use SEXPTYPE.ExternalPointer instead.")]
-               //EXTPTRSXP = ExternalPointer,
-               //[Obsolete("Use SEXPTYPE.WeakReference instead.")]
-               //WEAKREFSXP = WeakReference,
-               //[Obsolete("Use SEXPTYPE.RawVector instead.")]
-               //RAWSXP = RawVector,
-               //[Obsolete("Use SEXPTYPE.S4 instead.")]
-               //S4SXP = S4,
-               /// <summary>
-               /// Closures, builtin functions or special functions.
-               /// </summary>
-               [Obsolete("Use SEXPTYPE.Closure instead. But, note that value is different from 
SEXPTYPE.Closure.")]
-               FUNSXP = 99,
-
-               #endregion
-       }
-}
+   /// <summary>
+   /// SEXPTYPE enumeration.
+   /// </summary>
+   public enum SymbolicExpressionType
+   {
+      /// <summary>
+      /// Null.
+      /// </summary>
+      Null = 0,
+
+      /// <summary>
+      /// Symbols.
+      /// </summary>
+      Symbol = 1,
+
+      /// <summary>
+      /// Pairlists.
+      /// </summary>
+      Pairlist = 2,
+
+      /// <summary>
+      /// Closures.
+      /// </summary>
+      Closure = 3,
+
+      /// <summary>
+      /// Environments.
+      /// </summary>
+      Environment = 4,
+
+      /// <summary>
+      /// To be evaluated.
+      /// </summary>
+      Promise = 5,
+
+      /// <summary>
+      /// Pairlists for function calls.
+      /// </summary>
+      LanguageObject = 6,
+
+      /// <summary>
+      /// Special functions.
+      /// </summary>
+      SpecialFunction = 7,
+
+      /// <summary>
+      /// Builtin functions.
+      /// </summary>
+      BuiltinFunction = 8,
+
+      /// <summary>
+      /// Internal character string.
+      /// </summary>
+      InternalCharacterString = 9,
+
+      /// <summary>
+      /// Boolean vectors.
+      /// </summary>
+      LogicalVector = 10,
+
+      /// <summary>
+      /// Integer vectors.
+      /// </summary>
+      IntegerVector = 13,
+
+      /// <summary>
+      /// Numeric vectors.
+      /// </summary>
+      NumericVector = 14,
+
+      /// <summary>
+      /// Complex number vectors.
+      /// </summary>
+      ComplexVector = 15,
+
+      /// <summary>
+      /// Character vectors.
+      /// </summary>
+      CharacterVector = 16,
+
+      /// <summary>
+      /// Dot-dot-dot object.
+      /// </summary>
+      DotDotDotObject = 17,
+
+      /// <summary>
+      /// Place holders for any type.
+      /// </summary>
+      Any = 18,
+
+      /// <summary>
+      /// Generic vectors.
+      /// </summary>
+      List = 19,
+
+      /// <summary>
+      /// Expression vectors.
+      /// </summary>
+      ExpressionVector = 20,
+
+      /// <summary>
+      /// Byte code.
+      /// </summary>
+      ByteCode = 21,
+
+      /// <summary>
+      /// External pointer.
+      /// </summary>
+      ExternalPointer = 22,
+
+      /// <summary>
+      /// Weak reference.
+      /// </summary>
+      WeakReference = 23,
+
+      /// <summary>
+      /// Raw vectors.
+      /// </summary>
+      RawVector = 24,
+
+      /// <summary>
+      /// S4 classes.
+      /// </summary>
+      S4 = 25,
+
+      #region Original Definitions
+
+      //[Obsolete("Use SEXPTYPE.Null instead.")]
+      //NILSXP = Null,
+      //[Obsolete("Use SEXPTYPE.Symbol istead.")]
+      //SYMSXP = Symbol,
+      //[Obsolete("Use SEXPTYPE.Pairlist istead.")]
+      //LISTSXP = Pairlist,
+      //[Obsolete("Use SEXPTYPE.Closure instead.")]
+      //CLOSXP = Closure,
+      //[Obsolete("Use SEXPTYPE.Environment instead.")]
+      //ENVSXP = Environment,
+      //[Obsolete("Use SEXPTYPE.Promise instead.")]
+      //PROMSXP = Promise,
+      //[Obsolete("Use SEXPTYPE.LanguageObject instead.")]
+      //LANGSXP = LanguageObject,
+      //[Obsolete("Use SEXPTYPE.SpecialFunction instead.")]
+      //SPECIALSXP = SpecialFunction,
+      //[Obsolete("Use SEXPTYPE.BuiltinFunction instead.")]
+      //BUILTINSXP = BuiltinFunction,
+      //[Obsolete("Use SEXPTYPE.InternalCharacterString instead.")]
+      //CHARSXP = InternalCharacterString,
+      //[Obsolete("Use SEXPTYPE.LogicalVector instead.")]
+      //LGLSXP = LogicalVector,
+      //[Obsolete("Use SEXPTYPE.IntegerVector instead.")]
+      //INTSXP = IntegerVector,
+      //[Obsolete("Use SEXPTYPE.NumericVector instead.")]
+      //REALSXP = NumericVector,
+      //[Obsolete("Use SEXPTYPE.ComplexVector instead.")]
+      //CPLXSXP = ComplexVector,
+      //[Obsolete("Use SEXPTYPE.CharacterVector instead.")]
+      //STRSXP = CharacterVector,
+      //[Obsolete("Use SEXPTYPE.DotDotDotObject instead.")]
+      //DOTSXP = DotDotDotObject,
+      //[Obsolete("Use SEXPTYPE.Any instead.")]
+      //ANYSXP = Any,
+      //[Obsolete("Use SEXPTYPE.List instead.")]
+      //VECSXP = List,
+      //[Obsolete("Use SEXPTYPE.ExpressionVector instead.")]
+      //EXPRSXP = ExpressionVector,
+      //[Obsolete("Use SEXPTYPE.ByteCode instead.")]
+      //BCODESXP = ByteCode,
+      //[Obsolete("Use SEXPTYPE.ExternalPointer instead.")]
+      //EXTPTRSXP = ExternalPointer,
+      //[Obsolete("Use SEXPTYPE.WeakReference instead.")]
+      //WEAKREFSXP = WeakReference,
+      //[Obsolete("Use SEXPTYPE.RawVector instead.")]
+      //RAWSXP = RawVector,
+      //[Obsolete("Use SEXPTYPE.S4 instead.")]
+      //S4SXP = S4,
+      /// <summary>
+      /// Closures, builtin functions or special functions.
+      /// </summary>
+      [Obsolete("Use SEXPTYPE.Closure instead. But, note that value is different from SEXPTYPE.Closure.")]
+      FUNSXP = 99,
+
+      #endregion Original Definitions
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Unix/Delegates.cs b/rdotnet/R.NET/Internals/Unix/Delegates.cs
index fa7e06d..ddb04da 100644
--- a/rdotnet/R.NET/Internals/Unix/Delegates.cs
+++ b/rdotnet/R.NET/Internals/Unix/Delegates.cs
@@ -4,54 +4,54 @@ using System.Text;
 
 namespace RDotNet.Internals.Unix
 {
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void ptr_R_Suicide([In] [MarshalAs(UnmanagedType.LPStr)] string message);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void ptr_R_Suicide([In] [MarshalAs(UnmanagedType.LPStr)] string message);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void ptr_R_ShowMessage([In] [MarshalAs(UnmanagedType.LPStr)] string message);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void ptr_R_ShowMessage([In] [MarshalAs(UnmanagedType.LPStr)] string message);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       [return : MarshalAs(UnmanagedType.Bool)]
-       internal delegate bool ptr_R_ReadConsole([In] [MarshalAs(UnmanagedType.LPStr)] string prompt, 
[MarshalAs(UnmanagedType.LPStr)] StringBuilder buffer, int length, [MarshalAs(UnmanagedType.Bool)] bool 
history);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   [return: MarshalAs(UnmanagedType.Bool)]
+   internal delegate bool ptr_R_ReadConsole([In] [MarshalAs(UnmanagedType.LPStr)] string prompt, 
[MarshalAs(UnmanagedType.LPStr)] StringBuilder buffer, int length, [MarshalAs(UnmanagedType.Bool)] bool 
history);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void ptr_R_WriteConsole([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int 
length);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void ptr_R_WriteConsole([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int 
length);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void ptr_R_WriteConsoleEx([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int 
length, ConsoleOutputType outputType);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void ptr_R_WriteConsoleEx([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int 
length, ConsoleOutputType outputType);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void ptr_R_ResetConsole();
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void ptr_R_ResetConsole();
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void ptr_R_FlushConsole();
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void ptr_R_FlushConsole();
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void ptr_R_ClearerrConsole();
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void ptr_R_ClearerrConsole();
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void ptr_R_Busy(BusyType which);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void ptr_R_Busy(BusyType which);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void ptr_R_CleanUp(StartupSaveAction saveAction, int status, 
[MarshalAs(UnmanagedType.Bool)] bool runLast);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void ptr_R_CleanUp(StartupSaveAction saveAction, int status, 
[MarshalAs(UnmanagedType.Bool)] bool runLast);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       [return : MarshalAs(UnmanagedType.Bool)]
-       internal delegate bool ptr_R_ShowFiles(int count, [In] [MarshalAs(UnmanagedType.LPArray, ArraySubType 
= UnmanagedType.LPStr)] string[] files, [In] [MarshalAs(UnmanagedType.LPArray, ArraySubType = 
UnmanagedType.LPStr)] string[] headers, [In] [MarshalAs(UnmanagedType.LPStr)] string title, 
[MarshalAs(UnmanagedType.Bool)] bool delete, [In] [MarshalAs(UnmanagedType.LPStr)] string pager);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   [return: MarshalAs(UnmanagedType.Bool)]
+   internal delegate bool ptr_R_ShowFiles(int count, [In] [MarshalAs(UnmanagedType.LPArray, ArraySubType = 
UnmanagedType.LPStr)] string[] files, [In] [MarshalAs(UnmanagedType.LPArray, ArraySubType = 
UnmanagedType.LPStr)] string[] headers, [In] [MarshalAs(UnmanagedType.LPStr)] string title, 
[MarshalAs(UnmanagedType.Bool)] bool delete, [In] [MarshalAs(UnmanagedType.LPStr)] string pager);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       [return : MarshalAs(UnmanagedType.Bool)]
-       internal delegate int ptr_R_ChooseFile([MarshalAs(UnmanagedType.Bool)] bool create, StringBuilder 
buffer, int length);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   [return: MarshalAs(UnmanagedType.Bool)]
+   internal delegate int ptr_R_ChooseFile([MarshalAs(UnmanagedType.Bool)] bool create, StringBuilder buffer, 
int length);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void ptr_R_EditFile([MarshalAs(UnmanagedType.LPStr)] string file);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void ptr_R_EditFile([MarshalAs(UnmanagedType.LPStr)] string file);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr ptr_R_loadhistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr 
environment);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr ptr_R_loadhistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr 
environment);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr ptr_R_savehistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr 
environment);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr ptr_R_savehistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr 
environment);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate IntPtr ptr_R_addhistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr 
environment);
-}
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate IntPtr ptr_R_addhistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment);
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Unix/RStart.cs b/rdotnet/R.NET/Internals/Unix/RStart.cs
index edc70c4..56a949f 100644
--- a/rdotnet/R.NET/Internals/Unix/RStart.cs
+++ b/rdotnet/R.NET/Internals/Unix/RStart.cs
@@ -3,39 +3,39 @@ using System.Runtime.InteropServices;
 
 namespace RDotNet.Internals.Unix
 {
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct RStart
-       {
-               [MarshalAs(UnmanagedType.Bool)]
-               public bool R_Quiet;
-
-               [MarshalAs(UnmanagedType.Bool)]
-               public bool R_Slave;
-
-               [MarshalAs(UnmanagedType.Bool)]
-               public bool R_Interactive;
-
-               [MarshalAs(UnmanagedType.Bool)]
-               public bool R_Verbose;
-
-               [MarshalAs(UnmanagedType.Bool)]
-               public bool LoadSiteFile;
-
-               [MarshalAs(UnmanagedType.Bool)]
-               public bool LoadInitFile;
-
-               [MarshalAs(UnmanagedType.Bool)]
-               public bool DebugInitFile;
-
-               public StartupRestoreAction RestoreAction;
-               public StartupSaveAction SaveAction;
-               internal UIntPtr vsize;
-               internal UIntPtr nsize;
-               internal UIntPtr max_vsize;
-               internal UIntPtr max_nsize;
-               internal UIntPtr ppsize;
-
-               [MarshalAs(UnmanagedType.Bool)]
-               public bool NoRenviron;
-       }
-}
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct RStart
+   {
+      [MarshalAs(UnmanagedType.Bool)]
+      public bool R_Quiet;
+
+      [MarshalAs(UnmanagedType.Bool)]
+      public bool R_Slave;
+
+      [MarshalAs(UnmanagedType.Bool)]
+      public bool R_Interactive;
+
+      [MarshalAs(UnmanagedType.Bool)]
+      public bool R_Verbose;
+
+      [MarshalAs(UnmanagedType.Bool)]
+      public bool LoadSiteFile;
+
+      [MarshalAs(UnmanagedType.Bool)]
+      public bool LoadInitFile;
+
+      [MarshalAs(UnmanagedType.Bool)]
+      public bool DebugInitFile;
+
+      public StartupRestoreAction RestoreAction;
+      public StartupSaveAction SaveAction;
+      internal UIntPtr vsize;
+      internal UIntPtr nsize;
+      internal UIntPtr max_vsize;
+      internal UIntPtr max_nsize;
+      internal UIntPtr ppsize;
+
+      [MarshalAs(UnmanagedType.Bool)]
+      public bool NoRenviron;
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/VECTOR_SEXPREC.cs b/rdotnet/R.NET/Internals/VECTOR_SEXPREC.cs
index 9fb07cf..854669d 100644
--- a/rdotnet/R.NET/Internals/VECTOR_SEXPREC.cs
+++ b/rdotnet/R.NET/Internals/VECTOR_SEXPREC.cs
@@ -3,58 +3,58 @@ using System.Runtime.InteropServices;
 
 namespace RDotNet.Internals
 {
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct VECTOR_SEXPREC
-       {
-               private SEXPREC_HEADER header;
-               private vecsxp vecsxp;
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct VECTOR_SEXPREC
+   {
+      private SEXPREC_HEADER header;
+      private vecsxp vecsxp;
 
-               public sxpinfo sxpinfo
-               {
-                       get
-                       {
-                               return header.sxpinfo;
-                       }
-               }
+      public sxpinfo sxpinfo
+      {
+         get
+         {
+            return header.sxpinfo;
+         }
+      }
 
-               public IntPtr attrib
-               {
-                       get
-                       {
-                               return header.attrib;
-                       }
-               }
+      public IntPtr attrib
+      {
+         get
+         {
+            return header.attrib;
+         }
+      }
 
-               public IntPtr gengc_next_node
-               {
-                       get
-                       {
-                               return header.gengc_next_node;
-                       }
-               }
+      public IntPtr gengc_next_node
+      {
+         get
+         {
+            return header.gengc_next_node;
+         }
+      }
 
-               public IntPtr gengc_prev_node
-               {
-                       get
-                       {
-                               return header.gengc_prev_node;
-                       }
-               }
+      public IntPtr gengc_prev_node
+      {
+         get
+         {
+            return header.gengc_prev_node;
+         }
+      }
 
-               public int Length
-               {
-                       get
-                       {
-                               return vecsxp.length;
-                       }
-               }
+      public int Length
+      {
+         get
+         {
+            return vecsxp.length;
+         }
+      }
 
-               public int TrueLength
-               {
-                       get
-                       {
-                               return vecsxp.truelength;
-                       }
-               }
-       }
-}
+      public int TrueLength
+      {
+         get
+         {
+            return vecsxp.truelength;
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Windows/Delegates.cs b/rdotnet/R.NET/Internals/Windows/Delegates.cs
index 5e87e20..bab3b56 100644
--- a/rdotnet/R.NET/Internals/Windows/Delegates.cs
+++ b/rdotnet/R.NET/Internals/Windows/Delegates.cs
@@ -3,25 +3,25 @@ using System.Text;
 
 namespace RDotNet.Internals.Windows
 {
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       [return : MarshalAs(UnmanagedType.Bool)]
-       internal delegate bool blah1([In] [MarshalAs(UnmanagedType.LPStr)] string prompt, 
[MarshalAs(UnmanagedType.LPStr)] StringBuilder buffer, int length, [MarshalAs(UnmanagedType.Bool)] bool 
history);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   [return: MarshalAs(UnmanagedType.Bool)]
+   internal delegate bool blah1([In] [MarshalAs(UnmanagedType.LPStr)] string prompt, 
[MarshalAs(UnmanagedType.LPStr)] StringBuilder buffer, int length, [MarshalAs(UnmanagedType.Bool)] bool 
history);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void blah2([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int length);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void blah2([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int length);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void blah3();
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void blah3();
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void blah4([In] [MarshalAs(UnmanagedType.LPStr)] string message);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void blah4([In] [MarshalAs(UnmanagedType.LPStr)] string message);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate YesNoCancel blah5([In] [MarshalAs(UnmanagedType.LPStr)] string question);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate YesNoCancel blah5([In] [MarshalAs(UnmanagedType.LPStr)] string question);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void blah6(BusyType which);
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void blah6(BusyType which);
 
-       [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-       internal delegate void blah7([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int length, 
ConsoleOutputType outputType);
-}
+   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+   internal delegate void blah7([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int length, 
ConsoleOutputType outputType);
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Windows/RStart.cs b/rdotnet/R.NET/Internals/Windows/RStart.cs
index e3623a6..f3f035d 100644
--- a/rdotnet/R.NET/Internals/Windows/RStart.cs
+++ b/rdotnet/R.NET/Internals/Windows/RStart.cs
@@ -4,34 +4,34 @@ using UnixRStruct = RDotNet.Internals.Unix.RStart;
 
 namespace RDotNet.Internals.Windows
 {
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct RStart
-       {
-               internal UnixRStruct Common;
-               public IntPtr rhome;
-               public IntPtr home;
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct RStart
+   {
+      internal UnixRStruct Common;
+      public IntPtr rhome;
+      public IntPtr home;
 
-               [MarshalAs(UnmanagedType.FunctionPtr)]
-               public blah1 ReadConsole;
+      [MarshalAs(UnmanagedType.FunctionPtr)]
+      public blah1 ReadConsole;
 
-               [MarshalAs(UnmanagedType.FunctionPtr)]
-               public blah2 WriteConsole;
+      [MarshalAs(UnmanagedType.FunctionPtr)]
+      public blah2 WriteConsole;
 
-               [MarshalAs(UnmanagedType.FunctionPtr)]
-               public blah3 CallBack;
+      [MarshalAs(UnmanagedType.FunctionPtr)]
+      public blah3 CallBack;
 
-               [MarshalAs(UnmanagedType.FunctionPtr)]
-               public blah4 ShowMessage;
+      [MarshalAs(UnmanagedType.FunctionPtr)]
+      public blah4 ShowMessage;
 
-               [MarshalAs(UnmanagedType.FunctionPtr)]
-               public blah5 YesNoCancel;
+      [MarshalAs(UnmanagedType.FunctionPtr)]
+      public blah5 YesNoCancel;
 
-               [MarshalAs(UnmanagedType.FunctionPtr)]
-               public blah6 Busy;
+      [MarshalAs(UnmanagedType.FunctionPtr)]
+      public blah6 Busy;
 
-               public UiMode CharacterMode;
+      public UiMode CharacterMode;
 
-               [MarshalAs(UnmanagedType.FunctionPtr)]
-               public blah7 WriteConsoleEx;
-       }
-}
+      [MarshalAs(UnmanagedType.FunctionPtr)]
+      public blah7 WriteConsoleEx;
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Windows/UiMode.cs b/rdotnet/R.NET/Internals/Windows/UiMode.cs
index 4f4a9a1..60a4e0f 100644
--- a/rdotnet/R.NET/Internals/Windows/UiMode.cs
+++ b/rdotnet/R.NET/Internals/Windows/UiMode.cs
@@ -1,9 +1,9 @@
 namespace RDotNet.Internals.Windows
 {
-       public enum UiMode
-       {
-               RGui,
-               RTerminal,
-               LinkDll,
-       }
-}
+   public enum UiMode
+   {
+      RGui,
+      RTerminal,
+      LinkDll,
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/YesNoCancel.cs b/rdotnet/R.NET/Internals/YesNoCancel.cs
index 9f2ef21..1bfa2fc 100644
--- a/rdotnet/R.NET/Internals/YesNoCancel.cs
+++ b/rdotnet/R.NET/Internals/YesNoCancel.cs
@@ -1,23 +1,23 @@
 namespace RDotNet.Internals
 {
-       /// <summary>
-       /// User's decision.
-       /// </summary>
-       public enum YesNoCancel
-       {
-               /// <summary>
-               /// User agreed.
-               /// </summary>
-               Yes = 1,
+   /// <summary>
+   /// User's decision.
+   /// </summary>
+   public enum YesNoCancel
+   {
+      /// <summary>
+      /// User agreed.
+      /// </summary>
+      Yes = 1,
 
-               /// <summary>
-               /// User disagreed.
-               /// </summary>
-               No = -1,
+      /// <summary>
+      /// User disagreed.
+      /// </summary>
+      No = -1,
 
-               /// <summary>
-               /// User abandoned to answer.
-               /// </summary>
-               Cancel = 0,
-       }
-}
+      /// <summary>
+      /// User abandoned to answer.
+      /// </summary>
+      Cancel = 0,
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/sxpinfo.cs b/rdotnet/R.NET/Internals/sxpinfo.cs
index fe7515a..407e18c 100644
--- a/rdotnet/R.NET/Internals/sxpinfo.cs
+++ b/rdotnet/R.NET/Internals/sxpinfo.cs
@@ -2,59 +2,59 @@
 
 namespace RDotNet.Internals
 {
-       [StructLayout(LayoutKind.Sequential)]
-       internal struct sxpinfo
-       {
-               private uint bits;
-
-               public SymbolicExpressionType type
-               {
-                       get { return (SymbolicExpressionType)(this.bits & 31u); }
-               }
-
-               public uint obj
-               {
-                       get { return ((this.bits & 32u) / 32); }
-               }
-
-               public uint named
-               {
-                       get { return ((this.bits & 192u) / 64); }
-               }
-
-               public uint gp
-               {
-                       get { return ((this.bits & 16776960u) / 256); }
-               }
-
-               public uint mark
-               {
-                       get { return ((this.bits & 16777216u) / 16777216); }
-               }
-
-               public uint debug
-               {
-                       get { return ((this.bits & 33554432u) / 33554432); }
-               }
-
-               public uint trace
-               {
-                       get { return ((this.bits & 67108864u) / 67108864); }
-               }
-
-               public uint spare
-               {
-                       get { return ((this.bits & 134217728u) / 134217728); }
-               }
-
-               public uint gcgen
-               {
-                       get { return ((this.bits & 268435456u) / 268435456); }
-               }
-
-               public uint gccls
-               {
-                       get { return ((this.bits & 3758096384u) / 536870912); }
-               }
-       }
-}
+   [StructLayout(LayoutKind.Sequential)]
+   internal struct sxpinfo
+   {
+      private uint bits;
+
+      public SymbolicExpressionType type
+      {
+         get { return (SymbolicExpressionType)(this.bits & 31u); }
+      }
+
+      public uint obj
+      {
+         get { return ((this.bits & 32u) / 32); }
+      }
+
+      public uint named
+      {
+         get { return ((this.bits & 192u) / 64); }
+      }
+
+      public uint gp
+      {
+         get { return ((this.bits & 16776960u) / 256); }
+      }
+
+      public uint mark
+      {
+         get { return ((this.bits & 16777216u) / 16777216); }
+      }
+
+      public uint debug
+      {
+         get { return ((this.bits & 33554432u) / 33554432); }
+      }
+
+      public uint trace
+      {
+         get { return ((this.bits & 67108864u) / 67108864); }
+      }
+
+      public uint spare
+      {
+         get { return ((this.bits & 134217728u) / 134217728); }
+      }
+
+      public uint gcgen
+      {
+         get { return ((this.bits & 268435456u) / 268435456); }
+      }
+
+      public uint gccls
+      {
+         get { return ((this.bits & 3758096384u) / 536870912); }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Language.cs b/rdotnet/R.NET/Language.cs
index 795d70b..5a02f81 100644
--- a/rdotnet/R.NET/Language.cs
+++ b/rdotnet/R.NET/Language.cs
@@ -1,38 +1,38 @@
-using System;
-using RDotNet.Internals;
+using RDotNet.Internals;
+using System;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A language object.
-       /// </summary>
-       public class Language : SymbolicExpression
-       {
-               /// <summary>
-               /// Creates a language object.
-               /// </summary>
-               /// <param name="engine">The engine</param>
-               /// <param name="pointer">The pointer.</param>
-               protected internal Language(REngine engine, IntPtr pointer)
-                       : base(engine, pointer)
-               {}
+   /// <summary>
+   /// A language object.
+   /// </summary>
+   public class Language : SymbolicExpression
+   {
+      /// <summary>
+      /// Creates a language object.
+      /// </summary>
+      /// <param name="engine">The engine</param>
+      /// <param name="pointer">The pointer.</param>
+      protected internal Language(REngine engine, IntPtr pointer)
+         : base(engine, pointer)
+      { }
 
-               /// <summary>
-               /// Gets function calls.
-               /// </summary>
-               public Pairlist FunctionCall
-               {
-                       get
-                       {
-                               int count = Engine.GetFunction<Rf_length>("Rf_length")(handle);
-                               // count == 1 for empty call.
-                               if (count < 2)
-                               {
-                                       return null;
-                               }
-                               SEXPREC sexp = GetInternalStructure();
-                               return new Pairlist(Engine, sexp.listsxp.cdrval);
-                       }
-               }
-       }
-}
+      /// <summary>
+      /// Gets function calls.
+      /// </summary>
+      public Pairlist FunctionCall
+      {
+         get
+         {
+            int count = Engine.GetFunction<Rf_length>()(handle);
+            // count == 1 for empty call.
+            if (count < 2)
+            {
+               return null;
+            }
+            SEXPREC sexp = GetInternalStructure();
+            return new Pairlist(Engine, sexp.listsxp.cdrval);
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/LogicalMatrix.cs b/rdotnet/R.NET/LogicalMatrix.cs
index f13e0a9..49f1ab8 100644
--- a/rdotnet/R.NET/LogicalMatrix.cs
+++ b/rdotnet/R.NET/LogicalMatrix.cs
@@ -1,96 +1,109 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A matrix of Boolean values.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class LogicalMatrix : Matrix<bool>
-       {
-               /// <summary>
-               /// Creates a new empty LogicalMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <seealso cref="REngineExtension.CreateLogicalMatrix(REngine, int, int)"/>
-               public LogicalMatrix(REngine engine, int rowCount, int columnCount)
-                       : base(engine, SymbolicExpressionType.LogicalVector, rowCount, columnCount)
-               {}
+   /// <summary>
+   /// A matrix of Boolean values.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class LogicalMatrix : Matrix<bool>
+   {
+      /// <summary>
+      /// Creates a new empty LogicalMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <seealso cref="REngineExtension.CreateLogicalMatrix(REngine, int, int)"/>
+      public LogicalMatrix(REngine engine, int rowCount, int columnCount)
+         : base(engine, SymbolicExpressionType.LogicalVector, rowCount, columnCount)
+      { }
 
-               /// <summary>
-               /// Creates a new LogicalMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="matrix">The values.</param>
-               /// <seealso cref="REngineExtension.CreateLogicalMatrix(REngine, bool[,])"/>
-               public LogicalMatrix(REngine engine, bool[,] matrix)
-                       : base(engine, SymbolicExpressionType.LogicalVector, matrix)
-               {}
+      /// <summary>
+      /// Creates a new LogicalMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="matrix">The values.</param>
+      /// <seealso cref="REngineExtension.CreateLogicalMatrix(REngine, bool[,])"/>
+      public LogicalMatrix(REngine engine, bool[,] matrix)
+         : base(engine, SymbolicExpressionType.LogicalVector, matrix)
+      { }
 
-               /// <summary>
-               /// Creates a new instance for a Boolean matrix.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a Boolean matrix.</param>
-               protected internal LogicalMatrix(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for a Boolean matrix.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a Boolean matrix.</param>
+      protected internal LogicalMatrix(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
-               /// <param name="columnIndex">The zero-based columnIndex index of the element to get or 
set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override bool this[int rowIndex, int columnIndex]
-               {
-                       get
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       int data = Marshal.ReadInt32(DataPointer, offset);
-                                       return Convert.ToBoolean(data);
-                               }
-                       }
-                       set
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       int data = Convert.ToInt32(value);
-                                       Marshal.WriteInt32(DataPointer, offset, data);
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+      /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override bool this[int rowIndex, int columnIndex]
+      {
+         get
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(rowIndex, columnIndex);
+               int data = Marshal.ReadInt32(DataPointer, offset);
+               return Convert.ToBoolean(data);
+            }
+         }
+         set
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(rowIndex, columnIndex);
+               int data = Convert.ToInt32(value);
+               Marshal.WriteInt32(DataPointer, offset, data);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of an integer in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return sizeof(int); }
-               }
-       }
-}
+      protected override void InitMatrixFastDirect(bool[,] matrix)
+      {
+         var intValues = Utility.ArrayConvertAllOneDim(matrix, Convert.ToInt32);
+         Marshal.Copy(intValues, 0, DataPointer, intValues.Length);
+      }
+
+      protected override bool[,] GetArrayFast()
+      {
+         int[] intValues = new int[this.ItemCount];
+         Marshal.Copy(DataPointer, intValues, 0, intValues.Length);
+         return Utility.ArrayConvertAllTwoDim(intValues, Convert.ToBoolean, this.RowCount, this.ColumnCount);
+      }
+
+      /// <summary>
+      /// Gets the size of an integer in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return sizeof(int); }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/LogicalVector.cs b/rdotnet/R.NET/LogicalVector.cs
index 3c4d6a9..643db74 100644
--- a/rdotnet/R.NET/LogicalVector.cs
+++ b/rdotnet/R.NET/LogicalVector.cs
@@ -1,91 +1,104 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Collections.Generic;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A collection of Boolean values.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class LogicalVector : Vector<bool>
-       {
-               /// <summary>
-               /// Creates a new empty LogicalVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="length">The length.</param>
-               /// <seealso cref="REngineExtension.CreateLogicalVector(REngine, int)"/>
-               public LogicalVector(REngine engine, int length)
-                       : base(engine, SymbolicExpressionType.LogicalVector, length)
-               {}
+   /// <summary>
+   /// A collection of Boolean values.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class LogicalVector : Vector<bool>
+   {
+      /// <summary>
+      /// Creates a new empty LogicalVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="length">The length.</param>
+      /// <seealso cref="REngineExtension.CreateLogicalVector(REngine, int)"/>
+      public LogicalVector(REngine engine, int length)
+         : base(engine, SymbolicExpressionType.LogicalVector, length)
+      { }
 
-               /// <summary>
-               /// Creates a new LogicalVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="vector">The values.</param>
-               /// <seealso cref="REngineExtension.CreateLogicalVector(REngine, IEnumerable{bool})"/>
-               public LogicalVector(REngine engine, IEnumerable<bool> vector)
-                       : base(engine, SymbolicExpressionType.LogicalVector, vector)
-               {}
+      /// <summary>
+      /// Creates a new LogicalVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="vector">The values.</param>
+      /// <seealso cref="REngineExtension.CreateLogicalVector(REngine, IEnumerable{bool})"/>
+      public LogicalVector(REngine engine, IEnumerable<bool> vector)
+         : base(engine, SymbolicExpressionType.LogicalVector, vector)
+      { }
 
-               /// <summary>
-               /// Creates a new instance for a Boolean vector.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a Boolean vector.</param>
-               protected internal LogicalVector(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for a Boolean vector.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a Boolean vector.</param>
+      protected internal LogicalVector(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="index">The zero-based index of the element to get or set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override bool this[int index]
-               {
-                       get
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       int data = Marshal.ReadInt32(DataPointer, offset);
-                                       return Convert.ToBoolean(data);
-                               }
-                       }
-                       set
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       int data = Convert.ToInt32(value);
-                                       Marshal.WriteInt32(DataPointer, offset, data);
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="index">The zero-based index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override bool this[int index]
+      {
+         get
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(index);
+               int data = Marshal.ReadInt32(DataPointer, offset);
+               return Convert.ToBoolean(data);
+            }
+         }
+         set
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(index);
+               int data = Convert.ToInt32(value);
+               Marshal.WriteInt32(DataPointer, offset, data);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of a Boolean value in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get
-                       {
-                               // Boolean is int internally.
-                               return sizeof(int);
-                       }
-               }
-       }
-}
+      protected override bool[] GetArrayFast()
+      {
+         int[] intValues = new int[this.Length];
+         Marshal.Copy(DataPointer, intValues, 0, intValues.Length);
+         return Array.ConvertAll(intValues, Convert.ToBoolean);
+      }
+
+      protected override void SetVectorDirect(bool[] values)
+      {
+         var intValues = Array.ConvertAll(values, Convert.ToInt32);
+         Marshal.Copy(intValues, 0, DataPointer, values.Length);
+      }
+
+      /// <summary>
+      /// Gets the size of a Boolean value in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get
+         {
+            // Boolean is int internally.
+            return sizeof(int);
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Makefile b/rdotnet/R.NET/Makefile
new file mode 100644
index 0000000..2235bc5
--- /dev/null
+++ b/rdotnet/R.NET/Makefile
@@ -0,0 +1,843 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# rdotnet/R.NET/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
+pkgdatadir = $(datadir)/chronojump
+pkgincludedir = $(includedir)/chronojump
+pkglibdir = $(libdir)/chronojump
+pkglibexecdir = $(libexecdir)/chronojump
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-mingw32
+host_triplet = i686-pc-mingw32
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/build/build.environment.mk \
+       $(top_srcdir)/build/build.mk \
+       $(top_srcdir)/build/build.rules.mk
+#am__append_1 = " $(NUNIT_LIBS)"
+subdir = rdotnet/R.NET
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+       $(top_srcdir)/build/m4/shamrock/mono.m4 \
+       $(top_srcdir)/build/m4/shamrock/programs.m4 \
+       $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" \
+       "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)" \
+       "$(DESTDIR)$(logo_48dir)"
+SCRIPTS = $(module_SCRIPTS)
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+DATA = $(desktop_DATA) $(images_DATA) $(logo_DATA) $(logo_48_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = aclocal -Ic:/gstreamer-sdk/0.10/x86/share/aclocal 
-IC:/MinGW/msys/1.0/home/chronojump/cerbero/build-tools/share/aclocal
+ACLOCAL_AMFLAGS = -I build/m4/shamrock -I build/m4/shave ${ACLOCAL_FLAGS}
+ALL_LINGUAS = 
+AMTAR = $${TAR-tar}
+AR = i686-w64-mingw32-ar
+AUTOCONF = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoconf
+AUTOHEADER = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoheader
+AUTOMAKE = ${SHELL} /usr/home/chronojump/chronojump/missing --run automake-1.12
+AWK = gawk
+CATALOGS = 
+CATOBJEXT = .gmo
+CC = i686-w64-mingw32-gcc
+CCDEPMODE = depmode=gcc3
+CESARPLAYER_CFLAGS = -mms-bitfields -Ic:/gstreamer-sdk/0.10/x86/include/gtk-2.0 
-Ic:/gstreamer-sdk/0.10/x86/lib/gtk-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/atk-1.0 
-Ic:/gstreamer-sdk/0.10/x86/include/cairo -Ic:/gstreamer-sdk/0.10/x86/include/gdk-pixbuf-2.0 
-Ic:/gstreamer-sdk/0.10/x86/include/pango-1.0 -Ic:/gstreamer-sdk/0.10/x86/include/glib-2.0 
-Ic:/gstreamer-sdk/0.10/x86/lib/glib-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/pixman-1 
-Ic:/gstreamer-sdk/0.10/x86/include/fontconfig -Ic:/gstreamer-sdk/0.10/x86/include/freetype2 
-Ic:/gstreamer-sdk/0.10/x86/include/libpng15 -Ic:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10 
-Ic:/gstreamer-sdk/0.10/x86/include/libxml2  
+CESARPLAYER_LIBS = -Lc:/gstreamer-sdk/0.10/x86/lib -lgtk-win32-2.0 -latk-1.0 -lgdk-win32-2.0 
-lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgio-2.0 -lgstaudio-0.10 
-lgstvideo-0.10 -lgstpbutils-0.10 -lgstinterfaces-0.10 -lgstapp-0.10 -lgstbase-0.10 -lgsttag-0.10 
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lxml2 -lglib-2.0 -lintl  
+CFLAGS = -Wall -g -O2 -DWINVER=0x0501
+CPP = i686-w64-mingw32-cpp
+CPPFLAGS = 
+CYGPATH_W = echo
+DATADIRNAME = share
+DEFS = -DPACKAGE_NAME=\"chronojump\" -DPACKAGE_TARNAME=\"chronojump\" -DPACKAGE_VERSION=\"1.3.9\" 
-DPACKAGE_STRING=\"chronojump\ 1.3.9\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"chronojump\" 
-DVERSION=\"1.3.9\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 
-DHAVE_UNISTD_H=1 -DLT_OBJDIR=\".libs/\" -DGETTEXT_PACKAGE=\"chronojump\" -DHAVE_LOCALE_H=1 
-DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DENABLE_NLS=1 -DOSTYPE_WINDOWS=1
+DEPDIR = .deps
+DLLTOOL = i686-w64-mingw32-dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = .exe
+FGREP = /bin/grep -F
+GETTEXT_PACKAGE = chronojump
+GLADE_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml  
+GLADE_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glade-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll  
+GLIB_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml  
+GLIB_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll  
+GMOFILES = 
+GMSGFMT = /usr/home/chronojump/cerbero/build-tools/bin/msgfmt
+GREP = /bin/grep
+GTK_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml  
+GTK_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll  
+INSTALL = /bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+INSTOBJEXT = .mo
+INTLLIBS = -lintl 
+INTLTOOL_EXTRACT = /usr/home/chronojump/cerbero/build-tools/bin/intltool-extract
+INTLTOOL_MERGE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-merge
+INTLTOOL_PERL = /bin/perl
+INTLTOOL_UPDATE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-update
+LD = i686-w64-mingw32-ld
+LDFLAGS = -Lc:/gstreamer-sdk/0.10/x86/lib 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = cp -p
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /usr/home/chronojump/chronojump/missing --run makeinfo
+MANIFEST_TOOL = :
+MCS = /c/gstreamer-sdk/0.10/x86/bin/dmcs
+MKDIR_P = /bin/mkdir -p
+MKINSTALLDIRS = ./mkinstalldirs
+MONO = /c/gstreamer-sdk/0.10/x86/bin/mono
+MONO_MODULE_CFLAGS =  
+MONO_MODULE_LIBS =  
+MSGFMT = msgfmt
+MSGFMT_OPTS = -c
+MSGMERGE = /usr/home/chronojump/cerbero/build-tools/bin/msgmerge
+NM = i686-w64-mingw32-nm
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL = 
+OTOOL64 = 
+PACKAGE = chronojump
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = chronojump
+PACKAGE_STRING = chronojump 1.3.9
+PACKAGE_TARNAME = chronojump
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.3.9
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/home/chronojump/cerbero/build-tools/bin/pkg-config
+PKG_CONFIG_LIBDIR = c:/gstreamer-sdk/0.10/x86/lib/pkgconfig
+PKG_CONFIG_PATH = c:/gstreamer-sdk/0.10/x86/share/pkgconfig
+POFILES = 
+POSUB = po
+PO_IN_DATADIR_FALSE = 
+PO_IN_DATADIR_TRUE = 
+PYTHON = /c/Python27/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_PLATFORM = win32
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.7
+RANLIB = i686-w64-mingw32-ranlib
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/sh
+STRIP = i686-w64-mingw32-strip
+USE_NLS = yes
+VERSION = 1.3.9
+XGETTEXT = /usr/home/chronojump/cerbero/build-tools/bin/xgettext
+abs_builddir = /usr/home/chronojump/chronojump/rdotnet/R.NET
+abs_srcdir = /usr/home/chronojump/chronojump/rdotnet/R.NET
+abs_top_builddir = /usr/home/chronojump/chronojump
+abs_top_srcdir = /usr/home/chronojump/chronojump
+ac_ct_AR = 
+ac_ct_CC = i686-w64-mingw32-gcc
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-mingw32
+build_alias = 
+build_cpu = i686
+build_os = mingw32
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = /c/gstreamer-sdk/0.10/x86
+expanded_bindir = /c/gstreamer-sdk/0.10/x86/bin
+expanded_datadir = /c/gstreamer-sdk/0.10/x86/share
+expanded_libdir = /c/gstreamer-sdk/0.10/x86/lib
+host = i686-pc-mingw32
+host_alias = 
+host_cpu = i686
+host_os = mingw32
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /usr/home/chronojump/chronojump/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/chronojump
+pkgpythondir = ${pythondir}/chronojump
+prefix = /c/gstreamer-sdk/0.10/x86
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}\Lib\site-packages
+pythondir = ${prefix}\Lib\site-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+ASSEMBLY = RDotNet
+TARGET = library
+LINK = $(REF_DEP_RDOTNET) $(am__append_1)
+SOURCES = \
+    Closure.cs \
+    ComplexVector.cs \
+    CharacterMatrix.cs \
+    ComplexMatrix.cs \
+    BuiltinFunction.cs \
+    Devices/CharacterDeviceAdapter.cs \
+    Devices/ConsoleDevice.cs \
+    Devices/NullCharacterDevice.cs \
+    Devices/ICharacterDevice.cs \
+    Internals/Delegates.cs \
+    Internals/OutputMode.cs \
+    Internals/Unix/RStart.cs \
+    Internals/ConsoleOutputType.cs \
+    Internals/BusyType.cs \
+    Internals/SaveActions.cs \
+    Internals/Unix/Delegates.cs \
+    Internals/Windows/Delegates.cs \
+    Internals/Windows/RStart.cs \
+    Internals/Windows/UiMode.cs \
+    Internals/YesNoCancel.cs \
+    SpecialFunction.cs \
+    Environment.cs \
+    Expression.cs \
+    ExpressionVector.cs \
+    DataFrame.cs \
+       DataFrameColumnAttribute.cs \
+    DataFrameRow.cs \
+       DataFrameRowAttribute.cs \
+       Diagnostics/DataFrameColumnDisplay.cs \
+       Diagnostics/DataFrameDebugView.cs \
+       Diagnostics/FactorDebugView.cs \
+       Diagnostics/MatrixDebugView.cs \
+       Diagnostics/VectorDebugView.cs \
+       DynamicVector.cs \
+    Dynamic/DataFrameDynamicMeta.cs \
+    Dynamic/SymbolicExpressionDynamicMeta.cs \
+    Dynamic/ListDynamicMeta.cs \
+    Function.cs \
+    GenericVector.cs \
+    Language.cs \
+    LogicalMatrix.cs \
+    Pairlist.cs \
+    RawMatrix.cs \
+    NumericMatrix.cs \
+    IntegerMatrix.cs \
+    Matrix.cs \
+    InternalString.cs \
+    Internals/SEXPREC_HEADER.cs \
+    RawVector.cs \
+    Internals/ParseStatus.cs \
+    NumericVector.cs \
+    IntegerVector.cs \
+    Internals/VECTOR_SEXPREC.cs \
+    ParseException.cs \
+    ProtectedPointer.cs \
+    REngineExtension.cs \
+    StartupParameter.cs \
+    Symbol.cs \
+    SymbolicExpression.cs \
+    Internals/SEXPREC.cs \
+    Internals/SymbolicExpressionType.cs \
+    Internals/sxpinfo.cs \
+    Properties/AssemblyInfo.cs \
+    REngine.cs \
+       Factor.cs \
+    SymbolicExpressionExtension.cs \
+    Utility.cs \
+    Vector.cs \
+    LogicalVector.cs \
+    CharacterVector.cs
+
+
+# Initializers
+MONO_BASE_PATH = 
+MONO_ADDINS_PATH = 
+
+# Install Paths
+DEFAULT_INSTALL_DIR = $(pkglibdir)
+
+# External libraries to link against, generated from configure
+LINK_SYSTEM = -r:System
+LINK_SYSTEM_CORE = -r:System.Core
+LINK_SYSTEM_DATA_DATASETEXTENSTIONS = -r:System.Data.DataSetExtensions
+LINK_SYSTEMDATA = -r:System.Data
+LINK_SYSTEM_DRAWING = -r:System.Drawing
+LINK_SYSTEM_NUMERICS = -r:System.Numerics
+LINK_SYSTEM_XML = -r:System.Xml
+LINK_SYSTEM_XML_LINQ = -r:System.Xml.Linq
+LINK_SYSTEM_WEB_SERVICES = -r:System.Web.Services
+LINK_MICROSOFT_CSHARP = -r:Microsoft.CSharp
+LINK_CAIRO = -r:Mono.Cairo
+LINK_MONO_POSIX = -r:Mono.Posix
+LINK_MONO_DATA_SQLITE = -r:Mono.Data.Sqlite
+LINK_GLIB = $(GLIB_SHARP_20_LIBS)
+LINK_GTK = $(GTK_SHARP_20_LIBS)
+LINK_GLADE = $(GLADE_SHARP_20_LIBS)
+LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll
+LINK_RDOTNET = -r:$(DIR_BIN)/RDotNet.dll
+LINK_RDOTNET_NATIVE = -r:$(DIR_BIN)/RDotNet.NativeLibrary.dll
+REF_DEP_CHRONOJUMP = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEMDATA) \
+       $(LINK_SYSTEM_DRAWING) \
+       $(LINK_SYSTEM_WEB_SERVICES) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_MONO_DATA_SQLITE) \
+       $(LINK_GLIB) \
+       $(LINK_GLADE) \
+       $(LINK_GTK) \
+       $(LINK_CESARPLAYER) \
+       $(LINK_RDOTNET) \
+       $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CESARPLAYER = \
+       $(LINK_SYSTEM) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_GLIB) \
+       $(LINK_GTK)
+
+REF_DEP_RDOTNET_NATIVE = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEM_CORE) \
+       $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_SYSTEM_XML_LINQ) \
+       $(LINK_MICROSOFT_CSHARP)
+
+REF_DEP_RDOTNET = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEM_CORE) \
+       $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+       $(LINK_SYSTEM_NUMERICS) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_SYSTEM_XML_LINQ) \
+       $(LINK_MICROSOFT_CSHARP) \
+       $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CHRONOJUMP_SERVER = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEMDATA) \
+       $(LINK_SYSTEM_WEB_SERVICES) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_MONO_DATA_SQLITE)
+
+DIR_BIN = $(top_builddir)/bin
+
+# Cute hack to replace a space with something
+colon := :
+empty := 
+space := $(empty) $(empty)
+
+# Build path to allow running uninstalled
+RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH))
+UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq
+BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE)
+SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
+#SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs
+SUBST = ,
+RESOURCES_D := $(foreach res,$(RESOURCES),$(firstword $(subst $(SUBST), ,$(strip $(res)))))
+RESOURCES_DIST := $(addprefix $(srcdir)/, $(RESOURCES_D))
+RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES))
+RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \
+       -resource:$(resource))
+
+INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)"
+ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET)))
+ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION)
+INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR)))
+#ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS"
+FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE))
+DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/')
+OUTPUT_FILES = \
+       $(ASSEMBLY_FILE) \
+       $(ASSEMBLY_FILE).mdb \
+       $(DLLCONFIG)
+
+moduledir = $(INSTALL_DIR_RESOLVED)
+module_SCRIPTS = $(OUTPUT_FILES)
+desktopdir = $(datadir)/applications
+desktop_in_files = $(DESKTOP_FILE)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+imagesdir = ${datarootdir}/chronojump/images
+images_DATA = $(IMAGES)
+logo_48dir = ${datarootdir}/icons/hicolor/48x48/apps
+logo_48_DATA = $(LOGO_48)
+logodir = ${datarootdir}/icons/hicolor/scalable/apps
+logo_DATA = $(LOGO)
+EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_DIST) $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(LOGO_48) 
$(desktop_in_files)
+CLEANFILES = $(OUTPUT_FILES)
+DISTCLEANFILES = *.pidb $(desktop_DATA)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk 
$(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/R.NET/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign rdotnet/R.NET/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+$(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-moduleSCRIPTS: $(module_SCRIPTS)
+       @$(NORMAL_INSTALL)
+       @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(moduledir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(moduledir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n' \
+           -e 'h;s|.*|.|' \
+           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+             if (++n[d] == $(am__install_max)) { \
+               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+           else { print "f", d "/" $$4, $$1 } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+            test -z "$$files" || { \
+              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \
+              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \
+            } \
+       ; done
+
+uninstall-moduleSCRIPTS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
+       dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-desktopDATA: $(desktop_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+       done
+
+uninstall-desktopDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
+install-imagesDATA: $(images_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \
+       done
+
+uninstall-imagesDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir)
+install-logoDATA: $(logo_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(logodir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(logodir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logodir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(logodir)" || exit $$?; \
+       done
+
+uninstall-logoDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(logodir)'; $(am__uninstall_files_from_dir)
+install-logo_48DATA: $(logo_48_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(logo_48dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(logo_48dir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logo_48dir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(logo_48dir)" || exit $$?; \
+       done
+
+uninstall-logo_48DATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(logo_48dir)'; $(am__uninstall_files_from_dir)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)" 
"$(DESTDIR)$(logodir)" "$(DESTDIR)$(logo_48dir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-desktopDATA install-imagesDATA \
+       install-logoDATA install-logo_48DATA install-moduleSCRIPTS
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-desktopDATA uninstall-imagesDATA \
+       uninstall-logoDATA uninstall-logo_48DATA \
+       uninstall-moduleSCRIPTS
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: install-am install-data-am install-strip uninstall-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-data-hook \
+       install-desktopDATA install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am \
+       install-imagesDATA install-info install-info-am \
+       install-logoDATA install-logo_48DATA install-man \
+       install-moduleSCRIPTS install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am uninstall uninstall-am uninstall-desktopDATA \
+       uninstall-hook uninstall-imagesDATA uninstall-logoDATA \
+       uninstall-logo_48DATA uninstall-moduleSCRIPTS
+
+
+%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) 
-d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+
+all: $(ASSEMBLY_FILE)
+
+run: 
+       @pushd $(top_builddir); \
+       make run; \
+       popd;
+
+test:
+       @pushd $(top_builddir)/tests; \
+       make $(ASSEMBLY); \
+       popd;
+
+build-debug:
+       @echo $(DEP_LINK)
+
+$(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE)
+
+$(ASSEMBLY_FILE): $(SOURCES_BUILD) $(DEP_LINK)
+       @mkdir -p $(top_builddir)/bin
+       $(MCS) \
+               $(GMCS_FLAGS) \
+               $(ASSEMBLY_BUILD_FLAGS) \
+               -nowarn:0278 -nowarn:0078 $$warn -unsafe \
+               -define:HAVE_GTK -codepage:utf8 \
+               -debug -target:$(TARGET) -out:$@ \
+               $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \
+               $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
+       @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \
+               cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \
+       fi;
+
+#theme-icons: $(THEME_ICONS_SOURCE)
+#      @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+
+install-data-hook: $(THEME_ICONS_SOURCE)
+       @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+       $(EXTRA_INSTALL_DATA_HOOK)
+
+uninstall-hook: $(THEME_ICONS_SOURCE)
+       @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+       $(EXTRA_UNINSTALL_HOOK)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/R.NET/Makefile.am b/rdotnet/R.NET/Makefile.am
index f76a722..d95f262 100644
--- a/rdotnet/R.NET/Makefile.am
+++ b/rdotnet/R.NET/Makefile.am
@@ -29,8 +29,15 @@ SOURCES = \
     Expression.cs \
     ExpressionVector.cs \
     DataFrame.cs \
+       DataFrameColumnAttribute.cs \
     DataFrameRow.cs \
-    DynamicVector.cs \
+       DataFrameRowAttribute.cs \
+       Diagnostics/DataFrameColumnDisplay.cs \
+       Diagnostics/DataFrameDebugView.cs \
+       Diagnostics/FactorDebugView.cs \
+       Diagnostics/MatrixDebugView.cs \
+       Diagnostics/VectorDebugView.cs \
+       DynamicVector.cs \
     Dynamic/DataFrameDynamicMeta.cs \
     Dynamic/SymbolicExpressionDynamicMeta.cs \
     Dynamic/ListDynamicMeta.cs \
@@ -61,6 +68,7 @@ SOURCES = \
     Internals/sxpinfo.cs \
     Properties/AssemblyInfo.cs \
     REngine.cs \
+       Factor.cs \
     SymbolicExpressionExtension.cs \
     Utility.cs \
     Vector.cs \
diff --git a/rdotnet/R.NET/Makefile.in b/rdotnet/R.NET/Makefile.in
new file mode 100644
index 0000000..0c39a9d
--- /dev/null
+++ b/rdotnet/R.NET/Makefile.in
@@ -0,0 +1,843 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ SET_MAKE@
+
+
+VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/build/build.environment.mk \
+       $(top_srcdir)/build/build.mk \
+       $(top_srcdir)/build/build.rules.mk
+ ENABLE_TESTS_TRUE@am__append_1 = " $(NUNIT_LIBS)"
+subdir = rdotnet/R.NET
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+       $(top_srcdir)/build/m4/shamrock/mono.m4 \
+       $(top_srcdir)/build/m4/shamrock/programs.m4 \
+       $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" \
+       "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)" \
+       "$(DESTDIR)$(logo_48dir)"
+SCRIPTS = $(module_SCRIPTS)
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+DATA = $(desktop_DATA) $(images_DATA) $(logo_DATA) $(logo_48_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@
+CESARPLAYER_LIBS = @CESARPLAYER_LIBS@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLADE_SHARP_20_CFLAGS = @GLADE_SHARP_20_CFLAGS@
+GLADE_SHARP_20_LIBS = @GLADE_SHARP_20_LIBS@
+GLIB_SHARP_20_CFLAGS = @GLIB_SHARP_20_CFLAGS@
+GLIB_SHARP_20_LIBS = @GLIB_SHARP_20_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GTK_SHARP_20_CFLAGS = @GTK_SHARP_20_CFLAGS@
+GTK_SHARP_20_LIBS = @GTK_SHARP_20_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MCS = @MCS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MONO = @MONO@
+MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
+MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+expanded_bindir = @expanded_bindir@
+expanded_datadir = @expanded_datadir@
+expanded_libdir = @expanded_libdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ASSEMBLY = RDotNet
+TARGET = library
+LINK = $(REF_DEP_RDOTNET) $(am__append_1)
+SOURCES = \
+    Closure.cs \
+    ComplexVector.cs \
+    CharacterMatrix.cs \
+    ComplexMatrix.cs \
+    BuiltinFunction.cs \
+    Devices/CharacterDeviceAdapter.cs \
+    Devices/ConsoleDevice.cs \
+    Devices/NullCharacterDevice.cs \
+    Devices/ICharacterDevice.cs \
+    Internals/Delegates.cs \
+    Internals/OutputMode.cs \
+    Internals/Unix/RStart.cs \
+    Internals/ConsoleOutputType.cs \
+    Internals/BusyType.cs \
+    Internals/SaveActions.cs \
+    Internals/Unix/Delegates.cs \
+    Internals/Windows/Delegates.cs \
+    Internals/Windows/RStart.cs \
+    Internals/Windows/UiMode.cs \
+    Internals/YesNoCancel.cs \
+    SpecialFunction.cs \
+    Environment.cs \
+    Expression.cs \
+    ExpressionVector.cs \
+    DataFrame.cs \
+       DataFrameColumnAttribute.cs \
+    DataFrameRow.cs \
+       DataFrameRowAttribute.cs \
+       Diagnostics/DataFrameColumnDisplay.cs \
+       Diagnostics/DataFrameDebugView.cs \
+       Diagnostics/FactorDebugView.cs \
+       Diagnostics/MatrixDebugView.cs \
+       Diagnostics/VectorDebugView.cs \
+       DynamicVector.cs \
+    Dynamic/DataFrameDynamicMeta.cs \
+    Dynamic/SymbolicExpressionDynamicMeta.cs \
+    Dynamic/ListDynamicMeta.cs \
+    Function.cs \
+    GenericVector.cs \
+    Language.cs \
+    LogicalMatrix.cs \
+    Pairlist.cs \
+    RawMatrix.cs \
+    NumericMatrix.cs \
+    IntegerMatrix.cs \
+    Matrix.cs \
+    InternalString.cs \
+    Internals/SEXPREC_HEADER.cs \
+    RawVector.cs \
+    Internals/ParseStatus.cs \
+    NumericVector.cs \
+    IntegerVector.cs \
+    Internals/VECTOR_SEXPREC.cs \
+    ParseException.cs \
+    ProtectedPointer.cs \
+    REngineExtension.cs \
+    StartupParameter.cs \
+    Symbol.cs \
+    SymbolicExpression.cs \
+    Internals/SEXPREC.cs \
+    Internals/SymbolicExpressionType.cs \
+    Internals/sxpinfo.cs \
+    Properties/AssemblyInfo.cs \
+    REngine.cs \
+       Factor.cs \
+    SymbolicExpressionExtension.cs \
+    Utility.cs \
+    Vector.cs \
+    LogicalVector.cs \
+    CharacterVector.cs
+
+
+# Initializers
+MONO_BASE_PATH = 
+MONO_ADDINS_PATH = 
+
+# Install Paths
+DEFAULT_INSTALL_DIR = $(pkglibdir)
+
+# External libraries to link against, generated from configure
+LINK_SYSTEM = -r:System
+LINK_SYSTEM_CORE = -r:System.Core
+LINK_SYSTEM_DATA_DATASETEXTENSTIONS = -r:System.Data.DataSetExtensions
+LINK_SYSTEMDATA = -r:System.Data
+LINK_SYSTEM_DRAWING = -r:System.Drawing
+LINK_SYSTEM_NUMERICS = -r:System.Numerics
+LINK_SYSTEM_XML = -r:System.Xml
+LINK_SYSTEM_XML_LINQ = -r:System.Xml.Linq
+LINK_SYSTEM_WEB_SERVICES = -r:System.Web.Services
+LINK_MICROSOFT_CSHARP = -r:Microsoft.CSharp
+LINK_CAIRO = -r:Mono.Cairo
+LINK_MONO_POSIX = -r:Mono.Posix
+LINK_MONO_DATA_SQLITE = -r:Mono.Data.Sqlite
+LINK_GLIB = $(GLIB_SHARP_20_LIBS)
+LINK_GTK = $(GTK_SHARP_20_LIBS)
+LINK_GLADE = $(GLADE_SHARP_20_LIBS)
+LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll
+LINK_RDOTNET = -r:$(DIR_BIN)/RDotNet.dll
+LINK_RDOTNET_NATIVE = -r:$(DIR_BIN)/RDotNet.NativeLibrary.dll
+REF_DEP_CHRONOJUMP = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEMDATA) \
+       $(LINK_SYSTEM_DRAWING) \
+       $(LINK_SYSTEM_WEB_SERVICES) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_MONO_DATA_SQLITE) \
+       $(LINK_GLIB) \
+       $(LINK_GLADE) \
+       $(LINK_GTK) \
+       $(LINK_CESARPLAYER) \
+       $(LINK_RDOTNET) \
+       $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CESARPLAYER = \
+       $(LINK_SYSTEM) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_GLIB) \
+       $(LINK_GTK)
+
+REF_DEP_RDOTNET_NATIVE = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEM_CORE) \
+       $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_SYSTEM_XML_LINQ) \
+       $(LINK_MICROSOFT_CSHARP)
+
+REF_DEP_RDOTNET = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEM_CORE) \
+       $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+       $(LINK_SYSTEM_NUMERICS) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_SYSTEM_XML_LINQ) \
+       $(LINK_MICROSOFT_CSHARP) \
+       $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CHRONOJUMP_SERVER = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEMDATA) \
+       $(LINK_SYSTEM_WEB_SERVICES) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_MONO_DATA_SQLITE)
+
+DIR_BIN = $(top_builddir)/bin
+
+# Cute hack to replace a space with something
+colon := :
+empty := 
+space := $(empty) $(empty)
+
+# Build path to allow running uninstalled
+RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH))
+UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq
+BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE)
+SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
+#SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs
+SUBST = ,
+RESOURCES_D := $(foreach res,$(RESOURCES),$(firstword $(subst $(SUBST), ,$(strip $(res)))))
+RESOURCES_DIST := $(addprefix $(srcdir)/, $(RESOURCES_D))
+RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES))
+RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \
+       -resource:$(resource))
+
+INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)"
+ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET)))
+ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION)
+INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR)))
+ ENABLE_TESTS_TRUE@ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS"
+FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE))
+DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/')
+OUTPUT_FILES = \
+       $(ASSEMBLY_FILE) \
+       $(ASSEMBLY_FILE).mdb \
+       $(DLLCONFIG)
+
+moduledir = $(INSTALL_DIR_RESOLVED)
+module_SCRIPTS = $(OUTPUT_FILES)
+desktopdir = $(datadir)/applications
+desktop_in_files = $(DESKTOP_FILE)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+imagesdir = @datadir@/@PACKAGE@/images
+images_DATA = $(IMAGES)
+logo_48dir = @datadir@/icons/hicolor/48x48/apps
+logo_48_DATA = $(LOGO_48)
+logodir = @datadir@/icons/hicolor/scalable/apps
+logo_DATA = $(LOGO)
+EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_DIST) $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(LOGO_48) 
$(desktop_in_files)
+CLEANFILES = $(OUTPUT_FILES)
+DISTCLEANFILES = *.pidb $(desktop_DATA)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk 
$(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/R.NET/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign rdotnet/R.NET/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+$(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-moduleSCRIPTS: $(module_SCRIPTS)
+       @$(NORMAL_INSTALL)
+       @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(moduledir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(moduledir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n' \
+           -e 'h;s|.*|.|' \
+           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+             if (++n[d] == $(am__install_max)) { \
+               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+           else { print "f", d "/" $$4, $$1 } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+            test -z "$$files" || { \
+              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \
+              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \
+            } \
+       ; done
+
+uninstall-moduleSCRIPTS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
+       dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-desktopDATA: $(desktop_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+       done
+
+uninstall-desktopDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
+install-imagesDATA: $(images_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \
+       done
+
+uninstall-imagesDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir)
+install-logoDATA: $(logo_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(logodir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(logodir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logodir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(logodir)" || exit $$?; \
+       done
+
+uninstall-logoDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(logodir)'; $(am__uninstall_files_from_dir)
+install-logo_48DATA: $(logo_48_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(logo_48dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(logo_48dir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logo_48dir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(logo_48dir)" || exit $$?; \
+       done
+
+uninstall-logo_48DATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(logo_48dir)'; $(am__uninstall_files_from_dir)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)" 
"$(DESTDIR)$(logodir)" "$(DESTDIR)$(logo_48dir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-desktopDATA install-imagesDATA \
+       install-logoDATA install-logo_48DATA install-moduleSCRIPTS
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-desktopDATA uninstall-imagesDATA \
+       uninstall-logoDATA uninstall-logo_48DATA \
+       uninstall-moduleSCRIPTS
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: install-am install-data-am install-strip uninstall-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-data-hook \
+       install-desktopDATA install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am \
+       install-imagesDATA install-info install-info-am \
+       install-logoDATA install-logo_48DATA install-man \
+       install-moduleSCRIPTS install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am uninstall uninstall-am uninstall-desktopDATA \
+       uninstall-hook uninstall-imagesDATA uninstall-logoDATA \
+       uninstall-logo_48DATA uninstall-moduleSCRIPTS
+
+
+ INTLTOOL_DESKTOP_RULE@
+
+all: $(ASSEMBLY_FILE)
+
+run: 
+       @pushd $(top_builddir); \
+       make run; \
+       popd;
+
+test:
+       @pushd $(top_builddir)/tests; \
+       make $(ASSEMBLY); \
+       popd;
+
+build-debug:
+       @echo $(DEP_LINK)
+
+$(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE)
+
+$(ASSEMBLY_FILE): $(SOURCES_BUILD) $(DEP_LINK)
+       @mkdir -p $(top_builddir)/bin
+       $(MCS) \
+               $(GMCS_FLAGS) \
+               $(ASSEMBLY_BUILD_FLAGS) \
+               -nowarn:0278 -nowarn:0078 $$warn -unsafe \
+               -define:HAVE_GTK -codepage:utf8 \
+               -debug -target:$(TARGET) -out:$@ \
+               $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \
+               $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
+       @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \
+               cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \
+       fi;
+
+#theme-icons: $(THEME_ICONS_SOURCE)
+#      @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+
+install-data-hook: $(THEME_ICONS_SOURCE)
+       @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+       $(EXTRA_INSTALL_DATA_HOOK)
+
+uninstall-hook: $(THEME_ICONS_SOURCE)
+       @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+       $(EXTRA_UNINSTALL_HOOK)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/R.NET/Matrix.cs b/rdotnet/R.NET/Matrix.cs
index b54fca5..91caf18 100644
--- a/rdotnet/R.NET/Matrix.cs
+++ b/rdotnet/R.NET/Matrix.cs
@@ -1,280 +1,314 @@
-using System;
+using RDotNet.Diagnostics;
+using RDotNet.Internals;
+using System;
+using System.Diagnostics;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A matrix base.
-       /// </summary>
-       /// <typeparam name="T">The element type.</typeparam>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public abstract class Matrix<T> : SymbolicExpression
-       {
-               /// <summary>
-               /// Creates a new matrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="type">The element type.</param>
-               /// <param name="rowCount">The size of row.</param>
-               /// <param name="columnCount">The size of column.</param>
-               protected Matrix(REngine engine, SymbolicExpressionType type, int rowCount, int columnCount)
-                       : base(engine, engine.GetFunction<Rf_allocMatrix>("Rf_allocMatrix")(type, rowCount, 
columnCount))
-               {
-                       if (rowCount <= 0)
-                       {
-                               throw new ArgumentOutOfRangeException("rowCount");
-                       }
-                       if (columnCount <= 0)
-                       {
-                               throw new ArgumentOutOfRangeException("columnCount");
-                       }
-                       var empty = new byte[rowCount * columnCount * DataSize];
-                       Marshal.Copy(empty, 0, DataPointer, empty.Length);
-               }
+   /// <summary>
+   /// A matrix base.
+   /// </summary>
+   /// <typeparam name="T">The element type.</typeparam>
+   [DebuggerDisplay("MatrixSize = {RowCount} x {ColumnCount}; RObjectType = {Type}")]
+   [DebuggerTypeProxy(typeof(MatrixDebugView<>))]
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public abstract class Matrix<T> : SymbolicExpression
+   {
+      /// <summary>
+      /// Creates a new matrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="type">The element type.</param>
+      /// <param name="rowCount">The size of row.</param>
+      /// <param name="columnCount">The size of column.</param>
+      protected Matrix(REngine engine, SymbolicExpressionType type, int rowCount, int columnCount)
+         : base(engine, engine.GetFunction<Rf_allocMatrix>()(type, rowCount, columnCount))
+      {
+         if (rowCount <= 0)
+         {
+            throw new ArgumentOutOfRangeException("rowCount");
+         }
+         if (columnCount <= 0)
+         {
+            throw new ArgumentOutOfRangeException("columnCount");
+         }
+         var empty = new byte[rowCount * columnCount * DataSize];
+         Marshal.Copy(empty, 0, DataPointer, empty.Length);
+      }
+
+      /// <summary>
+      /// Creates a new matrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="type">The element type.</param>
+      /// <param name="matrix">The values.</param>
+      public Matrix(REngine engine, SymbolicExpressionType type, T[,] matrix)
+         : base(engine, engine.GetFunction<Rf_allocMatrix>()(type, matrix.GetLength(0), matrix.GetLength(1)))
+      {
+         int rowCount = RowCount;
+         int columnCount = ColumnCount;
+         //InitMatrixWithIndexers(matrix, rowCount, columnCount);
+         InitMatrixFast(matrix);
+      }
+
+      private void InitMatrixFast(T[,] matrix)
+      {
+         using (new ProtectedPointer(this))
+         {
+            InitMatrixFastDirect(matrix);
+         }
+      }
+
+      protected abstract void InitMatrixFastDirect(T[,] matrix);
+
+      private void InitMatrixWithIndexers(T[,] matrix, int rowCount, int columnCount)
+      {
+         for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
+         {
+            for (int columnIndex = 0; columnIndex < columnCount; columnIndex++)
+            {
+               this[rowIndex, columnIndex] = matrix[rowIndex, columnIndex];
+            }
+         }
+      }
+
+      /// <summary>
+      /// Creates a new instance for a matrix.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="coerced">The pointer to a matrix.</param>
+      protected Matrix(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="rowIndex">The zero-based row index of the element to get or set.</param>
+      /// <param name="columnIndex">The zero-based column index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public abstract T this[int rowIndex, int columnIndex] { get; set; }
 
-               /// <summary>
-               /// Creates a new matrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="type">The element type.</param>
-               /// <param name="matrix">The values.</param>
-               public Matrix(REngine engine, SymbolicExpressionType type, T[,] matrix)
-                       : base(engine, engine.GetFunction<Rf_allocMatrix>("Rf_allocMatrix")(type, 
matrix.GetLength(0), matrix.GetLength(1)))
-               {
-                       int rowCount = RowCount;
-                       int columnCount = ColumnCount;
-                       for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
-                       {
-                               for (int columnIndex = 0; columnIndex < columnCount; columnIndex++)
-                               {
-                                       this[rowIndex, columnIndex] = matrix[rowIndex, columnIndex];
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified names.
+      /// </summary>
+      /// <param name="rowName">The row name of the element to get or set.</param>
+      /// <param name="columnName">The column name of the element to get or set.</param>
+      /// <returns>The element at the specified names.</returns>
+      public virtual T this[string rowName, string columnName]
+      {
+         get
+         {
+            if (rowName == null)
+            {
+               throw new ArgumentNullException("rowName");
+            }
+            if (columnName == null)
+            {
+               throw new ArgumentNullException("columnName");
+            }
+            string[] rowNames = RowNames;
+            if (rowNames == null)
+            {
+               throw new InvalidOperationException();
+            }
+            string[] columnNames = ColumnNames;
+            if (columnNames == null)
+            {
+               throw new InvalidOperationException();
+            }
+            int rowIndex = Array.IndexOf(rowNames, rowName);
+            int columnIndex = Array.IndexOf(columnNames, columnName);
+            return this[rowIndex, columnIndex];
+         }
+         set
+         {
+            if (rowName == null)
+            {
+               throw new ArgumentNullException("rowName");
+            }
+            if (columnName == null)
+            {
+               throw new ArgumentNullException("columnName");
+            }
+            string[] rowNames = RowNames;
+            if (rowNames == null)
+            {
+               throw new InvalidOperationException();
+            }
+            string[] columnNames = ColumnNames;
+            if (columnNames == null)
+            {
+               throw new InvalidOperationException();
+            }
+            int rowIndex = Array.IndexOf(rowNames, rowName);
+            int columnIndex = Array.IndexOf(columnNames, columnName);
+            this[rowIndex, columnIndex] = value;
+         }
+      }
 
-               /// <summary>
-               /// Creates a new instance for a matrix.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="coerced">The pointer to a matrix.</param>
-               protected Matrix(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Gets the row size of elements.
+      /// </summary>
+      public int RowCount
+      {
+         get { return Engine.GetFunction<Rf_nrows>()(handle); }
+      }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="rowIndex">The zero-based row index of the element to get or set.</param>
-               /// <param name="columnIndex">The zero-based column index of the element to get or 
set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public abstract T this[int rowIndex, int columnIndex] { get; set; }
+      /// <summary>
+      /// Gets the column size of elements.
+      /// </summary>
+      public int ColumnCount
+      {
+         get { return Engine.GetFunction<Rf_ncols>()(handle); }
+      }
 
-               /// <summary>
-               /// Gets or sets the element at the specified names.
-               /// </summary>
-               /// <param name="rowName">The row name of the element to get or set.</param>
-               /// <param name="columnName">The column name of the element to get or set.</param>
-               /// <returns>The element at the specified names.</returns>
-               public virtual T this[string rowName, string columnName]
-               {
-                       get
-                       {
-                               if (rowName == null)
-                               {
-                                       throw new ArgumentNullException("rowName");
-                               }
-                               if (columnName == null)
-                               {
-                                       throw new ArgumentNullException("columnName");
-                               }
-                               string[] rowNames = RowNames;
-                               if (rowNames == null)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               string[] columnNames = ColumnNames;
-                               if (columnNames == null)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               int rowIndex = Array.IndexOf(rowNames, rowName);
-                               int columnIndex = Array.IndexOf(columnNames, columnName);
-                               return this[rowIndex, columnIndex];
-                       }
-                       set
-                       {
-                               if (rowName == null)
-                               {
-                                       throw new ArgumentNullException("rowName");
-                               }
-                               if (columnName == null)
-                               {
-                                       throw new ArgumentNullException("columnName");
-                               }
-                               string[] rowNames = RowNames;
-                               if (rowNames == null)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               string[] columnNames = ColumnNames;
-                               if (columnNames == null)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               int rowIndex = Array.IndexOf(rowNames, rowName);
-                               int columnIndex = Array.IndexOf(columnNames, columnName);
-                               this[rowIndex, columnIndex] = value;
-                       }
-               }
+      /// <summary>
+      /// Gets the total number of items (rows times columns) in this matrix
+      /// </summary>
+      public int ItemCount { get { return RowCount * ColumnCount; } }
 
-               /// <summary>
-               /// Gets the row size of elements.
-               /// </summary>
-               public int RowCount
-               {
-                       get { return Engine.GetFunction<Rf_nrows>("Rf_nrows")(handle); }
-               }
+      /// <summary>
+      /// Gets the names of rows.
+      /// </summary>
+      public string[] RowNames
+      {
+         get
+         {
+            SymbolicExpression dimnamesSymbol = Engine.GetPredefinedSymbol("R_DimNamesSymbol");
+            SymbolicExpression dimnames = GetAttribute(dimnamesSymbol);
+            if (dimnames == null)
+            {
+               return null;
+            }
+            CharacterVector rowNames = dimnames.AsList()[0].AsCharacter();
+            if (rowNames == null)
+            {
+               return null;
+            }
 
-               /// <summary>
-               /// Gets the column size of elements.
-               /// </summary>
-               public int ColumnCount
-               {
-                       get { return Engine.GetFunction<Rf_ncols>("Rf_ncols")(handle); }
-               }
+            int length = rowNames.Length;
+            var result = new string[length];
+            rowNames.CopyTo(result, length);
+            return result;
+         }
+      }
 
-               /// <summary>
-               /// Gets the names of rows.
-               /// </summary>
-               public string[] RowNames
-               {
-                       get
-                       {
-                               SymbolicExpression dimnamesSymbol = 
Engine.GetPredefinedSymbol("R_DimNamesSymbol");
-                               SymbolicExpression dimnames = GetAttribute(dimnamesSymbol);
-                               if (dimnames == null)
-                               {
-                                       return null;
-                               }
-                               CharacterVector rowNames = dimnames.AsList()[0].AsCharacter();
-                               if (rowNames == null)
-                               {
-                                       return null;
-                               }
+      /// <summary>
+      /// Gets the names of columns.
+      /// </summary>
+      public string[] ColumnNames
+      {
+         get
+         {
+            SymbolicExpression dimnamesSymbol = Engine.GetPredefinedSymbol("R_DimNamesSymbol");
+            SymbolicExpression dimnames = GetAttribute(dimnamesSymbol);
+            if (dimnames == null)
+            {
+               return null;
+            }
+            CharacterVector columnNames = dimnames.AsList()[1].AsCharacter();
+            if (columnNames == null)
+            {
+               return null;
+            }
 
-                               int length = rowNames.Length;
-                               var result = new string[length];
-                               rowNames.CopyTo(result, length);
-                               return result;
-                       }
-               }
+            int length = columnNames.Length;
+            var result = new string[length];
+            columnNames.CopyTo(result, length);
+            return result;
+         }
+      }
 
-               /// <summary>
-               /// Gets the names of columns.
-               /// </summary>
-               public string[] ColumnNames
-               {
-                       get
-                       {
-                               SymbolicExpression dimnamesSymbol = 
Engine.GetPredefinedSymbol("R_DimNamesSymbol");
-                               SymbolicExpression dimnames = GetAttribute(dimnamesSymbol);
-                               if (dimnames == null)
-                               {
-                                       return null;
-                               }
-                               CharacterVector columnNames = dimnames.AsList()[1].AsCharacter();
-                               if (columnNames == null)
-                               {
-                                       return null;
-                               }
+      /// <summary>
+      /// Gets the pointer for the first element.
+      /// </summary>
+      protected IntPtr DataPointer
+      {
+         get { return IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC))); }
+      }
 
-                               int length = columnNames.Length;
-                               var result = new string[length];
-                               columnNames.CopyTo(result, length);
-                               return result;
-                       }
-               }
+      /// <summary>
+      /// Gets the size of an element in byte.
+      /// </summary>
+      protected abstract int DataSize { get; }
 
-               /// <summary>
-               /// Gets the pointer for the first element.
-               /// </summary>
-               protected IntPtr DataPointer
-               {
-                       get { return IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC))); }
-               }
+      /// <summary>
+      /// Gets the offset for the specified indexes.
+      /// </summary>
+      /// <param name="rowIndex">The index of row.</param>
+      /// <param name="columnIndex">The index of column.</param>
+      /// <returns>The offset.</returns>
+      protected int GetOffset(int rowIndex, int columnIndex)
+      {
+         return DataSize * (columnIndex * RowCount + rowIndex);
+      }
 
-               /// <summary>
-               /// Gets the size of an element in byte.
-               /// </summary>
-               protected abstract int DataSize { get; }
+      /// <summary>
+      /// Copies the elements to the specified array.
+      /// </summary>
+      /// <param name="destination">The destination array.</param>
+      /// <param name="rowCount">The row length to copy.</param>
+      /// <param name="columnCount">The column length to copy.</param>
+      /// <param name="sourceRowIndex">The first row index of the matrix.</param>
+      /// <param name="sourceColumnIndex">The first column index of the matrix.</param>
+      /// <param name="destinationRowIndex">The first row index of the destination array.</param>
+      /// <param name="destinationColumnIndex">The first column index of the destination array.</param>
+      public void CopyTo(T[,] destination, int rowCount, int columnCount, int sourceRowIndex = 0, int 
sourceColumnIndex = 0, int destinationRowIndex = 0, int destinationColumnIndex = 0)
+      {
+         if (destination == null)
+         {
+            throw new ArgumentNullException("destination");
+         }
+         if (rowCount < 0)
+         {
+            throw new IndexOutOfRangeException("rowCount");
+         }
+         if (columnCount < 0)
+         {
+            throw new IndexOutOfRangeException("columnCount");
+         }
+         if (sourceRowIndex < 0 || RowCount < sourceRowIndex + rowCount)
+         {
+            throw new IndexOutOfRangeException("sourceRowIndex");
+         }
+         if (sourceColumnIndex < 0 || ColumnCount < sourceColumnIndex + columnCount)
+         {
+            throw new IndexOutOfRangeException("sourceColumnIndex");
+         }
+         if (destinationRowIndex < 0 || destination.GetLength(0) < destinationRowIndex + rowCount)
+         {
+            throw new IndexOutOfRangeException("destinationRowIndex");
+         }
+         if (destinationColumnIndex < 0 || destination.GetLength(1) < destinationColumnIndex + columnCount)
+         {
+            throw new IndexOutOfRangeException("destinationColumnIndex");
+         }
 
-               /// <summary>
-               /// Gets the offset for the specified indexes.
-               /// </summary>
-               /// <param name="rowIndex">The index of row.</param>
-               /// <param name="columnIndex">The index of column.</param>
-               /// <returns>The offset.</returns>
-               protected int GetOffset(int rowIndex, int columnIndex)
-               {
-                       return DataSize * (columnIndex * RowCount + rowIndex);
-               }
+         while (--rowCount >= 0)
+         {
+            int currentSourceRowIndex = sourceRowIndex++;
+            int currentDestinationRowIndex = destinationRowIndex++;
+            int currentColumnCount = columnCount;
+            int currentSourceColumnIndex = sourceColumnIndex;
+            int currentDestinationColumnIndex = destinationColumnIndex;
+            while (--currentColumnCount >= 0)
+            {
+               destination[currentDestinationRowIndex, currentDestinationColumnIndex++] = 
this[currentSourceRowIndex, currentSourceColumnIndex++];
+            }
+         }
+      }
 
-               /// <summary>
-               /// Copies the elements to the specified array.
-               /// </summary>
-               /// <param name="destination">The destination array.</param>
-               /// <param name="rowCount">The row length to copy.</param>
-               /// <param name="columnCount">The column length to copy.</param>
-               /// <param name="sourceRowIndex">The first row index of the matrix.</param>
-               /// <param name="sourceColumnIndex">The first column index of the matrix.</param>
-               /// <param name="destinationRowIndex">The first row index of the destination array.</param>
-               /// <param name="destinationColumnIndex">The first column index of the destination 
array.</param>
-               public void CopyTo(T[,] destination, int rowCount, int columnCount, int sourceRowIndex = 0, 
int sourceColumnIndex = 0, int destinationRowIndex = 0, int destinationColumnIndex = 0)
-               {
-                       if (destination == null)
-                       {
-                               throw new ArgumentNullException("destination");
-                       }
-                       if (rowCount < 0)
-                       {
-                               throw new IndexOutOfRangeException("rowCount");
-                       }
-                       if (columnCount < 0)
-                       {
-                               throw new IndexOutOfRangeException("columnCount");
-                       }
-                       if (sourceRowIndex < 0 || RowCount < sourceRowIndex + rowCount)
-                       {
-                               throw new IndexOutOfRangeException("sourceRowIndex");
-                       }
-                       if (sourceColumnIndex < 0 || ColumnCount < sourceColumnIndex + columnCount)
-                       {
-                               throw new IndexOutOfRangeException("sourceColumnIndex");
-                       }
-                       if (destinationRowIndex < 0 || destination.GetLength(0) < destinationRowIndex + 
rowCount)
-                       {
-                               throw new IndexOutOfRangeException("destinationRowIndex");
-                       }
-                       if (destinationColumnIndex < 0 || destination.GetLength(1) < destinationColumnIndex + 
columnCount)
-                       {
-                               throw new IndexOutOfRangeException("destinationColumnIndex");
-                       }
+      public T[,] ToArrayFast()
+      {
+         using (var p = new ProtectedPointer(this))
+         {
+            return GetArrayFast();
+         }
+      }
 
-                       while (--rowCount >= 0)
-                       {
-                               int currentSourceRowIndex = sourceRowIndex++;
-                               int currentDestinationRowIndex = destinationRowIndex++;
-                               int currentColumnCount = columnCount;
-                               int currentSourceColumnIndex = sourceColumnIndex;
-                               int currentDestinationColumnIndex = destinationColumnIndex;
-                               while (--currentColumnCount >= 0)
-                               {
-                                       destination[currentDestinationRowIndex, 
currentDestinationColumnIndex++] = this[currentSourceRowIndex, currentSourceColumnIndex++];
-                               }
-                       }
-               }
-       }
-}
+      protected abstract T[,] GetArrayFast();
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/NumericMatrix.cs b/rdotnet/R.NET/NumericMatrix.cs
index d273d4f..d1ea612 100644
--- a/rdotnet/R.NET/NumericMatrix.cs
+++ b/rdotnet/R.NET/NumericMatrix.cs
@@ -1,105 +1,118 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A matrix of real numbers in double precision.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class NumericMatrix : Matrix<double>
-       {
-               /// <summary>
-               /// Creates a new empty NumericMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <seealso cref="REngineExtension.CreateNumericMatrix(REngine, int, int)"/>
-               public NumericMatrix(REngine engine, int rowCount, int columnCount)
-                       : base(engine, SymbolicExpressionType.NumericVector, rowCount, columnCount)
-               {}
+   /// <summary>
+   /// A matrix of real numbers in double precision.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class NumericMatrix : Matrix<double>
+   {
+      /// <summary>
+      /// Creates a new empty NumericMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <seealso cref="REngineExtension.CreateNumericMatrix(REngine, int, int)"/>
+      public NumericMatrix(REngine engine, int rowCount, int columnCount)
+         : base(engine, SymbolicExpressionType.NumericVector, rowCount, columnCount)
+      { }
 
-               /// <summary>
-               /// Creates a new NumericMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="matrix">The values.</param>
-               /// <seealso cref="REngineExtension.CreateNumericMatrix(REngine, double[,])"/>
-               public NumericMatrix(REngine engine, double[,] matrix)
-                       : base(engine, SymbolicExpressionType.NumericVector, matrix)
-               {}
+      /// <summary>
+      /// Creates a new NumericMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="matrix">The values.</param>
+      /// <seealso cref="REngineExtension.CreateNumericMatrix(REngine, double[,])"/>
+      public NumericMatrix(REngine engine, double[,] matrix)
+         : base(engine, SymbolicExpressionType.NumericVector, matrix)
+      { }
 
-               /// <summary>
-               /// Creates a new instance for a numeric matrix.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a numeric matrix.</param>
-               protected internal NumericMatrix(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for a numeric matrix.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a numeric matrix.</param>
+      protected internal NumericMatrix(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
-               /// <param name="columnIndex">The zero-based columnIndex index of the element to get or 
set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override double this[int rowIndex, int columnIndex]
-               {
-                       get
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       var data = new byte[DataSize];
-                                       IntPtr pointer = DataPointer;
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
-                                       {
-                                               data[byteIndex] = Marshal.ReadByte(pointer, offset + 
byteIndex);
-                                       }
-                                       return BitConverter.ToDouble(data, 0);
-                               }
-                       }
-                       set
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       byte[] data = BitConverter.GetBytes(value);
-                                       IntPtr pointer = DataPointer;
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
-                                       {
-                                               Marshal.WriteByte(pointer, offset + byteIndex, 
data[byteIndex]);
-                                       }
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+      /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override double this[int rowIndex, int columnIndex]
+      {
+         get
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               var data = new byte[DataSize];
+               IntPtr pointer = DataPointer;
+               int offset = GetOffset(rowIndex, columnIndex);
+               for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
+               {
+                  data[byteIndex] = Marshal.ReadByte(pointer, offset + byteIndex);
+               }
+               return BitConverter.ToDouble(data, 0);
+            }
+         }
+         set
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               byte[] data = BitConverter.GetBytes(value);
+               IntPtr pointer = DataPointer;
+               int offset = GetOffset(rowIndex, columnIndex);
+               for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
+               {
+                  Marshal.WriteByte(pointer, offset + byteIndex, data[byteIndex]);
+               }
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of a real number in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return sizeof(double); }
-               }
-       }
-}
+      protected override void InitMatrixFastDirect(double[,] matrix)
+      {
+         var values = Utility.ArrayConvertOneDim(matrix);
+         Marshal.Copy(values, 0, DataPointer, values.Length);
+      }
+
+      protected override double[,] GetArrayFast()
+      {
+         var values = new double[this.ItemCount];
+         Marshal.Copy(DataPointer, values, 0, values.Length);
+         return Utility.ArrayConvertAllTwoDim(values, this.RowCount, this.ColumnCount);
+      }
+
+      /// <summary>
+      /// Gets the size of a real number in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return sizeof(double); }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/NumericVector.cs b/rdotnet/R.NET/NumericVector.cs
index 94de933..82d5332 100644
--- a/rdotnet/R.NET/NumericVector.cs
+++ b/rdotnet/R.NET/NumericVector.cs
@@ -1,133 +1,146 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Collections.Generic;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A collection of real numbers in double precision.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class NumericVector : Vector<double>
-       {
-               /// <summary>
-               /// Creates a new empty NumericVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="length">The length.</param>
-               /// <seealso cref="REngineExtension.CreateNumericVector(REngine, int)"/>
-               public NumericVector(REngine engine, int length)
-                       : base(engine, SymbolicExpressionType.NumericVector, length)
-               {}
+   /// <summary>
+   /// A collection of real numbers in double precision.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class NumericVector : Vector<double>
+   {
+      /// <summary>
+      /// Creates a new empty NumericVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="length">The length.</param>
+      /// <seealso cref="REngineExtension.CreateNumericVector(REngine, int)"/>
+      public NumericVector(REngine engine, int length)
+         : base(engine, SymbolicExpressionType.NumericVector, length)
+      { }
 
-               /// <summary>
-               /// Creates a new NumericVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="vector">The values.</param>
-               /// <seealso cref="REngineExtension.CreateNumericVector(REngine, IEnumerable{double})"/>
-               public NumericVector(REngine engine, IEnumerable<double> vector)
-                       : base(engine, SymbolicExpressionType.NumericVector, vector)
-               {}
+      /// <summary>
+      /// Creates a new NumericVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="vector">The values.</param>
+      /// <seealso cref="REngineExtension.CreateNumericVector(REngine, IEnumerable{double})"/>
+      public NumericVector(REngine engine, IEnumerable<double> vector)
+         : base(engine, SymbolicExpressionType.NumericVector, vector)
+      { }
 
-               /// <summary>
-               /// Creates a new NumericVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="vector">The values.</param>
-               /// <seealso cref="REngineExtension.CreateNumericVector(REngine, double[])"/>
-               public NumericVector(REngine engine, double[] vector)
-                       : base(engine, SymbolicExpressionType.NumericVector, vector.Length)
-               {
-                       Marshal.Copy(vector, 0, DataPointer, vector.Length);
-               }
+      /// <summary>
+      /// Creates a new NumericVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="vector">The values.</param>
+      /// <seealso cref="REngineExtension.CreateNumericVector(REngine, double[])"/>
+      public NumericVector(REngine engine, double[] vector)
+         : base(engine, SymbolicExpressionType.NumericVector, vector.Length)
+      {
+         Marshal.Copy(vector, 0, DataPointer, vector.Length);
+      }
 
-               /// <summary>
-               /// Creates a new instance for a numeric vector.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a numeric vector.</param>
-               protected internal NumericVector(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for a numeric vector.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a numeric vector.</param>
+      protected internal NumericVector(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="index">The zero-based index of the element to get or set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override double this[int index]
-               {
-                       get
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       var data = new double[1];
-                                       int offset = GetOffset(index);
-                                       IntPtr pointer = IntPtr.Add(DataPointer, offset);
-                                       Marshal.Copy(pointer, data, 0, data.Length);
-                                       return data[0];
-                               }
-                       }
-                       set
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       var data = new[] { value };
-                                       int offset = GetOffset(index);
-                                       IntPtr pointer = IntPtr.Add(DataPointer, offset);
-                                       Marshal.Copy(data, 0, pointer, data.Length);
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="index">The zero-based index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override double this[int index]
+      {
+         get
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               var data = new double[1];
+               int offset = GetOffset(index);
+               IntPtr pointer = IntPtr.Add(DataPointer, offset);
+               Marshal.Copy(pointer, data, 0, data.Length);
+               return data[0];
+            }
+         }
+         set
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               var data = new[] { value };
+               int offset = GetOffset(index);
+               IntPtr pointer = IntPtr.Add(DataPointer, offset);
+               Marshal.Copy(data, 0, pointer, data.Length);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of a real number in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return sizeof(double); }
-               }
+      protected override double[] GetArrayFast()
+      {
+         var res = new double[this.Length];
+         Marshal.Copy(DataPointer, res, 0, res.Length);
+         return res;
+      }
 
-               /// <summary>
-               /// Copies the elements to the specified array.
-               /// </summary>
-               /// <param name="destination">The destination array.</param>
-               /// <param name="length">The length to copy.</param>
-               /// <param name="sourceIndex">The first index of the vector.</param>
-               /// <param name="destinationIndex">The first index of the destination array.</param>
-               public new void CopyTo(double[] destination, int length, int sourceIndex = 0, int 
destinationIndex = 0)
-               {
-                       if (destination == null)
-                       {
-                               throw new ArgumentNullException("destination");
-                       }
-                       if (length < 0)
-                       {
-                               throw new IndexOutOfRangeException("length");
-                       }
-                       if (sourceIndex < 0 || Length < sourceIndex + length)
-                       {
-                               throw new IndexOutOfRangeException("sourceIndex");
-                       }
-                       if (destinationIndex < 0 || destination.Length < destinationIndex + length)
-                       {
-                               throw new IndexOutOfRangeException("destinationIndex");
-                       }
+      protected override void SetVectorDirect(double[] values)
+      {
+         IntPtr pointer = IntPtr.Add(DataPointer, 0);
+         Marshal.Copy(values, 0, pointer, values.Length);
+      }
 
-                       int offset = GetOffset(sourceIndex);
-                       IntPtr pointer = IntPtr.Add(DataPointer, offset);
-                       Marshal.Copy(pointer, destination, destinationIndex, length);
-               }
-       }
-}
+      /// <summary>
+      /// Gets the size of a real number in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return sizeof(double); }
+      }
+
+      /// <summary>
+      /// Copies the elements to the specified array.
+      /// </summary>
+      /// <param name="destination">The destination array.</param>
+      /// <param name="length">The length to copy.</param>
+      /// <param name="sourceIndex">The first index of the vector.</param>
+      /// <param name="destinationIndex">The first index of the destination array.</param>
+      public new void CopyTo(double[] destination, int length, int sourceIndex = 0, int destinationIndex = 0)
+      {
+         if (destination == null)
+         {
+            throw new ArgumentNullException("destination");
+         }
+         if (length < 0)
+         {
+            throw new IndexOutOfRangeException("length");
+         }
+         if (sourceIndex < 0 || Length < sourceIndex + length)
+         {
+            throw new IndexOutOfRangeException("sourceIndex");
+         }
+         if (destinationIndex < 0 || destination.Length < destinationIndex + length)
+         {
+            throw new IndexOutOfRangeException("destinationIndex");
+         }
+
+         int offset = GetOffset(sourceIndex);
+         IntPtr pointer = IntPtr.Add(DataPointer, offset);
+         Marshal.Copy(pointer, destination, destinationIndex, length);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Pairlist.cs b/rdotnet/R.NET/Pairlist.cs
index 972b223..c7d1178 100644
--- a/rdotnet/R.NET/Pairlist.cs
+++ b/rdotnet/R.NET/Pairlist.cs
@@ -1,51 +1,51 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Runtime.InteropServices;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A pairlist.
-       /// </summary>
-       public class Pairlist : SymbolicExpression, IEnumerable<Symbol>
-       {
-               /// <summary>
-               /// Creates a pairlist.
-               /// </summary>
-               /// <param name="engine">The engine</param>
-               /// <param name="pointer">The pointer.</param>
-               protected internal Pairlist(REngine engine, IntPtr pointer)
-                       : base(engine, pointer)
-               {}
+   /// <summary>
+   /// A pairlist.
+   /// </summary>
+   public class Pairlist : SymbolicExpression, IEnumerable<Symbol>
+   {
+      /// <summary>
+      /// Creates a pairlist.
+      /// </summary>
+      /// <param name="engine">The engine</param>
+      /// <param name="pointer">The pointer.</param>
+      protected internal Pairlist(REngine engine, IntPtr pointer)
+         : base(engine, pointer)
+      { }
 
-               /// <summary>
-               /// Gets the number of nodes.
-               /// </summary>
-               public int Count
-               {
-                       get { return Engine.GetFunction<Rf_length>("Rf_length")(handle); }
-               }
+      /// <summary>
+      /// Gets the number of nodes.
+      /// </summary>
+      public int Count
+      {
+         get { return Engine.GetFunction<Rf_length>()(handle); }
+      }
 
-               #region IEnumerable<Symbol> Members
+      #region IEnumerable<Symbol> Members
 
-               public IEnumerator<Symbol> GetEnumerator()
-               {
-                       if (Count != 0)
-                       {
-                               for (SEXPREC sexp = GetInternalStructure(); sexp.sxpinfo.type != 
SymbolicExpressionType.Null; sexp = (SEXPREC)Marshal.PtrToStructure(sexp.listsxp.cdrval, typeof(SEXPREC)))
-                               {
-                                       yield return new Symbol(Engine, sexp.listsxp.tagval);
-                               }
-                       }
-               }
+      public IEnumerator<Symbol> GetEnumerator()
+      {
+         if (Count != 0)
+         {
+            for (SEXPREC sexp = GetInternalStructure(); sexp.sxpinfo.type != SymbolicExpressionType.Null; 
sexp = (SEXPREC)Marshal.PtrToStructure(sexp.listsxp.cdrval, typeof(SEXPREC)))
+            {
+               yield return new Symbol(Engine, sexp.listsxp.tagval);
+            }
+         }
+      }
 
-               IEnumerator IEnumerable.GetEnumerator()
-               {
-                       return GetEnumerator();
-               }
+      IEnumerator IEnumerable.GetEnumerator()
+      {
+         return GetEnumerator();
+      }
 
-               #endregion
-       }
-}
+      #endregion IEnumerable<Symbol> Members
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/ParseException.cs b/rdotnet/R.NET/ParseException.cs
index 29ba066..24d0f11 100644
--- a/rdotnet/R.NET/ParseException.cs
+++ b/rdotnet/R.NET/ParseException.cs
@@ -1,70 +1,70 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Runtime.Serialization;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// Thrown when an engine comes to an error.
-       /// </summary>
-       [Serializable]
-       public class ParseException : ApplicationException
-       {
-               private const string StatusFieldName = "status";
+   /// <summary>
+   /// Thrown when an engine comes to an error.
+   /// </summary>
+   [Serializable]
+   public class ParseException : ApplicationException
+   {
+      private const string StatusFieldName = "status";
 
-               private const string ErrorStatementFieldName = "errorStatement";
-               private readonly string errorStatement;
-               private readonly ParseStatus status;
+      private const string ErrorStatementFieldName = "errorStatement";
+      private readonly string errorStatement;
+      private readonly ParseStatus status;
 
-               /// <summary>
-               /// Creates a new instance.
-               /// </summary>
-               public ParseException()
-               {
-                       // This does not internally occur. See Parse.h in R_HOME/include/R_ext/Parse.h
-                       this.status = ParseStatus.Null;
-                       this.errorStatement = null;
-               }
+      /// <summary>
+      /// Creates a new instance.
+      /// </summary>
+      public ParseException()
+      {
+         // This does not internally occur. See Parse.h in R_HOME/include/R_ext/Parse.h
+         this.status = ParseStatus.Null;
+         this.errorStatement = null;
+      }
 
-               /// <summary>
-               /// Creates a new instance with the specified error.
-               /// </summary>
-               /// <param name="status">The error.</param>
-               /// <param name="errorStatement">The error statement.</param>
-               public ParseException(ParseStatus status, string errorStatement)
-               {
-                       this.status = status;
-                       this.errorStatement = errorStatement;
-               }
+      /// <summary>
+      /// Creates a new instance with the specified error.
+      /// </summary>
+      /// <param name="status">The error.</param>
+      /// <param name="errorStatement">The error statement.</param>
+      public ParseException(ParseStatus status, string errorStatement)
+      {
+         this.status = status;
+         this.errorStatement = errorStatement;
+      }
 
-               protected ParseException(SerializationInfo info, StreamingContext context)
-                       : base(info, context)
-               {
-                       this.status = (ParseStatus)info.GetValue(StatusFieldName, typeof(ParseStatus));
-                       this.errorStatement = info.GetString(ErrorStatementFieldName);
-               }
+      protected ParseException(SerializationInfo info, StreamingContext context)
+         : base(info, context)
+      {
+         this.status = (ParseStatus)info.GetValue(StatusFieldName, typeof(ParseStatus));
+         this.errorStatement = info.GetString(ErrorStatementFieldName);
+      }
 
-               /// <summary>
-               /// The error.
-               /// </summary>
-               public ParseStatus Status
-               {
-                       get { return this.status; }
-               }
+      /// <summary>
+      /// The error.
+      /// </summary>
+      public ParseStatus Status
+      {
+         get { return this.status; }
+      }
 
-               /// <summary>
-               /// The statement caused the error.
-               /// </summary>
-               public string ErrorStatement
-               {
-                       get { return this.errorStatement; }
-               }
+      /// <summary>
+      /// The statement caused the error.
+      /// </summary>
+      public string ErrorStatement
+      {
+         get { return this.errorStatement; }
+      }
 
-               public override void GetObjectData(SerializationInfo info, StreamingContext context)
-               {
-                       base.GetObjectData(info, context);
-                       info.AddValue(StatusFieldName, this.status);
-                       info.AddValue(ErrorStatementFieldName, this.errorStatement);
-               }
-       }
-}
+      public override void GetObjectData(SerializationInfo info, StreamingContext context)
+      {
+         base.GetObjectData(info, context);
+         info.AddValue(StatusFieldName, this.status);
+         info.AddValue(ErrorStatementFieldName, this.errorStatement);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Properties/AssemblyInfo.cs b/rdotnet/R.NET/Properties/AssemblyInfo.cs
index 2a958f5..da04eda 100644
--- a/rdotnet/R.NET/Properties/AssemblyInfo.cs
+++ b/rdotnet/R.NET/Properties/AssemblyInfo.cs
@@ -1,39 +1,38 @@
 using System.Reflection;
 using System.Runtime.InteropServices;
 
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 
-[assembly : AssemblyTitle("R.NET")]
-[assembly : AssemblyDescription("Collaboration of .NET Framework with R statistical computing")]
-[assembly : AssemblyConfiguration("")]
-[assembly : AssemblyCompany("RecycleBin")]
-[assembly : AssemblyProduct("R.NET")]
-[assembly : AssemblyCopyright("Copyright © RecycleBin 2011")]
-[assembly : AssemblyTrademark("")]
-[assembly : AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
+[assembly: AssemblyTitle("R.NET")]
+[assembly: AssemblyDescription("Collaboration of .NET Framework with R statistical computing")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("RecycleBin")]
+[assembly: AssemblyProduct("R.NET")]
+[assembly: AssemblyCopyright("Copyright © RecycleBin 2011")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
 // COM, set the ComVisible attribute to true on that type.
 
-[assembly : ComVisible(false)]
+[assembly: ComVisible(false)]
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
 
-[assembly : Guid("9ecd1b81-67cd-417a-8b4d-77847c3353d4")]
+[assembly: Guid("9ecd1b81-67cd-417a-8b4d-77847c3353d4")]
 
 // DllVersion information for an assembly consists of the following four values:
 //
 //      Major DllVersion
-//      Minor DllVersion 
+//      Minor DllVersion
 //      Build Number
 //      Revision
 //
-// You can specify all the values or you can default the Build and Revision Numbers 
+// You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-
-[assembly : AssemblyVersion("1.5.0.0")]
-[assembly : AssemblyFileVersion("1.5.0.0")]
+[assembly: AssemblyVersion("1.5.5.0")]
+[assembly: AssemblyInformationalVersion("1.5.5")]
\ No newline at end of file
diff --git a/rdotnet/R.NET/ProtectedPointer.cs b/rdotnet/R.NET/ProtectedPointer.cs
index b8ddc29..bae317c 100644
--- a/rdotnet/R.NET/ProtectedPointer.cs
+++ b/rdotnet/R.NET/ProtectedPointer.cs
@@ -1,43 +1,43 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       internal class ProtectedPointer : IDisposable
-       {
-               private readonly REngine engine;
-               private readonly IntPtr sexp;
-
-               public ProtectedPointer(REngine engine, IntPtr sexp)
-               {
-                       this.sexp = sexp;
-                       this.engine = engine;
-
-                       engine.GetFunction<Rf_protect>("Rf_protect")(this.sexp);
-               }
-
-               public ProtectedPointer(SymbolicExpression sexp)
-               {
-                       this.sexp = sexp.DangerousGetHandle();
-                       this.engine = sexp.Engine;
-
-                       this.engine.GetFunction<Rf_protect>("Rf_protect")(this.sexp);
-               }
-
-               #region IDisposable Members
-
-               public void Dispose()
-               {
-                       this.engine.GetFunction<Rf_unprotect_ptr>("Rf_unprotect_ptr")(this.sexp);
-               }
-
-               #endregion
-
-               public static implicit operator IntPtr(ProtectedPointer p)
-               {
-                       return p.sexp;
-               }
-       }
-}
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   internal class ProtectedPointer : IDisposable
+   {
+      private readonly REngine engine;
+      private readonly IntPtr sexp;
+
+      public ProtectedPointer(REngine engine, IntPtr sexp)
+      {
+         this.sexp = sexp;
+         this.engine = engine;
+
+         engine.GetFunction<Rf_protect>()(this.sexp);
+      }
+
+      public ProtectedPointer(SymbolicExpression sexp)
+      {
+         this.sexp = sexp.DangerousGetHandle();
+         this.engine = sexp.Engine;
+
+         this.engine.GetFunction<Rf_protect>()(this.sexp);
+      }
+
+      #region IDisposable Members
+
+      public void Dispose()
+      {
+         this.engine.GetFunction<Rf_unprotect_ptr>()(this.sexp);
+      }
+
+      #endregion IDisposable Members
+
+      public static implicit operator IntPtr(ProtectedPointer p)
+      {
+         return p.sexp;
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/RDotNet.csproj b/rdotnet/R.NET/RDotNet.csproj
index 4e18f32..4e86625 100644
--- a/rdotnet/R.NET/RDotNet.csproj
+++ b/rdotnet/R.NET/RDotNet.csproj
@@ -21,7 +21,7 @@
     <DefineConstants>TRACE;DEBUG</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <DocumentationFile>bin\Debug\RDotNet.xml</DocumentationFile>
+    <DocumentationFile>bin\Debug\RDotNet.XML</DocumentationFile>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>none</DebugType>
@@ -31,16 +31,7 @@
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <PlatformTarget>AnyCPU</PlatformTarget>
-    <DocumentationFile>bin\Release\RDotNet.xml</DocumentationFile>
-  </PropertyGroup>
-  <PropertyGroup>
-    <SignAssembly>true</SignAssembly>
-  </PropertyGroup>
-  <PropertyGroup>
-    <DelaySign>true</DelaySign>
-  </PropertyGroup>
-  <PropertyGroup>
-    <AssemblyOriginatorKeyFile>..\RecycleBin.snk.pub</AssemblyOriginatorKeyFile>
+    <DocumentationFile>bin\Release\RDotNet.XML</DocumentationFile>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
@@ -58,10 +49,18 @@
     <Compile Include="CharacterMatrix.cs" />
     <Compile Include="ComplexMatrix.cs" />
     <Compile Include="BuiltinFunction.cs" />
+    <Compile Include="DataFrameColumnAttribute.cs" />
+    <Compile Include="DataFrameRowAttribute.cs" />
     <Compile Include="Devices\CharacterDeviceAdapter.cs" />
     <Compile Include="Devices\ConsoleDevice.cs" />
     <Compile Include="Devices\NullCharacterDevice.cs" />
     <Compile Include="Devices\ICharacterDevice.cs" />
+    <Compile Include="Diagnostics\DataFrameDebugView.cs" />
+    <Compile Include="Diagnostics\DataFrameColumnDisplay.cs" />
+    <Compile Include="Diagnostics\FactorDebugView.cs" />
+    <Compile Include="Diagnostics\MatrixDebugView.cs" />
+    <Compile Include="Diagnostics\VectorDebugView.cs" />
+    <Compile Include="Factor.cs" />
     <Compile Include="Internals\Delegates.cs" />
     <Compile Include="Internals\OutputMode.cs" />
     <Compile Include="Internals\Unix\RStart.cs" />
diff --git a/rdotnet/R.NET/REngine.cs b/rdotnet/R.NET/REngine.cs
index 3755ff6..8d7ba76 100644
--- a/rdotnet/R.NET/REngine.cs
+++ b/rdotnet/R.NET/REngine.cs
@@ -1,530 +1,554 @@
-using System;
+using RDotNet.Devices;
+using RDotNet.Internals;
+using RDotNet.NativeLibrary;
+using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
 using System.Text;
-using RDotNet.Devices;
-using RDotNet.Internals;
-using RDotNet.NativeLibrary;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// REngine handles R environment through evaluation of R statement.
-       /// </summary>
-       /// <example>This example generates and outputs five random numbers from standard normal distribution.
-       /// <code>
-       /// Environment.SetEnvironmentVariable("PATH", @"C:\Program Files\R\R-2.12.0\bin\i386");
-       /// using (REngine engine = REngine.CreateInstance("RDotNet"))
-       /// {
-       ///   engine.Initialize();
-       ///     NumericVector random = engine.Evaluate("rnorm(5, 0, 1)").AsNumeric();
-       ///     foreach (double r in random)
-       ///     {
-       ///             Console.Write(r + " ");
-       ///     }
-       /// }
-       /// </code>
-       /// </example>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class REngine : UnmanagedDll
-       {
-               private static readonly ICharacterDevice DefaultDevice = new ConsoleDevice();
-               private static readonly Dictionary<string, REngine> instances = new Dictionary<string, 
REngine>();
-
-               private readonly string id;
-               private CharacterDeviceAdapter adapter;
-               private bool isRunning;
-               private StartupParameter parameter;
-
-               private REngine(string id, string dll)
-                       : base(dll)
-               {
-                       this.id = id;
-                       this.isRunning = false;
-               }
-
-               /// <summary>
-               /// Gets whether this instance is running.
-               /// </summary>
-               public bool IsRunning
-               {
-                       get { return this.isRunning; }
-               }
-
-               /// <summary>
-               /// Gets the version of R.DLL.
-               /// </summary>
-               public string DllVersion
-               {
-                       get
-                       {
-                               // As R's version definitions are defined in #define preprocessor,
-                               // C# cannot access them dynamically.
-                               // But, on Win32 platform, we can get the version string via getDLLVersion 
function.
-                               if (Environment.OSVersion.Platform != PlatformID.Win32NT)
-                               {
-                                       throw new NotImplementedException();
-                               }
-                               var getVersion = GetFunction<_getDLLVersion>("getDLLVersion");
-                               return Marshal.PtrToStringAnsi(getVersion());
-                       }
-               }
-
-               /// <summary>
-               /// Gets the ID of this instance.
-               /// </summary>
-               public string ID
-               {
-                       get { return this.id; }
-               }
-
-               /// <summary>
-               /// Gets the global environment.
-               /// </summary>
-               public REnvironment GlobalEnvironment
-               {
-                       get
-                       {
-                               if (!IsRunning)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               return GetPredefinedSymbol("R_GlobalEnv").AsEnvironment();
-                       }
-               }
-
-               /// <summary>
-               /// Gets the root environment.
-               /// </summary>
-               public REnvironment EmptyEnvironment
-               {
-                       get
-                       {
-                               if (!IsRunning)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               return GetPredefinedSymbol("R_EmptyEnv").AsEnvironment();
-                       }
-               }
-
-               /// <summary>
-               /// Gets the base environment.
-               /// </summary>
-               public REnvironment BaseNamespace
-               {
-                       get
-                       {
-                               if (!IsRunning)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               return GetPredefinedSymbol("R_BaseNamespace").AsEnvironment();
-                       }
-               }
-
-               /// <summary>
-               /// Gets the <c>NULL</c> value.
-               /// </summary>
-               public SymbolicExpression NilValue
-               {
-                       get
-                       {
-                               if (!IsRunning)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               return GetPredefinedSymbol("R_NilValue");
-                       }
-               }
-
-               /// <summary>
-               /// Gets the unbound value.
-               /// </summary>
-               public SymbolicExpression UnboundValue
-               {
-                       get
-                       {
-                               if (!IsRunning)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               return GetPredefinedSymbol("R_UnboundValue");
-                       }
-               }
-
-               /// <summary>
-               /// Creates a new instance that handles R.DLL.
-               /// </summary>
-               /// <param name="id">ID.</param>
-               /// <param name="dll">The core dll of R.</param>
-               /// <returns>The engine.</returns>
-               public static REngine CreateInstance(string id, string dll = null)
-               {
-                       if (id == null)
-                       {
-                               throw new ArgumentNullException("id", "Empty ID is not allowed.");
-                       }
-                       if (id == string.Empty)
-                       {
-                               throw new ArgumentException("Empty ID is not allowed.", "id");
-                       }
-                       if (instances.ContainsKey(id))
-                       {
-                               throw new ArgumentException();
-                       }
-                       if (dll == null)
-                       {
-                               switch (NativeUtility.GetPlatform())
-                               {
-                                       case PlatformID.Win32NT:
-                                               dll = "R.dll";
-                                               break;
-                                       case PlatformID.MacOSX:
-                                               dll = "libR.dylib";
-                                               break;
-                                       case PlatformID.Unix:
-                                               dll = "libR.so";
-                                               break;
-                                       default:
-                                               throw new NotSupportedException();
-                               }
-                       }
-                       var engine = new REngine(id, dll);
-                       instances.Add(id, engine);
-                       return engine;
-               }
-
-               /// <summary>
-               /// Gets an instance specified in the given ID.
-               /// </summary>
-               /// <param name="id">ID.</param>
-               /// <returns>The engine.</returns>
-               public static REngine GetInstanceFromID(string id)
-               {
-                       REngine engine;
-                       instances.TryGetValue(id, out engine);
-                       return engine;
-               }
-
-               /// <summary>
-               /// Initializes R process.
-               /// </summary>
-               /// <param name="parameter">The startup parameter.</param>
-               /// <param name="device">The IO device.</param>
-               public void Initialize(StartupParameter parameter = null, ICharacterDevice device = null)
-               {
-                       this.parameter = parameter ?? new StartupParameter();
-                       this.adapter = new CharacterDeviceAdapter(device ?? DefaultDevice);
-                       GetFunction<R_setStartTime>("R_setStartTime")();
-                       ///GetFunction<Rf_initialize_R>("Rf_initialize_R")(1, new[] { ID });
-                       GetFunction<Rf_initialize_R>("Rf_initialize_R")(3, new[] { ID, "--quiet", "--vanilla" 
}); 
-                       this.adapter.Install(this, this.parameter);
-                       switch (Environment.OSVersion.Platform)
-                       {
-                               case PlatformID.Win32NT:
-                                       GetFunction<R_SetParams_Windows>("R_SetParams")(ref 
this.parameter.start);
-                                       break;
-                               case PlatformID.MacOSX:
-                               case PlatformID.Unix:
-                                       GetFunction<R_SetParams_Unix>("R_SetParams")(ref 
this.parameter.start.Common);
-                                       break;
-                       }
-                       GetFunction<setup_Rmainloop>("setup_Rmainloop")();
-                       this.isRunning = true;
-               }
-
-               /// <summary>
-               /// Forces garbage collection.
-               /// </summary>
-               public void ForceGarbageCollection()
-               {
-                       GetFunction<R_gc>("R_gc")();
-               }
-
-               /// <summary>
-               /// Gets a symbol defined in the global environment.
-               /// </summary>
-               /// <param name="name">The name.</param>
-               /// <returns>The symbol.</returns>
-               public SymbolicExpression GetSymbol(string name)
-               {
-                       if (!IsRunning)
-                       {
-                               throw new InvalidOperationException();
-                       }
-                       return GlobalEnvironment.GetSymbol(name);
-               }
-
-               /// <summary>
-               /// Gets a symbol defined in the global environment.
-               /// </summary>
-               /// <param name="name">The name.</param>
-               /// <param name="environment">The environment. If <c>null</c> is passed, <see 
cref="GlobalEnvironment"/> is used.</param>
-               /// <returns>The symbol.</returns>
-               public SymbolicExpression GetSymbol(string name, REnvironment environment)
-               {
-                       if (!IsRunning)
-                       {
-                               throw new InvalidOperationException();
-                       }
-                       if (environment == null)
-                       {
-                               environment = GlobalEnvironment;
-                       }
-                       return environment.GetSymbol(name);
-               }
-
-               /// <summary>
-               /// Defines a symbol in the global environment.
-               /// </summary>
-               /// <param name="name">The name.</param>
-               /// <param name="expression">The symbol.</param>
-               public void SetSymbol(string name, SymbolicExpression expression)
-               {
-                       if (!IsRunning)
-                       {
-                               throw new InvalidOperationException();
-                       }
-                       GlobalEnvironment.SetSymbol(name, expression);
-               }
-
-               /// <summary>
-               /// Defines a symbol in the specified environment.
-               /// </summary>
-               /// <param name="name">The name.</param>
-               /// <param name="expression">The symbol.</param>
-               /// <param name="environment">The environment. If <c>null</c> is passed, <see 
cref="GlobalEnvironment"/> is used.</param>
-               public void SetSymbol(string name, SymbolicExpression expression, REnvironment environment)
-               {
-                       if (!IsRunning)
-                       {
-                               throw new InvalidOperationException();
-                       }
-                       if (environment == null)
-                       {
-                               environment = GlobalEnvironment;
-                       }
-                       environment.SetSymbol(name, expression);
-               }
-
-               /// <summary>
-               /// Evaluates a statement in the given string.
-               /// </summary>
-               /// <param name="statement">The statement.</param>
-               /// <returns>Last evaluation.</returns>
-               public SymbolicExpression Evaluate(string statement)
-               {
-                       if (!IsRunning)
-                       {
-                               throw new InvalidOperationException();
-                       }
-                       return Defer(statement).LastOrDefault();
-               }
-
-               /// <summary>
-               /// Evaluates a statement in the given stream.
-               /// </summary>
-               /// <param name="stream">The stream.</param>
-               /// <returns>Last evaluation.</returns>
-               public SymbolicExpression Evaluate(Stream stream)
-               {
-                       if (!IsRunning)
-                       {
-                               throw new InvalidOperationException();
-                       }
-                       return Defer(stream).LastOrDefault();
-               }
-
-               /// <summary>
-               /// Evaluates a statement in the given string.
-               /// </summary>
-               /// <param name="statement">The statement.</param>
-               /// <returns>Each evaluation.</returns>
-               private IEnumerable<SymbolicExpression> Defer(string statement)
-               {
-                       if (!IsRunning)
-                       {
-                               throw new InvalidOperationException();
-                       }
-                       if (statement == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-
-                       using (TextReader reader = new StringReader(statement))
-                       {
-                               var incompleteStatement = new StringBuilder();
-                               string line;
-                               while ((line = reader.ReadLine()) != null)
-                               {
-                                       foreach (string segment in Segment(line))
-                                       {
-                                               SymbolicExpression result = Parse(segment, 
incompleteStatement);
-                                               if (result != null)
-                                               {
-                                                       yield return result;
-                                               }
-                                       }
-                               }
-                       }
-               }
-
-               /// <summary>
-               /// Evaluates a statement in the given stream.
-               /// </summary>
-               /// <param name="stream">The stream.</param>
-               /// <returns>Each evaluation.</returns>
-               public IEnumerable<SymbolicExpression> Defer(Stream stream)
-               {
-                       if (!IsRunning)
-                       {
-                               throw new InvalidOperationException();
-                       }
-                       if (stream == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!stream.CanRead)
-                       {
-                               throw new ArgumentException();
-                       }
-
-                       using (TextReader reader = new StreamReader(stream))
-                       {
-                               var incompleteStatement = new StringBuilder();
-                               string line;
-                               while ((line = reader.ReadLine()) != null)
-                               {
-                                       foreach (string segment in Segment(line))
-                                       {
-                                               SymbolicExpression result = Parse(segment, 
incompleteStatement);
-                                               if (result != null)
-                                               {
-                                                       yield return result;
-                                               }
-                                       }
-                               }
-                       }
-               }
-
-               private static IEnumerable<string> Segment(string line)
-               {
-                       string[] segments = line.Split(';');
-                       for (int index = 0; index < segments.Length; index++)
-                       {
-                               if (index == segments.Length - 1)
-                               {
-                                       if (segments[index] != string.Empty)
-                                       {
-                                               yield return segments[index];
-                                       }
-                               }
-                               else
-                               {
-                                       yield return segments[index] + ";";
-                               }
-                       }
-               }
-
-               private SymbolicExpression Parse(string statement, StringBuilder incompleteStatement)
-               {
-                       incompleteStatement.Append(statement);
-                       IntPtr s = GetFunction<Rf_mkString>("Rf_mkString")(incompleteStatement.ToString());
-
-                       using (new ProtectedPointer(this, s))
-                       {
-                               ParseStatus status;
-                               var vector = new ExpressionVector(this, 
GetFunction<R_ParseVector>("R_ParseVector")(s, -1, out status, NilValue.DangerousGetHandle()));
-                               if (vector.Length == 0)
-                               {
-                                       return null;
-                               }
-
-                               switch (status)
-                               {
-                                       case ParseStatus.OK:
-                                               incompleteStatement.Clear();
-                                               using (new ProtectedPointer(vector))
-                                               {
-                                                       SymbolicExpression result;
-                                                       if (!vector.First().TryEvaluate(GlobalEnvironment, 
out result))
-                                                       {
-                                                               throw new ParseException();
-                                                       }
-                                                       return result;
-                                               }
-                                       case ParseStatus.Incomplete:
-                                               return null;
-                                       default:
-                                               string errorStatement = incompleteStatement.ToString();
-                                               incompleteStatement.Clear();
-                                               throw new ParseException(status, errorStatement);
-                               }
-                       }
-               }
-
-               /// <summary>
-               /// Sets the command line arguments.
-               /// </summary>
-               /// <param name="args">The arguments.</param>
-               public void SetCommandLineArguments(string[] args)
-               {
-                       if (!IsRunning)
-                       {
-                               throw new InvalidOperationException();
-                       }
-                       string[] newArgs = Utility.AddFirst(ID, args);
-                       
GetFunction<R_set_command_line_arguments>("R_set_command_line_arguments")(newArgs.Length, newArgs);
-               }
-
-               protected override void Dispose(bool disposing)
-               {
-                       this.isRunning = false;
-                       instances.Remove(ID);
-                       if (disposing)
-                       {
-                               GetFunction<Rf_endEmbeddedR>("Rf_endEmbeddedR")(0);
-                       }
-                       if (this.adapter != null)
-                       {
-                               this.adapter.Dispose();
-                               this.adapter = null;
-                       }
-                       GC.KeepAlive(this.parameter);
-                       base.Dispose(disposing);
-               }
-
-               /// <summary>
-               /// Gets the predefined symbol with the specified name.
-               /// </summary>
-               /// <param name="name">The name.</param>
-               /// <returns>The symbol.</returns>
-               public SymbolicExpression GetPredefinedSymbol(string name)
-               {
-                       if (!IsRunning)
-                       {
-                               throw new InvalidOperationException();
-                       }
-                       try
-                       {
-                               IntPtr pointer = DangerousGetHandle(name);
-                               return new SymbolicExpression(this, Marshal.ReadIntPtr(pointer));
-                       }
-                       catch (Exception ex)
-                       {
-                               throw new ArgumentException(null, ex);
-                       }
-               }
-
-               #region Nested type: _getDLLVersion
-
-               [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-               private delegate IntPtr _getDLLVersion();
-
-               #endregion
-       }
-}
+   /// <summary>
+   /// REngine handles R environment through evaluation of R statement.
+   /// </summary>
+   /// <example>This example generates and outputs five random numbers from standard normal distribution.
+   /// <code>
+   /// Environment.SetEnvironmentVariable("PATH", @"C:\Program Files\R\R-2.12.0\bin\i386");
+   /// using (REngine engine = REngine.CreateInstance("RDotNet"))
+   /// {
+   ///   engine.Initialize();
+   ///   NumericVector random = engine.Evaluate("rnorm(5, 0, 1)").AsNumeric();
+   ///   foreach (double r in random)
+   ///   {
+   ///     Console.Write(r + " ");
+   ///   }
+   /// }
+   /// </code>
+   /// </example>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class REngine : UnmanagedDll
+   {
+      private static readonly ICharacterDevice DefaultDevice = new ConsoleDevice();
+      private static readonly Dictionary<string, REngine> instances = new Dictionary<string, REngine>();
+
+      private readonly string id;
+      private CharacterDeviceAdapter adapter;
+      private bool isRunning;
+      private StartupParameter parameter;
+
+      private REngine(string id, string dll)
+         : base(dll)
+      {
+         this.id = id;
+         this.isRunning = false;
+      }
+
+      /// <summary>
+      /// Gets whether this instance is running.
+      /// </summary>
+      public bool IsRunning
+      {
+         get { return this.isRunning; }
+      }
+
+      /// <summary>
+      /// Gets the version of R.DLL.
+      /// </summary>
+      public string DllVersion
+      {
+         get
+         {
+            // As R's version definitions are defined in #define preprocessor,
+            // C# cannot access them dynamically.
+            // But, on Win32 platform, we can get the version string via getDLLVersion function.
+            if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+            {
+               throw new NotImplementedException();
+            }
+            var getVersion = GetFunction<_getDLLVersion>("getDLLVersion");
+            return Marshal.PtrToStringAnsi(getVersion());
+         }
+      }
+
+      /// <summary>
+      /// Gets the ID of this instance.
+      /// </summary>
+      public string ID
+      {
+         get { return this.id; }
+      }
+
+      /// <summary>
+      /// Gets the global environment.
+      /// </summary>
+      public REnvironment GlobalEnvironment
+      {
+         get
+         {
+            if (!IsRunning)
+            {
+               throw new InvalidOperationException();
+            }
+            return GetPredefinedSymbol("R_GlobalEnv").AsEnvironment();
+         }
+      }
+
+      /// <summary>
+      /// Gets the root environment.
+      /// </summary>
+      public REnvironment EmptyEnvironment
+      {
+         get
+         {
+            if (!IsRunning)
+            {
+               throw new InvalidOperationException();
+            }
+            return GetPredefinedSymbol("R_EmptyEnv").AsEnvironment();
+         }
+      }
+
+      /// <summary>
+      /// Gets the base environment.
+      /// </summary>
+      public REnvironment BaseNamespace
+      {
+         get
+         {
+            if (!IsRunning)
+            {
+               throw new InvalidOperationException();
+            }
+            return GetPredefinedSymbol("R_BaseNamespace").AsEnvironment();
+         }
+      }
+
+      /// <summary>
+      /// Gets the <c>NULL</c> value.
+      /// </summary>
+      public SymbolicExpression NilValue
+      {
+         get
+         {
+            if (!IsRunning)
+            {
+               throw new InvalidOperationException();
+            }
+            return GetPredefinedSymbol("R_NilValue");
+         }
+      }
+
+      /// <summary>
+      /// Gets the unbound value.
+      /// </summary>
+      public SymbolicExpression UnboundValue
+      {
+         get
+         {
+            if (!IsRunning)
+            {
+               throw new InvalidOperationException();
+            }
+            return GetPredefinedSymbol("R_UnboundValue");
+         }
+      }
+
+      /// <summary>
+      /// Creates a new instance that handles R.DLL.
+      /// </summary>
+      /// <param name="id">ID.</param>
+      /// <param name="dll">The core dll of R.</param>
+      /// <returns>The engine.</returns>
+      public static REngine CreateInstance(string id, string dll = null)
+      {
+         if (id == null)
+         {
+            throw new ArgumentNullException("id", "Empty ID is not allowed.");
+         }
+         if (id == string.Empty)
+         {
+            throw new ArgumentException("Empty ID is not allowed.", "id");
+         }
+         if (instances.ContainsKey(id))
+         {
+            throw new ArgumentException();
+         }
+         if (dll == null)
+         {
+            switch (NativeUtility.GetPlatform())
+            {
+               case PlatformID.Win32NT:
+                  dll = "R.dll";
+                  break;
+
+               case PlatformID.MacOSX:
+                  dll = "libR.dylib";
+                  break;
+
+               case PlatformID.Unix:
+                  dll = "libR.so";
+                  break;
+
+               default:
+                  throw new NotSupportedException();
+            }
+         }
+         var engine = new REngine(id, dll);
+         instances.Add(id, engine);
+         return engine;
+      }
+
+      /// <summary>
+      /// Gets an instance specified in the given ID.
+      /// </summary>
+      /// <param name="id">ID.</param>
+      /// <returns>The engine.</returns>
+      public static REngine GetInstanceFromID(string id)
+      {
+         REngine engine;
+         instances.TryGetValue(id, out engine);
+         return engine;
+      }
+
+      /// <summary>
+      /// Initializes R process.
+      /// </summary>
+      /// <param name="parameter">The startup parameter.</param>
+      /// <param name="device">The IO device.</param>
+      public void Initialize(StartupParameter parameter = null, ICharacterDevice device = null)
+      {
+         this.parameter = parameter ?? new StartupParameter();
+         this.adapter = new CharacterDeviceAdapter(device ?? DefaultDevice);
+         GetFunction<R_setStartTime>()();
+         GetFunction<Rf_initialize_R>()(1, new[] { ID });
+         this.adapter.Install(this, this.parameter);
+         switch (Environment.OSVersion.Platform)
+         {
+            case PlatformID.Win32NT:
+               GetFunction<R_SetParams_Windows>("R_SetParams")(ref this.parameter.start);
+               break;
+
+            case PlatformID.MacOSX:
+            case PlatformID.Unix:
+               GetFunction<R_SetParams_Unix>("R_SetParams")(ref this.parameter.start.Common);
+               break;
+         }
+         GetFunction<setup_Rmainloop>()();
+         this.isRunning = true;
+      }
+
+      /// <summary>
+      /// Forces garbage collection.
+      /// </summary>
+      public void ForceGarbageCollection()
+      {
+         GetFunction<R_gc>()();
+      }
+
+      /// <summary>
+      /// Gets a symbol defined in the global environment.
+      /// </summary>
+      /// <param name="name">The name.</param>
+      /// <returns>The symbol.</returns>
+      public SymbolicExpression GetSymbol(string name)
+      {
+         if (!IsRunning)
+         {
+            throw new InvalidOperationException();
+         }
+         return GlobalEnvironment.GetSymbol(name);
+      }
+
+      /// <summary>
+      /// Gets a symbol defined in the global environment.
+      /// </summary>
+      /// <param name="name">The name.</param>
+      /// <param name="environment">The environment. If <c>null</c> is passed, <see 
cref="GlobalEnvironment"/> is used.</param>
+      /// <returns>The symbol.</returns>
+      public SymbolicExpression GetSymbol(string name, REnvironment environment)
+      {
+         if (!IsRunning)
+         {
+            throw new InvalidOperationException();
+         }
+         if (environment == null)
+         {
+            environment = GlobalEnvironment;
+         }
+         return environment.GetSymbol(name);
+      }
+
+      /// <summary>
+      /// Defines a symbol in the global environment.
+      /// </summary>
+      /// <param name="name">The name.</param>
+      /// <param name="expression">The symbol.</param>
+      public void SetSymbol(string name, SymbolicExpression expression)
+      {
+         if (!IsRunning)
+         {
+            throw new InvalidOperationException();
+         }
+         GlobalEnvironment.SetSymbol(name, expression);
+      }
+
+      /// <summary>
+      /// Defines a symbol in the specified environment.
+      /// </summary>
+      /// <param name="name">The name.</param>
+      /// <param name="expression">The symbol.</param>
+      /// <param name="environment">The environment. If <c>null</c> is passed, <see 
cref="GlobalEnvironment"/> is used.</param>
+      public void SetSymbol(string name, SymbolicExpression expression, REnvironment environment)
+      {
+         if (!IsRunning)
+         {
+            throw new InvalidOperationException();
+         }
+         if (environment == null)
+         {
+            environment = GlobalEnvironment;
+         }
+         environment.SetSymbol(name, expression);
+      }
+
+      /// <summary>
+      /// Evaluates a statement in the given string.
+      /// </summary>
+      /// <param name="statement">The statement.</param>
+      /// <returns>Last evaluation.</returns>
+      public SymbolicExpression Evaluate(string statement)
+      {
+         if (!IsRunning)
+         {
+            throw new InvalidOperationException();
+         }
+         return Defer(statement).LastOrDefault();
+      }
+
+      /// <summary>
+      /// Evaluates a statement in the given stream.
+      /// </summary>
+      /// <param name="stream">The stream.</param>
+      /// <returns>Last evaluation.</returns>
+      public SymbolicExpression Evaluate(Stream stream)
+      {
+         if (!IsRunning)
+         {
+            throw new InvalidOperationException();
+         }
+         return Defer(stream).LastOrDefault();
+      }
+
+      /// <summary>
+      /// Evaluates a statement in the given string.
+      /// </summary>
+      /// <param name="statement">The statement.</param>
+      /// <returns>Each evaluation.</returns>
+      private IEnumerable<SymbolicExpression> Defer(string statement)
+      {
+         if (!IsRunning)
+         {
+            throw new InvalidOperationException();
+         }
+         if (statement == null)
+         {
+            throw new ArgumentNullException();
+         }
+
+         using (TextReader reader = new StringReader(statement))
+         {
+            var incompleteStatement = new StringBuilder();
+            string line;
+            while ((line = reader.ReadLine()) != null)
+            {
+               foreach (var segment in Segment(line))
+               {
+                  var result = Parse(segment, incompleteStatement);
+                  if (result != null)
+                  {
+                     yield return result;
+                  }
+               }
+            }
+         }
+      }
+
+      /// <summary>
+      /// Evaluates a statement in the given stream.
+      /// </summary>
+      /// <param name="stream">The stream.</param>
+      /// <returns>Each evaluation.</returns>
+      public IEnumerable<SymbolicExpression> Defer(Stream stream)
+      {
+         if (!IsRunning)
+         {
+            throw new InvalidOperationException();
+         }
+         if (stream == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!stream.CanRead)
+         {
+            throw new ArgumentException();
+         }
+
+         using (TextReader reader = new StreamReader(stream))
+         {
+            var incompleteStatement = new StringBuilder();
+            string line;
+            while ((line = reader.ReadLine()) != null)
+            {
+               foreach (var segment in Segment(line))
+               {
+                  var result = Parse(segment, incompleteStatement);
+                  if (result != null)
+                  {
+                     yield return result;
+                  }
+               }
+            }
+         }
+      }
+
+      private static IEnumerable<string> Segment(string line)
+      {
+         var segments = line.Split(';');
+         for (var index = 0; index < segments.Length; index++)
+         {
+            if (index == segments.Length - 1)
+            {
+               if (segments[index] != string.Empty)
+               {
+                  yield return segments[index] + "\n";
+               }
+            }
+            else
+            {
+               yield return segments[index] + ";";
+            }
+         }
+      }
+
+      private SymbolicExpression Parse(string statement, StringBuilder incompleteStatement)
+      {
+         incompleteStatement.Append(statement);
+         var s = GetFunction<Rf_mkString>()(incompleteStatement.ToString());
+
+         using (new ProtectedPointer(this, s))
+         {
+            ParseStatus status;
+            var vector = new ExpressionVector(this, GetFunction<R_ParseVector>()(s, -1, out status, 
NilValue.DangerousGetHandle()));
+            if (vector.Length == 0)
+            {
+               return null;
+            }
+
+            switch (status)
+            {
+               case ParseStatus.OK:
+                  incompleteStatement.Clear();
+                  using (new ProtectedPointer(vector))
+                  {
+                     SymbolicExpression result;
+                     if (!vector.First().TryEvaluate(GlobalEnvironment, out result))
+                     {
+                        throw new ParseException();
+                     }
+                     return result;
+                  }
+               case ParseStatus.Incomplete:
+                  return null;
+
+               default:
+                  var errorStatement = incompleteStatement.ToString();
+                  incompleteStatement.Clear();
+                  throw new ParseException(status, errorStatement);
+            }
+         }
+      }
+
+      /// <summary>
+      /// Sets the command line arguments.
+      /// </summary>
+      /// <param name="args">The arguments.</param>
+      public void SetCommandLineArguments(string[] args)
+      {
+         if (!IsRunning)
+         {
+            throw new InvalidOperationException();
+         }
+         var newArgs = Utility.AddFirst(ID, args);
+         GetFunction<R_set_command_line_arguments>()(newArgs.Length, newArgs);
+      }
+
+      public event EventHandler Disposing;
+
+      protected virtual void OnDisposing(EventArgs e)
+      {
+         if (Disposing != null)
+         {
+            Disposing(this, e);
+         }
+      }
+
+      protected override void Dispose(bool disposing)
+      {
+         if (isRunning)
+         {
+            this.isRunning = false;
+            instances.Remove(ID);
+         }
+         OnDisposing(EventArgs.Empty);
+         if (disposing)
+         {
+            GetFunction<R_RunExitFinalizers>()();
+            GetFunction<Rf_CleanEd>()();
+            GetFunction<R_CleanTempDir>()();
+         }
+         this.isRunning = false;
+
+         if (disposing && this.adapter != null)
+         {
+            this.adapter.Dispose();
+            this.adapter = null;
+         }
+
+         // Why is this here?
+         GC.KeepAlive(this.parameter);
+         base.Dispose(disposing);
+      }
+
+      /// <summary>
+      /// Gets the predefined symbol with the specified name.
+      /// </summary>
+      /// <param name="name">The name.</param>
+      /// <returns>The symbol.</returns>
+      public SymbolicExpression GetPredefinedSymbol(string name)
+      {
+         if (!IsRunning)
+         {
+            throw new InvalidOperationException();
+         }
+         try
+         {
+            var pointer = DangerousGetHandle(name);
+            return new SymbolicExpression(this, Marshal.ReadIntPtr(pointer));
+         }
+         catch (Exception ex)
+         {
+            throw new ArgumentException(null, ex);
+         }
+      }
+
+      #region Nested type: _getDLLVersion
+
+      [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+      private delegate IntPtr _getDLLVersion();
+
+      #endregion Nested type: _getDLLVersion
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/REngineExtension.cs b/rdotnet/R.NET/REngineExtension.cs
index cdeae31..0b504e0 100644
--- a/rdotnet/R.NET/REngineExtension.cs
+++ b/rdotnet/R.NET/REngineExtension.cs
@@ -1,474 +1,517 @@
+using RDotNet.Internals;
 using System;
 using System.Collections.Generic;
 using System.Numerics;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// Provides extension methods for <see cref="REngine"/>.
-       /// </summary>
-       public static class REngineExtension
-       {
-               /// <summary>
-               /// Creates a new empty CharacterVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="length">The length.</param>
-               /// <returns>The new vector.</returns>
-               public static CharacterVector CreateCharacterVector(this REngine engine, int length)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new CharacterVector(engine, length);
-               }
+   /// <summary>
+   /// Provides extension methods for <see cref="REngine"/>.
+   /// </summary>
+   public static class REngineExtension
+   {
+      /// <summary>
+      /// Creates a new empty CharacterVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="length">The length.</param>
+      /// <returns>The new vector.</returns>
+      public static CharacterVector CreateCharacterVector(this REngine engine, int length)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new CharacterVector(engine, length);
+      }
 
-               /// <summary>
-               /// Creates a new empty ComplexVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="length">The length.</param>
-               /// <returns>The new vector.</returns>
-               public static ComplexVector CreateComplexVector(this REngine engine, int length)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new ComplexVector(engine, length);
-               }
+      /// <summary>
+      /// Creates a new empty ComplexVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="length">The length.</param>
+      /// <returns>The new vector.</returns>
+      public static ComplexVector CreateComplexVector(this REngine engine, int length)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new ComplexVector(engine, length);
+      }
 
-               /// <summary>
-               /// Creates a new empty IntegerVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="length">The length.</param>
-               /// <returns>The new vector.</returns>
-               public static IntegerVector CreateIntegerVector(this REngine engine, int length)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new IntegerVector(engine, length);
-               }
+      /// <summary>
+      /// Creates a new empty IntegerVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="length">The length.</param>
+      /// <returns>The new vector.</returns>
+      public static IntegerVector CreateIntegerVector(this REngine engine, int length)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new IntegerVector(engine, length);
+      }
 
-               /// <summary>
-               /// Creates a new empty LogicalVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="length">The length.</param>
-               /// <returns>The new vector.</returns>
-               public static LogicalVector CreateLogicalVector(this REngine engine, int length)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new LogicalVector(engine, length);
-               }
+      /// <summary>
+      /// Creates a new empty LogicalVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="length">The length.</param>
+      /// <returns>The new vector.</returns>
+      public static LogicalVector CreateLogicalVector(this REngine engine, int length)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new LogicalVector(engine, length);
+      }
 
-               /// <summary>
-               /// Creates a new empty NumericVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="length">The length.</param>
-               /// <returns>The new vector.</returns>
-               public static NumericVector CreateNumericVector(this REngine engine, int length)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new NumericVector(engine, length);
-               }
+      /// <summary>
+      /// Creates a new empty NumericVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="length">The length.</param>
+      /// <returns>The new vector.</returns>
+      public static NumericVector CreateNumericVector(this REngine engine, int length)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new NumericVector(engine, length);
+      }
 
-               /// <summary>
-               /// Creates a new empty RawVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="length">The length.</param>
-               /// <returns>The new vector.</returns>
-               public static RawVector CreateRawVector(this REngine engine, int length)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new RawVector(engine, length);
-               }
+      /// <summary>
+      /// Creates a new empty RawVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="length">The length.</param>
+      /// <returns>The new vector.</returns>
+      public static RawVector CreateRawVector(this REngine engine, int length)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new RawVector(engine, length);
+      }
 
-               /// <summary>
-               /// Creates a new CharacterVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="vector">The values.</param>
-               /// <returns>The new vector.</returns>
-               public static CharacterVector CreateCharacterVector(this REngine engine, IEnumerable<string> 
vector)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new CharacterVector(engine, vector);
-               }
+      /// <summary>
+      /// Creates a new CharacterVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="vector">The values.</param>
+      /// <returns>The new vector.</returns>
+      public static CharacterVector CreateCharacterVector(this REngine engine, IEnumerable<string> vector)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new CharacterVector(engine, vector);
+      }
 
-               /// <summary>
-               /// Creates a new ComplexVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="vector">The values.</param>
-               /// <returns>The new vector.</returns>
-               public static ComplexVector CreateComplexVector(this REngine engine, IEnumerable<Complex> 
vector)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new ComplexVector(engine, vector);
-               }
+      /// <summary>
+      /// Creates a new ComplexVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="vector">The values.</param>
+      /// <returns>The new vector.</returns>
+      public static ComplexVector CreateComplexVector(this REngine engine, IEnumerable<Complex> vector)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new ComplexVector(engine, vector);
+      }
 
-               /// <summary>
-               /// Creates a new IntegerVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="vector">The values.</param>
-               /// <returns>The new vector.</returns>
-               public static IntegerVector CreateIntegerVector(this REngine engine, IEnumerable<int> vector)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new IntegerVector(engine, vector);
-               }
+      /// <summary>
+      /// Creates a new IntegerVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="vector">The values.</param>
+      /// <returns>The new vector.</returns>
+      public static IntegerVector CreateIntegerVector(this REngine engine, IEnumerable<int> vector)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new IntegerVector(engine, vector);
+      }
 
-               /// <summary>
-               /// Creates a new LogicalVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="vector">The values.</param>
-               /// <returns>The new vector.</returns>
-               public static LogicalVector CreateLogicalVector(this REngine engine, IEnumerable<bool> vector)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new LogicalVector(engine, vector);
-               }
+      /// <summary>
+      /// Creates a new LogicalVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="vector">The values.</param>
+      /// <returns>The new vector.</returns>
+      public static LogicalVector CreateLogicalVector(this REngine engine, IEnumerable<bool> vector)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new LogicalVector(engine, vector);
+      }
 
-               /// <summary>
-               /// Creates a new NumericVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="vector">The values.</param>
-               /// <returns>The new vector.</returns>
-               public static NumericVector CreateNumericVector(this REngine engine, IEnumerable<double> 
vector)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new NumericVector(engine, vector);
-               }
+      /// <summary>
+      /// Creates a new NumericVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="vector">The values.</param>
+      /// <returns>The new vector.</returns>
+      public static NumericVector CreateNumericVector(this REngine engine, IEnumerable<double> vector)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new NumericVector(engine, vector);
+      }
 
-               /// <summary>
-               /// Creates a new RawVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="vector">The values.</param>
-               /// <returns>The new vector.</returns>
-               public static RawVector CreateRawVector(this REngine engine, IEnumerable<byte> vector)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new RawVector(engine, vector);
-               }
+      /// <summary>
+      /// Creates a new RawVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="vector">The values.</param>
+      /// <returns>The new vector.</returns>
+      public static RawVector CreateRawVector(this REngine engine, IEnumerable<byte> vector)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new RawVector(engine, vector);
+      }
 
-               /// <summary>
-               /// Creates a new empty CharacterMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <returns>The new matrix.</returns>
-               public static CharacterMatrix CreateCharacterMatrix(this REngine engine, int rowCount, int 
columnCount)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new CharacterMatrix(engine, rowCount, columnCount);
-               }
+      /// <summary>
+      /// Creates a new empty CharacterMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <returns>The new matrix.</returns>
+      public static CharacterMatrix CreateCharacterMatrix(this REngine engine, int rowCount, int columnCount)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new CharacterMatrix(engine, rowCount, columnCount);
+      }
 
-               /// <summary>
-               /// Creates a new empty ComplexMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <returns>The new matrix.</returns>
-               public static ComplexMatrix CreateComplexMatrix(this REngine engine, int rowCount, int 
columnCount)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new ComplexMatrix(engine, rowCount, columnCount);
-               }
+      /// <summary>
+      /// Creates a new empty ComplexMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <returns>The new matrix.</returns>
+      public static ComplexMatrix CreateComplexMatrix(this REngine engine, int rowCount, int columnCount)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new ComplexMatrix(engine, rowCount, columnCount);
+      }
 
-               /// <summary>
-               /// Creates a new empty IntegerMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <returns>The new matrix.</returns>
-               public static IntegerMatrix CreateIntegerMatrix(this REngine engine, int rowCount, int 
columnCount)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new IntegerMatrix(engine, rowCount, columnCount);
-               }
+      /// <summary>
+      /// Creates a new empty IntegerMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <returns>The new matrix.</returns>
+      public static IntegerMatrix CreateIntegerMatrix(this REngine engine, int rowCount, int columnCount)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new IntegerMatrix(engine, rowCount, columnCount);
+      }
 
-               /// <summary>
-               /// Creates a new empty LogicalMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <returns>The new matrix.</returns>
-               public static LogicalMatrix CreateLogicalMatrix(this REngine engine, int rowCount, int 
columnCount)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new LogicalMatrix(engine, rowCount, columnCount);
-               }
+      /// <summary>
+      /// Creates a new empty LogicalMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <returns>The new matrix.</returns>
+      public static LogicalMatrix CreateLogicalMatrix(this REngine engine, int rowCount, int columnCount)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new LogicalMatrix(engine, rowCount, columnCount);
+      }
 
-               /// <summary>
-               /// Creates a new empty NumericMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <returns>The new matrix.</returns>
-               public static NumericMatrix CreateNumericMatrix(this REngine engine, int rowCount, int 
columnCount)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new NumericMatrix(engine, rowCount, columnCount);
-               }
+      /// <summary>
+      /// Creates a new empty NumericMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <returns>The new matrix.</returns>
+      public static NumericMatrix CreateNumericMatrix(this REngine engine, int rowCount, int columnCount)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new NumericMatrix(engine, rowCount, columnCount);
+      }
 
-               /// <summary>
-               /// Creates a new empty RawMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <returns>The new matrix.</returns>
-               public static RawMatrix CreateRawMatrix(this REngine engine, int rowCount, int columnCount)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new RawMatrix(engine, rowCount, columnCount);
-               }
+      /// <summary>
+      /// Creates a new empty RawMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <returns>The new matrix.</returns>
+      public static RawMatrix CreateRawMatrix(this REngine engine, int rowCount, int columnCount)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new RawMatrix(engine, rowCount, columnCount);
+      }
 
-               /// <summary>
-               /// Creates a new CharacterMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="matrix">The values.</param>
-               /// <returns>The new matrix.</returns>
-               public static CharacterMatrix CreateCharacterMatrix(this REngine engine, string[,] matrix)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new CharacterMatrix(engine, matrix);
-               }
+      /// <summary>
+      /// Creates a new CharacterMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="matrix">The values.</param>
+      /// <returns>The new matrix.</returns>
+      public static CharacterMatrix CreateCharacterMatrix(this REngine engine, string[,] matrix)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new CharacterMatrix(engine, matrix);
+      }
 
-               /// <summary>
-               /// Creates a new ComplexMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="matrix">The values.</param>
-               /// <returns>The new matrix.</returns>
-               public static ComplexMatrix CreateComplexMatrix(this REngine engine, Complex[,] matrix)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new ComplexMatrix(engine, matrix);
-               }
+      /// <summary>
+      /// Creates a new ComplexMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="matrix">The values.</param>
+      /// <returns>The new matrix.</returns>
+      public static ComplexMatrix CreateComplexMatrix(this REngine engine, Complex[,] matrix)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new ComplexMatrix(engine, matrix);
+      }
 
-               /// <summary>
-               /// Creates a new IntegerMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="matrix">The values.</param>
-               /// <returns>The new matrix.</returns>
-               public static IntegerMatrix CreateIntegerMatrix(this REngine engine, int[,] matrix)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new IntegerMatrix(engine, matrix);
-               }
+      /// <summary>
+      /// Creates a new IntegerMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="matrix">The values.</param>
+      /// <returns>The new matrix.</returns>
+      public static IntegerMatrix CreateIntegerMatrix(this REngine engine, int[,] matrix)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new IntegerMatrix(engine, matrix);
+      }
 
-               /// <summary>
-               /// Creates a new LogicalMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="matrix">The values.</param>
-               /// <returns>The new matrix.</returns>
-               public static LogicalMatrix CreateLogicalMatrix(this REngine engine, bool[,] matrix)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new LogicalMatrix(engine, matrix);
-               }
+      /// <summary>
+      /// Creates a new LogicalMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="matrix">The values.</param>
+      /// <returns>The new matrix.</returns>
+      public static LogicalMatrix CreateLogicalMatrix(this REngine engine, bool[,] matrix)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new LogicalMatrix(engine, matrix);
+      }
 
-               /// <summary>
-               /// Creates a new NumericMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="matrix">The values.</param>
-               /// <returns>The new matrix.</returns>
-               public static NumericMatrix CreateNumericMatrix(this REngine engine, double[,] matrix)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new NumericMatrix(engine, matrix);
-               }
+      /// <summary>
+      /// Creates a new NumericMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="matrix">The values.</param>
+      /// <returns>The new matrix.</returns>
+      public static NumericMatrix CreateNumericMatrix(this REngine engine, double[,] matrix)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new NumericMatrix(engine, matrix);
+      }
 
-               /// <summary>
-               /// Creates a new RawMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="matrix">The values.</param>
-               /// <returns>The new matrix.</returns>
-               public static RawMatrix CreateRawMatrix(this REngine engine, byte[,] matrix)
-               {
-                       if (engine == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (!engine.IsRunning)
-                       {
-                               throw new ArgumentException();
-                       }
-                       return new RawMatrix(engine, matrix);
-               }
-       }
-}
+      /// <summary>
+      /// Creates a new RawMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="matrix">The values.</param>
+      /// <returns>The new matrix.</returns>
+      public static RawMatrix CreateRawMatrix(this REngine engine, byte[,] matrix)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new RawMatrix(engine, matrix);
+      }
+      
+      /// <summary>
+      /// Creates a new environment.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="parent">The parent environment.</param>
+      /// <returns>The newly created environment.</returns>
+      public static REnvironment CreateEnvironment(this REngine engine, REnvironment parent)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException("engine");
+         }
+         if (parent == null)
+         {
+            throw new ArgumentNullException("parent");
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         return new REnvironment(engine, parent);
+      }
+
+      /// <summary>
+      /// Creates a new isolated environment.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <returns>The newly created isolated environment.</returns>
+      public static REnvironment CreateIsolatedEnvironment(this REngine engine)
+      {
+         if (engine == null)
+         {
+            throw new ArgumentNullException("engine");
+         }
+         if (!engine.IsRunning)
+         {
+            throw new ArgumentException();
+         }
+         var pointer = engine.GetFunction<Rf_allocSExp>()(SymbolicExpressionType.Environment);
+         return new REnvironment(engine, pointer);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/RawMatrix.cs b/rdotnet/R.NET/RawMatrix.cs
index 389d370..ea9474c 100644
--- a/rdotnet/R.NET/RawMatrix.cs
+++ b/rdotnet/R.NET/RawMatrix.cs
@@ -1,94 +1,107 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A matrix of byte values.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class RawMatrix : Matrix<byte>
-       {
-               /// <summary>
-               /// Creates a new RawMatrix with the specified size.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="rowCount">The row size.</param>
-               /// <param name="columnCount">The column size.</param>
-               /// <seealso cref="REngineExtension.CreateRawMatrix(REngine, int, int)"/>
-               public RawMatrix(REngine engine, int rowCount, int columnCount)
-                       : base(engine, SymbolicExpressionType.RawVector, rowCount, columnCount)
-               {}
+   /// <summary>
+   /// A matrix of byte values.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class RawMatrix : Matrix<byte>
+   {
+      /// <summary>
+      /// Creates a new RawMatrix with the specified size.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="rowCount">The row size.</param>
+      /// <param name="columnCount">The column size.</param>
+      /// <seealso cref="REngineExtension.CreateRawMatrix(REngine, int, int)"/>
+      public RawMatrix(REngine engine, int rowCount, int columnCount)
+         : base(engine, SymbolicExpressionType.RawVector, rowCount, columnCount)
+      { }
 
-               /// <summary>
-               /// Creates a new RawMatrix with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="matrix">The values.</param>
-               /// <seealso cref="REngineExtension.CreateRawMatrix(REngine, byte[,])"/>
-               public RawMatrix(REngine engine, byte[,] matrix)
-                       : base(engine, SymbolicExpressionType.RawVector, matrix)
-               {}
+      /// <summary>
+      /// Creates a new RawMatrix with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="matrix">The values.</param>
+      /// <seealso cref="REngineExtension.CreateRawMatrix(REngine, byte[,])"/>
+      public RawMatrix(REngine engine, byte[,] matrix)
+         : base(engine, SymbolicExpressionType.RawVector, matrix)
+      { }
 
-               /// <summary>
-               /// Creates a new instance for a raw matrix.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a raw matrix.</param>
-               protected internal RawMatrix(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for a raw matrix.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a raw matrix.</param>
+      protected internal RawMatrix(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
-               /// <param name="columnIndex">The zero-based columnIndex index of the element to get or 
set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override byte this[int rowIndex, int columnIndex]
-               {
-                       get
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       return Marshal.ReadByte(DataPointer, offset);
-                               }
-                       }
-                       set
-                       {
-                               if (rowIndex < 0 || RowCount <= rowIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("rowIndex");
-                               }
-                               if (columnIndex < 0 || ColumnCount <= columnIndex)
-                               {
-                                       throw new ArgumentOutOfRangeException("columnIndex");
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(rowIndex, columnIndex);
-                                       Marshal.WriteByte(DataPointer, offset, value);
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+      /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override byte this[int rowIndex, int columnIndex]
+      {
+         get
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(rowIndex, columnIndex);
+               return Marshal.ReadByte(DataPointer, offset);
+            }
+         }
+         set
+         {
+            if (rowIndex < 0 || RowCount <= rowIndex)
+            {
+               throw new ArgumentOutOfRangeException("rowIndex");
+            }
+            if (columnIndex < 0 || ColumnCount <= columnIndex)
+            {
+               throw new ArgumentOutOfRangeException("columnIndex");
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(rowIndex, columnIndex);
+               Marshal.WriteByte(DataPointer, offset, value);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of an Raw in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return sizeof(byte); }
-               }
-       }
-}
+      protected override void InitMatrixFastDirect(byte[,] matrix)
+      {
+         var values = Utility.ArrayConvertOneDim(matrix);
+         Marshal.Copy(values, 0, DataPointer, values.Length);
+      }
+
+      protected override byte[,] GetArrayFast()
+      {
+         byte[] values = new byte[this.ItemCount];
+         Marshal.Copy(DataPointer, values, 0, values.Length);
+         return Utility.ArrayConvertAllTwoDim(values, this.RowCount, this.ColumnCount);
+      }
+
+      /// <summary>
+      /// Gets the size of an Raw in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return sizeof(byte); }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/RawVector.cs b/rdotnet/R.NET/RawVector.cs
index 1b0d215..d678c88 100644
--- a/rdotnet/R.NET/RawVector.cs
+++ b/rdotnet/R.NET/RawVector.cs
@@ -1,128 +1,140 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Collections.Generic;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A sequence of byte values.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class RawVector : Vector<byte>
-       {
-               /// <summary>
-               /// Creates a new RawVector with the specified length.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="length">The length.</param>
-               public RawVector(REngine engine, int length)
-                       : base(engine, SymbolicExpressionType.RawVector, length)
-               {}
+   /// <summary>
+   /// A sequence of byte values.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class RawVector : Vector<byte>
+   {
+      /// <summary>
+      /// Creates a new RawVector with the specified length.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="length">The length.</param>
+      public RawVector(REngine engine, int length)
+         : base(engine, SymbolicExpressionType.RawVector, length)
+      { }
 
-               /// <summary>
-               /// Creates a new RawVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="vector">The values.</param>
-               /// <seealso cref="REngineExtension.CreateRawVector(REngine, IEnumerable{byte})"/>
-               public RawVector(REngine engine, IEnumerable<byte> vector)
-                       : base(engine, SymbolicExpressionType.RawVector, vector)
-               {}
+      /// <summary>
+      /// Creates a new RawVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="vector">The values.</param>
+      /// <seealso cref="REngineExtension.CreateRawVector(REngine, IEnumerable{byte})"/>
+      public RawVector(REngine engine, IEnumerable<byte> vector)
+         : base(engine, SymbolicExpressionType.RawVector, vector)
+      { }
 
-               /// <summary>
-               /// Creates a new RawVector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="vector">The values.</param>
-               /// <seealso cref="REngineExtension.CreateRawVector(REngine, int)"/>
-               public RawVector(REngine engine, byte[] vector)
-                       : base(engine, SymbolicExpressionType.RawVector, vector.Length)
-               {
-                       Marshal.Copy(vector, 0, DataPointer, vector.Length);
-               }
+      /// <summary>
+      /// Creates a new RawVector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="vector">The values.</param>
+      /// <seealso cref="REngineExtension.CreateRawVector(REngine, int)"/>
+      public RawVector(REngine engine, byte[] vector)
+         : base(engine, SymbolicExpressionType.RawVector, vector.Length)
+      {
+         Marshal.Copy(vector, 0, DataPointer, vector.Length);
+      }
 
-               /// <summary>
-               /// Creates a new instance for a raw vector.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a raw vector.</param>
-               /// <seealso cref="REngineExtension.CreateRawVector(REngine, byte[])"/>
-               protected internal RawVector(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
+      /// <summary>
+      /// Creates a new instance for a raw vector.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a raw vector.</param>
+      /// <seealso cref="REngineExtension.CreateRawVector(REngine, byte[])"/>
+      protected internal RawVector(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
 
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="index">The zero-based index of the element to get or set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public override byte this[int index]
-               {
-                       get
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       return Marshal.ReadByte(DataPointer, offset);
-                               }
-                       }
-                       set
-                       {
-                               if (index < 0 || Length <= index)
-                               {
-                                       throw new ArgumentOutOfRangeException();
-                               }
-                               using (new ProtectedPointer(this))
-                               {
-                                       int offset = GetOffset(index);
-                                       Marshal.WriteByte(DataPointer, offset, value);
-                               }
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="index">The zero-based index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public override byte this[int index]
+      {
+         get
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(index);
+               return Marshal.ReadByte(DataPointer, offset);
+            }
+         }
+         set
+         {
+            if (index < 0 || Length <= index)
+            {
+               throw new ArgumentOutOfRangeException();
+            }
+            using (new ProtectedPointer(this))
+            {
+               int offset = GetOffset(index);
+               Marshal.WriteByte(DataPointer, offset, value);
+            }
+         }
+      }
 
-               /// <summary>
-               /// Gets the size of a byte value in byte.
-               /// </summary>
-               protected override int DataSize
-               {
-                       get { return sizeof(byte); }
-               }
+      protected override byte[] GetArrayFast()
+      {
+         var res = new byte[this.Length];
+         Marshal.Copy(DataPointer, res, 0, res.Length);
+         return res;
+      }
 
-               /// <summary>
-               /// Copies the elements to the specified array.
-               /// </summary>
-               /// <param name="destination">The destination array.</param>
-               /// <param name="length">The length to copy.</param>
-               /// <param name="sourceIndex">The first index of the vector.</param>
-               /// <param name="destinationIndex">The first index of the destination array.</param>
-               public new void CopyTo(byte[] destination, int length, int sourceIndex = 0, int 
destinationIndex = 0)
-               {
-                       if (destination == null)
-                       {
-                               throw new ArgumentNullException("destination");
-                       }
-                       if (length < 0)
-                       {
-                               throw new IndexOutOfRangeException("length");
-                       }
-                       if (sourceIndex < 0 || Length < sourceIndex + length)
-                       {
-                               throw new IndexOutOfRangeException("sourceIndex");
-                       }
-                       if (destinationIndex < 0 || destination.Length < destinationIndex + length)
-                       {
-                               throw new IndexOutOfRangeException("destinationIndex");
-                       }
+      protected override void SetVectorDirect(byte[] values)
+      {
+         Marshal.Copy(values, 0, DataPointer, values.Length);
+      }
 
-                       int offset = GetOffset(sourceIndex);
-                       IntPtr pointer = IntPtr.Add(DataPointer, offset);
-                       Marshal.Copy(pointer, destination, destinationIndex, length);
-               }
-       }
-}
+      /// <summary>
+      /// Gets the size of a byte value in byte.
+      /// </summary>
+      protected override int DataSize
+      {
+         get { return sizeof(byte); }
+      }
+
+      /// <summary>
+      /// Copies the elements to the specified array.
+      /// </summary>
+      /// <param name="destination">The destination array.</param>
+      /// <param name="length">The length to copy.</param>
+      /// <param name="sourceIndex">The first index of the vector.</param>
+      /// <param name="destinationIndex">The first index of the destination array.</param>
+      public new void CopyTo(byte[] destination, int length, int sourceIndex = 0, int destinationIndex = 0)
+      {
+         if (destination == null)
+         {
+            throw new ArgumentNullException("destination");
+         }
+         if (length < 0)
+         {
+            throw new IndexOutOfRangeException("length");
+         }
+         if (sourceIndex < 0 || Length < sourceIndex + length)
+         {
+            throw new IndexOutOfRangeException("sourceIndex");
+         }
+         if (destinationIndex < 0 || destination.Length < destinationIndex + length)
+         {
+            throw new IndexOutOfRangeException("destinationIndex");
+         }
+
+         int offset = GetOffset(sourceIndex);
+         IntPtr pointer = IntPtr.Add(DataPointer, offset);
+         Marshal.Copy(pointer, destination, destinationIndex, length);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/SpecialFunction.cs b/rdotnet/R.NET/SpecialFunction.cs
index 77de3ee..1100f8d 100644
--- a/rdotnet/R.NET/SpecialFunction.cs
+++ b/rdotnet/R.NET/SpecialFunction.cs
@@ -1,34 +1,34 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Linq;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A special function.
-       /// </summary>
-       public class SpecialFunction : Function
-       {
-               /// <summary>
-               /// Creates a special function proxy.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="pointer">The pointer.</param>
-               protected internal SpecialFunction(REngine engine, IntPtr pointer)
-                       : base(engine, pointer)
-               {}
+   /// <summary>
+   /// A special function.
+   /// </summary>
+   public class SpecialFunction : Function
+   {
+      /// <summary>
+      /// Creates a special function proxy.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="pointer">The pointer.</param>
+      protected internal SpecialFunction(REngine engine, IntPtr pointer)
+         : base(engine, pointer)
+      { }
 
-               public override SymbolicExpression Invoke(SymbolicExpression[] args)
-               {
-                       IntPtr argument = Engine.NilValue.DangerousGetHandle();
-                       foreach (SymbolicExpression arg in args.Reverse())
-                       {
-                               argument = Engine.GetFunction<Rf_cons>("Rf_cons")(arg.DangerousGetHandle(), 
argument);
-                       }
-                       IntPtr call = Engine.GetFunction<Rf_lcons>("Rf_lcons")(handle, argument);
+      public override SymbolicExpression Invoke(SymbolicExpression[] args)
+      {
+         IntPtr argument = Engine.NilValue.DangerousGetHandle();
+         foreach (SymbolicExpression arg in args.Reverse())
+         {
+            argument = Engine.GetFunction<Rf_cons>()(arg.DangerousGetHandle(), argument);
+         }
+         IntPtr call = Engine.GetFunction<Rf_lcons>()(handle, argument);
 
-                       IntPtr result = Engine.GetFunction<Rf_eval>("Rf_eval")(call, 
Engine.GlobalEnvironment.DangerousGetHandle());
-                       return new SymbolicExpression(Engine, result);
-               }
-       }
-}
+         IntPtr result = Engine.GetFunction<Rf_eval>()(call, Engine.GlobalEnvironment.DangerousGetHandle());
+         return new SymbolicExpression(Engine, result);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/StartupParameter.cs b/rdotnet/R.NET/StartupParameter.cs
index 33aba52..7293280 100644
--- a/rdotnet/R.NET/StartupParameter.cs
+++ b/rdotnet/R.NET/StartupParameter.cs
@@ -1,298 +1,298 @@
-using System;
-using System.Runtime.InteropServices;
-using RDotNet.Internals;
+using RDotNet.Internals;
 using RDotNet.Internals.Windows;
+using System;
+using System.Runtime.InteropServices;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// Represents parameters on R's startup.
-       /// </summary>
-       /// <remarks>
-       /// Wraps RStart struct.
-       /// </remarks>
-       public class StartupParameter
-       {
-               private static readonly ulong EnvironmentDependentMaxSize = Environment.Is64BitProcess ? 
ulong.MaxValue : uint.MaxValue;
+   /// <summary>
+   /// Represents parameters on R's startup.
+   /// </summary>
+   /// <remarks>
+   /// Wraps RStart struct.
+   /// </remarks>
+   public class StartupParameter
+   {
+      private static readonly ulong EnvironmentDependentMaxSize = Environment.Is64BitProcess ? 
ulong.MaxValue : uint.MaxValue;
 
-               // Windows style RStart includes Unix-style RStart.
-               internal RStart start;
+      // Windows style RStart includes Unix-style RStart.
+      internal RStart start;
 
-               public StartupParameter()
-               {
-                       this.start = new RStart();
-                       SetDefaultParameter();
-               }
+      public StartupParameter()
+      {
+         this.start = new RStart();
+         SetDefaultParameter();
+      }
 
-               /// <summary>
-               /// Gets or sets the value indicating that R runs as quiet mode.
-               /// </summary>
-               public bool Quiet
-               {
-                       get { return this.start.Common.R_Quiet; }
-                       set { this.start.Common.R_Quiet = value; }
-               }
+      /// <summary>
+      /// Gets or sets the value indicating that R runs as quiet mode.
+      /// </summary>
+      public bool Quiet
+      {
+         get { return this.start.Common.R_Quiet; }
+         set { this.start.Common.R_Quiet = value; }
+      }
 
-               /// <summary>
-               /// Gets or sets the value indicating that R runs as slave mode.
-               /// </summary>
-               public bool Slave
-               {
-                       get { return this.start.Common.R_Slave; }
-                       set { this.start.Common.R_Slave = value; }
-               }
+      /// <summary>
+      /// Gets or sets the value indicating that R runs as slave mode.
+      /// </summary>
+      public bool Slave
+      {
+         get { return this.start.Common.R_Slave; }
+         set { this.start.Common.R_Slave = value; }
+      }
 
-               /// <summary>
-               /// Gets or sets the value indicating that R runs as interactive mode.
-               /// </summary>
-               public bool Interactive
-               {
-                       get { return this.start.Common.R_Interactive; }
-                       set { this.start.Common.R_Interactive = value; }
-               }
+      /// <summary>
+      /// Gets or sets the value indicating that R runs as interactive mode.
+      /// </summary>
+      public bool Interactive
+      {
+         get { return this.start.Common.R_Interactive; }
+         set { this.start.Common.R_Interactive = value; }
+      }
 
-               /// <summary>
-               /// Gets or sets the value indicating that R runs as verbose mode.
-               /// </summary>
-               public bool Verbose
-               {
-                       get { return this.start.Common.R_Verbose; }
-                       set { this.start.Common.R_Verbose = value; }
-               }
+      /// <summary>
+      /// Gets or sets the value indicating that R runs as verbose mode.
+      /// </summary>
+      public bool Verbose
+      {
+         get { return this.start.Common.R_Verbose; }
+         set { this.start.Common.R_Verbose = value; }
+      }
 
-               /// <summary>
-               /// Gets or sets the value indicating that R loads the site file.
-               /// </summary>
-               public bool LoadSiteFile
-               {
-                       get { return this.start.Common.LoadSiteFile; }
-                       set { this.start.Common.LoadSiteFile = value; }
-               }
+      /// <summary>
+      /// Gets or sets the value indicating that R loads the site file.
+      /// </summary>
+      public bool LoadSiteFile
+      {
+         get { return this.start.Common.LoadSiteFile; }
+         set { this.start.Common.LoadSiteFile = value; }
+      }
 
-               /// <summary>
-               /// Gets or sets the value indicating that R loads the init file.
-               /// </summary>
-               public bool LoadInitFile
-               {
-                       get { return this.start.Common.LoadInitFile; }
-                       set { this.start.Common.LoadInitFile = value; }
-               }
+      /// <summary>
+      /// Gets or sets the value indicating that R loads the init file.
+      /// </summary>
+      public bool LoadInitFile
+      {
+         get { return this.start.Common.LoadInitFile; }
+         set { this.start.Common.LoadInitFile = value; }
+      }
 
-               /// <summary>
-               /// Gets or sets the value indicating that R debugs the init file.
-               /// </summary>
-               public bool DebugInitFile
-               {
-                       get { return this.start.Common.DebugInitFile; }
-                       set { this.start.Common.DebugInitFile = value; }
-               }
+      /// <summary>
+      /// Gets or sets the value indicating that R debugs the init file.
+      /// </summary>
+      public bool DebugInitFile
+      {
+         get { return this.start.Common.DebugInitFile; }
+         set { this.start.Common.DebugInitFile = value; }
+      }
 
-               /// <summary>
-               /// Gets or sets the value indicating that R restores the history.
-               /// </summary>
-               public StartupRestoreAction RestoreAction
-               {
-                       get { return this.start.Common.RestoreAction; }
-                       set { this.start.Common.RestoreAction = value; }
-               }
+      /// <summary>
+      /// Gets or sets the value indicating that R restores the history.
+      /// </summary>
+      public StartupRestoreAction RestoreAction
+      {
+         get { return this.start.Common.RestoreAction; }
+         set { this.start.Common.RestoreAction = value; }
+      }
 
-               /// <summary>
-               /// Gets or sets the value indicating that R saves the history.
-               /// </summary>
-               public StartupSaveAction SaveAction
-               {
-                       get { return this.start.Common.SaveAction; }
-                       set { this.start.Common.SaveAction = value; }
-               }
+      /// <summary>
+      /// Gets or sets the value indicating that R saves the history.
+      /// </summary>
+      public StartupSaveAction SaveAction
+      {
+         get { return this.start.Common.SaveAction; }
+         set { this.start.Common.SaveAction = value; }
+      }
 
-               /// <summary>
-               /// Gets or sets the minimum memory size.
-               /// </summary>
-               public ulong MinMemorySize
-               {
-                       get { return this.start.Common.vsize.ToUInt64(); }
-                       set
-                       {
-                               if (value > EnvironmentDependentMaxSize)
-                               {
-                                       throw new ArgumentOutOfRangeException("value");
-                               }
-                               this.start.Common.vsize = new UIntPtr(value);
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the minimum memory size.
+      /// </summary>
+      public ulong MinMemorySize
+      {
+         get { return this.start.Common.vsize.ToUInt64(); }
+         set
+         {
+            if (value > EnvironmentDependentMaxSize)
+            {
+               throw new ArgumentOutOfRangeException("value");
+            }
+            this.start.Common.vsize = new UIntPtr(value);
+         }
+      }
 
-               /// <summary>
-               /// Gets or sets the minimum number of cons cells.
-               /// </summary>
-               public ulong MinCellSize
-               {
-                       get { return this.start.Common.nsize.ToUInt64(); }
-                       set
-                       {
-                               if (value > EnvironmentDependentMaxSize)
-                               {
-                                       throw new ArgumentOutOfRangeException("value");
-                               }
-                               this.start.Common.nsize = new UIntPtr(value);
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the minimum number of cons cells.
+      /// </summary>
+      public ulong MinCellSize
+      {
+         get { return this.start.Common.nsize.ToUInt64(); }
+         set
+         {
+            if (value > EnvironmentDependentMaxSize)
+            {
+               throw new ArgumentOutOfRangeException("value");
+            }
+            this.start.Common.nsize = new UIntPtr(value);
+         }
+      }
 
-               /// <summary>
-               /// Gets or sets the maximum memory size.
-               /// </summary>
-               public ulong MaxMemorySize
-               {
-                       get { return this.start.Common.max_vsize.ToUInt64(); }
-                       set
-                       {
-                               if (value > EnvironmentDependentMaxSize)
-                               {
-                                       throw new ArgumentOutOfRangeException("value");
-                               }
-                               this.start.Common.max_vsize = new UIntPtr(value);
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the maximum memory size.
+      /// </summary>
+      public ulong MaxMemorySize
+      {
+         get { return this.start.Common.max_vsize.ToUInt64(); }
+         set
+         {
+            if (value > EnvironmentDependentMaxSize)
+            {
+               throw new ArgumentOutOfRangeException("value");
+            }
+            this.start.Common.max_vsize = new UIntPtr(value);
+         }
+      }
 
-               /// <summary>
-               /// Gets or sets the maximum number of cons cells.
-               /// </summary>
-               public ulong MaxCellSize
-               {
-                       get { return this.start.Common.max_nsize.ToUInt64(); }
-                       set
-                       {
-                               if (value > EnvironmentDependentMaxSize)
-                               {
-                                       throw new ArgumentOutOfRangeException("value");
-                               }
-                               this.start.Common.max_nsize = new UIntPtr(value);
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the maximum number of cons cells.
+      /// </summary>
+      public ulong MaxCellSize
+      {
+         get { return this.start.Common.max_nsize.ToUInt64(); }
+         set
+         {
+            if (value > EnvironmentDependentMaxSize)
+            {
+               throw new ArgumentOutOfRangeException("value");
+            }
+            this.start.Common.max_nsize = new UIntPtr(value);
+         }
+      }
 
-               /// <summary>
-               /// Gets or sets the maximum number of protected pointers in stack.
-               /// </summary>
-               public ulong StackSize
-               {
-                       get { return this.start.Common.ppsize.ToUInt64(); }
-                       set
-                       {
-                               if (value > EnvironmentDependentMaxSize)
-                               {
-                                       throw new ArgumentOutOfRangeException("value");
-                               }
-                               this.start.Common.ppsize = new UIntPtr(value);
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the maximum number of protected pointers in stack.
+      /// </summary>
+      public ulong StackSize
+      {
+         get { return this.start.Common.ppsize.ToUInt64(); }
+         set
+         {
+            if (value > EnvironmentDependentMaxSize)
+            {
+               throw new ArgumentOutOfRangeException("value");
+            }
+            this.start.Common.ppsize = new UIntPtr(value);
+         }
+      }
 
-               /// <summary>
-               /// Gets or sets the value indicating that R does NOT load the environment file.
-               /// </summary>
-               public bool NoRenviron
-               {
-                       get { return this.start.Common.NoRenviron; }
-                       set { this.start.Common.NoRenviron = value; }
-               }
+      /// <summary>
+      /// Gets or sets the value indicating that R does NOT load the environment file.
+      /// </summary>
+      public bool NoRenviron
+      {
+         get { return this.start.Common.NoRenviron; }
+         set { this.start.Common.NoRenviron = value; }
+      }
 
-               /// <summary>
-               /// Gets or sets the base directory in which R is installed.
-               /// </summary>
-               /// <remarks>
-               /// Only Windows.
-               /// </remarks>
-               public string RHome
-               {
-                       get
-                       {
-                               if (Environment.OSVersion.Platform != PlatformID.Win32NT)
-                               {
-                                       throw new NotSupportedException();
-                               }
-                               return Marshal.PtrToStringAnsi(this.start.rhome);
-                       }
-                       set
-                       {
-                               if (Environment.OSVersion.Platform != PlatformID.Win32NT)
-                               {
-                                       throw new NotSupportedException();
-                               }
-                               this.start.rhome = Marshal.StringToHGlobalAnsi(value);
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the base directory in which R is installed.
+      /// </summary>
+      /// <remarks>
+      /// Only Windows.
+      /// </remarks>
+      public string RHome
+      {
+         get
+         {
+            if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+            {
+               throw new NotSupportedException();
+            }
+            return Marshal.PtrToStringAnsi(this.start.rhome);
+         }
+         set
+         {
+            if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+            {
+               throw new NotSupportedException();
+            }
+            this.start.rhome = Marshal.StringToHGlobalAnsi(value);
+         }
+      }
 
-               /// <summary>
-               /// Gets or sets the default user workspace.
-               /// </summary>
-               /// <remarks>
-               /// Only Windows.
-               /// </remarks>
-               public string Home
-               {
-                       get
-                       {
-                               if (Environment.OSVersion.Platform != PlatformID.Win32NT)
-                               {
-                                       throw new NotSupportedException();
-                               }
-                               return Marshal.PtrToStringAnsi(this.start.home);
-                       }
-                       set
-                       {
-                               if (Environment.OSVersion.Platform != PlatformID.Win32NT)
-                               {
-                                       throw new NotSupportedException();
-                               }
-                               this.start.home = Marshal.StringToHGlobalAnsi(value);
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the default user workspace.
+      /// </summary>
+      /// <remarks>
+      /// Only Windows.
+      /// </remarks>
+      public string Home
+      {
+         get
+         {
+            if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+            {
+               throw new NotSupportedException();
+            }
+            return Marshal.PtrToStringAnsi(this.start.home);
+         }
+         set
+         {
+            if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+            {
+               throw new NotSupportedException();
+            }
+            this.start.home = Marshal.StringToHGlobalAnsi(value);
+         }
+      }
 
-               /// <summary>
-               /// Gets or sets the UI mode.
-               /// </summary>
-               /// <remarks>
-               /// Only Windows.
-               /// </remarks>
-               public UiMode CharacterMode
-               {
-                       get
-                       {
-                               if (Environment.OSVersion.Platform != PlatformID.Win32NT)
-                               {
-                                       throw new NotSupportedException();
-                               }
-                               return this.start.CharacterMode;
-                       }
-                       set
-                       {
-                               if (Environment.OSVersion.Platform != PlatformID.Win32NT)
-                               {
-                                       throw new NotSupportedException();
-                               }
-                               this.start.CharacterMode = value;
-                       }
-               }
+      /// <summary>
+      /// Gets or sets the UI mode.
+      /// </summary>
+      /// <remarks>
+      /// Only Windows.
+      /// </remarks>
+      public UiMode CharacterMode
+      {
+         get
+         {
+            if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+            {
+               throw new NotSupportedException();
+            }
+            return this.start.CharacterMode;
+         }
+         set
+         {
+            if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+            {
+               throw new NotSupportedException();
+            }
+            this.start.CharacterMode = value;
+         }
+      }
 
-               private void SetDefaultParameter()
-               {
-                       Quiet = true;
-                       //Slave = false;
-                       Interactive = true;
-                       //Verbose = false;
-                       RestoreAction = StartupRestoreAction.NoRestore;
-                       SaveAction = StartupSaveAction.NoSave;
-                       LoadSiteFile = true;
-                       LoadInitFile = true;
-                       //DebugInitFile = false;
-                       MinMemorySize = 6291456;
-                       MinCellSize = 350000;
-                       MaxMemorySize = EnvironmentDependentMaxSize;
-                       MaxCellSize = EnvironmentDependentMaxSize;
-                       StackSize = 50000;
-                       //NoRenviron = false;
-                       if (Environment.OSVersion.Platform == PlatformID.Win32NT)
-                       {
-                               CharacterMode = UiMode.LinkDll;
-                       }
-               }
-       }
-}
+      private void SetDefaultParameter()
+      {
+         Quiet = true;
+         //Slave = false;
+         Interactive = true;
+         //Verbose = false;
+         RestoreAction = StartupRestoreAction.NoRestore;
+         SaveAction = StartupSaveAction.NoSave;
+         LoadSiteFile = true;
+         LoadInitFile = true;
+         //DebugInitFile = false;
+         MinMemorySize = 6291456;
+         MinCellSize = 350000;
+         MaxMemorySize = EnvironmentDependentMaxSize;
+         MaxCellSize = EnvironmentDependentMaxSize;
+         StackSize = 50000;
+         //NoRenviron = false;
+         if (Environment.OSVersion.Platform == PlatformID.Win32NT)
+         {
+            CharacterMode = UiMode.LinkDll;
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Symbol.cs b/rdotnet/R.NET/Symbol.cs
index c08f55b..834fb68 100644
--- a/rdotnet/R.NET/Symbol.cs
+++ b/rdotnet/R.NET/Symbol.cs
@@ -1,76 +1,76 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Runtime.InteropServices;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A symbol object.
-       /// </summary>
-       public class Symbol : SymbolicExpression
-       {
-               /// <summary>
-               /// Creates a symbol.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="pointer">The pointer.</param>
-               protected internal Symbol(REngine engine, IntPtr pointer)
-                       : base(engine, pointer)
-               {}
+   /// <summary>
+   /// A symbol object.
+   /// </summary>
+   public class Symbol : SymbolicExpression
+   {
+      /// <summary>
+      /// Creates a symbol.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="pointer">The pointer.</param>
+      protected internal Symbol(REngine engine, IntPtr pointer)
+         : base(engine, pointer)
+      { }
 
-               /// <summary>
-               /// Gets and sets the name.
-               /// </summary>
-               public string PrintName
-               {
-                       get
-                       {
-                               SEXPREC sexp = GetInternalStructure();
-                               return new InternalString(Engine, sexp.symsxp.pname).ToString();
-                       }
-                       set
-                       {
-                               IntPtr pointer = (value == null ? Engine.NilValue : new 
InternalString(Engine, value)).DangerousGetHandle();
-                               int offset = GetOffsetOf("pname");
-                               Marshal.WriteIntPtr(handle, offset, pointer);
-                       }
-               }
+      /// <summary>
+      /// Gets and sets the name.
+      /// </summary>
+      public string PrintName
+      {
+         get
+         {
+            SEXPREC sexp = GetInternalStructure();
+            return new InternalString(Engine, sexp.symsxp.pname).ToString();
+         }
+         set
+         {
+            IntPtr pointer = (value == null ? Engine.NilValue : new InternalString(Engine, 
value)).DangerousGetHandle();
+            int offset = GetOffsetOf("pname");
+            Marshal.WriteIntPtr(handle, offset, pointer);
+         }
+      }
 
-               /// <summary>
-               /// Gets the internal function.
-               /// </summary>
-               public SymbolicExpression Internal
-               {
-                       get
-                       {
-                               SEXPREC sexp = GetInternalStructure();
-                               if (Engine.CheckNil(sexp.symsxp.value))
-                               {
-                                       return null;
-                               }
-                               return new SymbolicExpression(Engine, sexp symsxp  internal);
-                       }
-               }
+      /// <summary>
+      /// Gets the internal function.
+      /// </summary>
+      public SymbolicExpression Internal
+      {
+         get
+         {
+            SEXPREC sexp = GetInternalStructure();
+            if (Engine.CheckNil(sexp.symsxp.value))
+            {
+               return null;
+            }
+            return new SymbolicExpression(Engine, sexp symsxp  internal);
+         }
+      }
 
-               /// <summary>
-               /// Gets the symbol value.
-               /// </summary>
-               public SymbolicExpression Value
-               {
-                       get
-                       {
-                               SEXPREC sexp = GetInternalStructure();
-                               if (Engine.CheckNil(sexp.symsxp.value))
-                               {
-                                       return null;
-                               }
-                               return new SymbolicExpression(Engine, sexp.symsxp.value);
-                       }
-               }
+      /// <summary>
+      /// Gets the symbol value.
+      /// </summary>
+      public SymbolicExpression Value
+      {
+         get
+         {
+            SEXPREC sexp = GetInternalStructure();
+            if (Engine.CheckNil(sexp.symsxp.value))
+            {
+               return null;
+            }
+            return new SymbolicExpression(Engine, sexp.symsxp.value);
+         }
+      }
 
-               private static int GetOffsetOf(string fieldName)
-               {
-                       return Marshal.OffsetOf(typeof(SEXPREC), "u").ToInt32() + 
Marshal.OffsetOf(typeof(symsxp), fieldName).ToInt32();
-               }
-       }
-}
+      private static int GetOffsetOf(string fieldName)
+      {
+         return Marshal.OffsetOf(typeof(SEXPREC), "u").ToInt32() + Marshal.OffsetOf(typeof(symsxp), 
fieldName).ToInt32();
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/SymbolicExpression.cs b/rdotnet/R.NET/SymbolicExpression.cs
index c127f17..60aa718 100644
--- a/rdotnet/R.NET/SymbolicExpression.cs
+++ b/rdotnet/R.NET/SymbolicExpression.cs
@@ -1,239 +1,242 @@
-using System;
+using RDotNet.Dynamic;
+using RDotNet.Internals;
+using System;
+using System.Diagnostics;
 using System.Dynamic;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Dynamic;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// An expression in R environment.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class SymbolicExpression : SafeHandle, IEquatable<SymbolicExpression>, 
IDynamicMetaObjectProvider
-       {
-               private readonly REngine engine;
-               private readonly SEXPREC sexp;
-
-               private bool isProtected;
-
-               /// <summary>
-               /// Creates new instance of SymbolicExpression.
-               /// </summary>
-               /// <param name="engine">The engine.</param>
-               /// <param name="pointer">The pointer.</param>
-               protected internal SymbolicExpression(REngine engine, IntPtr pointer)
-                       : base(IntPtr.Zero, true)
-               {
-                       this.engine = engine;
-                       this.sexp = (SEXPREC)Marshal.PtrToStructure(pointer, typeof(SEXPREC));
-                       SetHandle(pointer);
-               }
-
-               public override bool IsInvalid
-               {
-                       get { return IsClosed || handle == IntPtr.Zero; }
-               }
-
-               /// <summary>
-               /// Gets the <see cref="REngine"/> to which this expression belongs.
-               /// </summary>
-               public REngine Engine
-               {
-                       get { return this.engine; }
-               }
-
-               /// <summary>
-               /// Gets whether this expression is protected from the garbage collection.
-               /// </summary>
-               public bool IsProtected
-               {
-                       get { return this.isProtected; }
-               }
-
-               /// <summary>
-               /// Gets the <see cref="SymbolicExpressionType"/>.
-               /// </summary>
-               public SymbolicExpressionType Type
-               {
-                       get { return this.sexp.sxpinfo.type; }
-               }
-
-               #region IDynamicMetaObjectProvider Members
-
-               public virtual DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
-               {
-                       return new SymbolicExpressionDynamicMeta(parameter, this);
-               }
-
-               #endregion
-
-               #region IEquatable<SymbolicExpression> Members
-
-               public bool Equals(SymbolicExpression other)
-               {
-                       return other != null && handle == other.handle;
-               }
-
-               #endregion
-
-               internal SEXPREC GetInternalStructure()
-               {
-                       return (SEXPREC)Marshal.PtrToStructure(handle, typeof(SEXPREC));
-               }
-
-               /// <summary>
-               /// Gets all value names.
-               /// </summary>
-               /// <returns>The names of attributes</returns>
-               public string[] GetAttributeNames()
-               {
-                       int length = Engine.GetFunction<Rf_length>("Rf_length")(this.sexp.attrib);
-                       var names = new string[length];
-                       IntPtr pointer = this.sexp.attrib;
-                       for (int index = 0; index < length; index++)
-                       {
-                               var node = (SEXPREC)Marshal.PtrToStructure(pointer, typeof(SEXPREC));
-                               var attribute = (SEXPREC)Marshal.PtrToStructure(node.listsxp.tagval, 
typeof(SEXPREC));
-                               IntPtr name = attribute.symsxp.pname;
-                               names[index] = new InternalString(Engine, name);
-                               pointer = node.listsxp.cdrval;
-                       }
-                       return names;
-               }
-
-               /// <summary>
-               /// Gets the value of the specified name.
-               /// </summary>
-               /// <param name="attributeName">The name of attribute.</param>
-               /// <returns>The attribute.</returns>
-               public SymbolicExpression GetAttribute(string attributeName)
-               {
-                       if (attributeName == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (attributeName == string.Empty)
-                       {
-                               throw new ArgumentException();
-                       }
-
-                       IntPtr installedName = Engine.GetFunction<Rf_install>("Rf_install")(attributeName);
-                       IntPtr attribute = Engine.GetFunction<Rf_getAttrib>("Rf_getAttrib")(handle, 
installedName);
-                       if (Engine.CheckNil(attribute))
-                       {
-                               return null;
-                       }
-                       return new SymbolicExpression(Engine, attribute);
-               }
-
-               internal SymbolicExpression GetAttribute(SymbolicExpression symbol)
-               {
-                       if (symbol == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (symbol.Type != SymbolicExpressionType.Symbol)
-                       {
-                               throw new ArgumentException();
-                       }
-
-                       IntPtr attribute = Engine.GetFunction<Rf_getAttrib>("Rf_getAttrib")(handle, 
symbol.handle);
-                       if (Engine.CheckNil(attribute))
-                       {
-                               return null;
-                       }
-                       return new SymbolicExpression(Engine, attribute);
-               }
-
-               /// <summary>
-               /// Sets the new value to the attribute of the specified name.
-               /// </summary>
-               /// <param name="attributeName">The name of attribute.</param>
-               /// <param name="value">The value</param>
-               public void SetAttribute(string attributeName, SymbolicExpression value)
-               {
-                       if (attributeName == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (attributeName == string.Empty)
-                       {
-                               throw new ArgumentException();
-                       }
-
-                       if (value == null)
-                       {
-                               value = Engine.NilValue;
-                       }
-
-                       IntPtr installedName = Engine.GetFunction<Rf_install>("Rf_install")(attributeName);
-                       Engine.GetFunction<Rf_setAttrib>("Rf_setAttrib")(handle, installedName, value.handle);
-               }
-
-               internal void SetAttribute(SymbolicExpression symbol, SymbolicExpression value)
-               {
-                       if (symbol == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       if (symbol.Type != SymbolicExpressionType.Symbol)
-                       {
-                               throw new ArgumentException();
-                       }
-
-                       if (value == null)
-                       {
-                               value = Engine.NilValue;
-                       }
-
-                       Engine.GetFunction<Rf_setAttrib>("Rf_setAttrib")(handle, symbol.handle, value.handle);
-               }
-
-               /// <summary>
-               /// Prevents the expression from R's garbage collector.
-               /// </summary>
-               /// <seealso cref="SymbolicExpression.Unprotect"/>
-               public void Protect()
-               {
-                       if (!IsInvalid)
-                       {
-                               Engine.GetFunction<Rf_protect>("Rf_protect")(handle);
-                               this.isProtected = true;
-                       }
-               }
-
-               /// <summary>
-               /// Stops protection.
-               /// </summary>
-               /// <seealso cref="SymbolicExpression.Protect"/>
-               public void Unprotect()
-               {
-                       if (!IsInvalid && IsProtected)
-                       {
-                               Engine.GetFunction<Rf_unprotect_ptr>("Rf_unprotect_ptr")(handle);
-                               this.isProtected = false;
-                       }
-               }
-
-               protected override bool ReleaseHandle()
-               {
-                       if (IsProtected)
-                       {
-                               Unprotect();
-                       }
-                       return true;
-               }
-
-               public override int GetHashCode()
-               {
-                       return handle.GetHashCode();
-               }
-
-               public override bool Equals(object obj)
-               {
-                       return Equals(obj as SymbolicExpression);
-               }
-       }
-}
+   /// <summary>
+   /// An expression in R environment.
+   /// </summary>
+   [DebuggerDisplay("RObjectType = {Type}")]
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class SymbolicExpression : SafeHandle, IEquatable<SymbolicExpression>, IDynamicMetaObjectProvider
+   {
+      private readonly REngine engine;
+      private readonly SEXPREC sexp;
+
+      private bool isProtected;
+
+      /// <summary>
+      /// Creates new instance of SymbolicExpression.
+      /// </summary>
+      /// <param name="engine">The engine.</param>
+      /// <param name="pointer">The pointer.</param>
+      protected internal SymbolicExpression(REngine engine, IntPtr pointer)
+         : base(IntPtr.Zero, true)
+      {
+         this.engine = engine;
+         this.sexp = (SEXPREC)Marshal.PtrToStructure(pointer, typeof(SEXPREC));
+         SetHandle(pointer);
+         Preserve();
+      }
+
+      public override bool IsInvalid
+      {
+         get { return handle == IntPtr.Zero; }
+      }
+
+      /// <summary>
+      /// Gets the <see cref="REngine"/> to which this expression belongs.
+      /// </summary>
+      public REngine Engine
+      {
+         get { return this.engine; }
+      }
+
+      /// <summary>
+      /// Gets whether this expression is protected from the garbage collection.
+      /// </summary>
+      public bool IsProtected
+      {
+         get { return this.isProtected; }
+      }
+
+      /// <summary>
+      /// Gets the <see cref="SymbolicExpressionType"/>.
+      /// </summary>
+      public SymbolicExpressionType Type
+      {
+         get { return this.sexp.sxpinfo.type; }
+      }
+
+      #region IDynamicMetaObjectProvider Members
+
+      public virtual DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
+      {
+         return new SymbolicExpressionDynamicMeta(parameter, this);
+      }
+
+      #endregion IDynamicMetaObjectProvider Members
+
+      #region IEquatable<SymbolicExpression> Members
+
+      public bool Equals(SymbolicExpression other)
+      {
+         return other != null && handle == other.handle;
+      }
+
+      #endregion IEquatable<SymbolicExpression> Members
+
+      internal SEXPREC GetInternalStructure()
+      {
+         return (SEXPREC)Marshal.PtrToStructure(handle, typeof(SEXPREC));
+      }
+
+      /// <summary>
+      /// Gets all value names.
+      /// </summary>
+      /// <returns>The names of attributes</returns>
+      public string[] GetAttributeNames()
+      {
+         int length = Engine.GetFunction<Rf_length>()(this.sexp.attrib);
+         var names = new string[length];
+         IntPtr pointer = this.sexp.attrib;
+         for (int index = 0; index < length; index++)
+         {
+            var node = (SEXPREC)Marshal.PtrToStructure(pointer, typeof(SEXPREC));
+            var attribute = (SEXPREC)Marshal.PtrToStructure(node.listsxp.tagval, typeof(SEXPREC));
+            IntPtr name = attribute.symsxp.pname;
+            names[index] = new InternalString(Engine, name);
+            pointer = node.listsxp.cdrval;
+         }
+         return names;
+      }
+
+      /// <summary>
+      /// Gets the value of the specified name.
+      /// </summary>
+      /// <param name="attributeName">The name of attribute.</param>
+      /// <returns>The attribute.</returns>
+      public SymbolicExpression GetAttribute(string attributeName)
+      {
+         if (attributeName == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (attributeName == string.Empty)
+         {
+            throw new ArgumentException();
+         }
+
+         IntPtr installedName = Engine.GetFunction<Rf_install>()(attributeName);
+         IntPtr attribute = Engine.GetFunction<Rf_getAttrib>()(handle, installedName);
+         if (Engine.CheckNil(attribute))
+         {
+            return null;
+         }
+         return new SymbolicExpression(Engine, attribute);
+      }
+
+      internal SymbolicExpression GetAttribute(SymbolicExpression symbol)
+      {
+         if (symbol == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (symbol.Type != SymbolicExpressionType.Symbol)
+         {
+            throw new ArgumentException();
+         }
+
+         IntPtr attribute = Engine.GetFunction<Rf_getAttrib>()(handle, symbol.handle);
+         if (Engine.CheckNil(attribute))
+         {
+            return null;
+         }
+         return new SymbolicExpression(Engine, attribute);
+      }
+
+      /// <summary>
+      /// Sets the new value to the attribute of the specified name.
+      /// </summary>
+      /// <param name="attributeName">The name of attribute.</param>
+      /// <param name="value">The value</param>
+      public void SetAttribute(string attributeName, SymbolicExpression value)
+      {
+         if (attributeName == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (attributeName == string.Empty)
+         {
+            throw new ArgumentException();
+         }
+
+         if (value == null)
+         {
+            value = Engine.NilValue;
+         }
+
+         IntPtr installedName = Engine.GetFunction<Rf_install>()(attributeName);
+         Engine.GetFunction<Rf_setAttrib>()(handle, installedName, value.handle);
+      }
+
+      internal void SetAttribute(SymbolicExpression symbol, SymbolicExpression value)
+      {
+         if (symbol == null)
+         {
+            throw new ArgumentNullException();
+         }
+         if (symbol.Type != SymbolicExpressionType.Symbol)
+         {
+            throw new ArgumentException();
+         }
+
+         if (value == null)
+         {
+            value = Engine.NilValue;
+         }
+
+         Engine.GetFunction<Rf_setAttrib>()(handle, symbol.handle, value.handle);
+      }
+
+      /// <summary>
+      /// Protects the expression from R's garbage collector.
+      /// </summary>
+      /// <seealso cref="Unpreserve"/>
+      public void Preserve()
+      {
+         if (!IsInvalid && !isProtected)
+         {
+            Engine.GetFunction<R_PreserveObject>()(handle);
+            this.isProtected = true;
+         }
+      }
+
+      /// <summary>
+      /// Stops protection.
+      /// </summary>
+      /// <seealso cref="Preserve"/>
+      public void Unpreserve()
+      {
+         if (!IsInvalid && IsProtected)
+         {
+            Engine.GetFunction<R_ReleaseObject>()(handle);
+            this.isProtected = false;
+         }
+      }
+
+      protected override bool ReleaseHandle()
+      {
+         if (IsProtected)
+         {
+            Unpreserve();
+         }
+         return true;
+      }
+
+      public override int GetHashCode()
+      {
+         return handle.GetHashCode();
+      }
+
+      public override bool Equals(object obj)
+      {
+         return Equals(obj as SymbolicExpression);
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/SymbolicExpressionExtension.cs b/rdotnet/R.NET/SymbolicExpressionExtension.cs
index 5d25a9b..05d5bc0 100644
--- a/rdotnet/R.NET/SymbolicExpressionExtension.cs
+++ b/rdotnet/R.NET/SymbolicExpressionExtension.cs
@@ -1,586 +1,632 @@
-using System;
+using RDotNet.Internals;
+using System;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// Provides extension methods for <see cref="SymbolicExpression"/>.
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public static class SymbolicExpressionExtension
-       {
-               /// <summary>
-               /// Gets whether the specified expression is list.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns><c>True</c> if the specified expression is list.</returns>
-               public static bool IsList(this SymbolicExpression expression)
-               {
-                       if (expression == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       return 
expression.Engine.GetFunction<Rf_isList>("Rf_isList")(expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a GenericVector.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The GenericVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static GenericVector AsList(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-                       return new GenericVector(expression.Engine, expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a DataFrame.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The DataFrame. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static DataFrame AsDataFrame(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-                       return new DataFrame(expression.Engine, expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Gets whether the specified expression is vector.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns><c>True</c> if the specified expression is vector.</returns>
-               public static bool IsVector(this SymbolicExpression expression)
-               {
-                       if (expression == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       return 
expression.Engine.GetFunction<Rf_isVector>("Rf_isVector")(expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a DynamicVector.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The DynamicVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static DynamicVector AsVector(this SymbolicExpression expression)
-               {
-                       if (expression == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
expression.Type);
-                       return new DynamicVector(expression.Engine, coerced);
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a LogicalVector.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static LogicalVector AsLogical(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.LogicalVector);
-                       return new LogicalVector(expression.Engine, coerced);
-               }
-
-               /// <summary>
-               /// Converts the specified expression to an IntegerVector.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static IntegerVector AsInteger(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.IntegerVector);
-                       return new IntegerVector(expression.Engine, coerced);
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a NumericVector.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static NumericVector AsNumeric(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.NumericVector);
-                       return new NumericVector(expression.Engine, coerced);
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a CharacterVector.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static CharacterVector AsCharacter(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.CharacterVector);
-                       return new CharacterVector(expression.Engine, coerced);
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a ComplexVector.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static ComplexVector AsComplex(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.ComplexVector);
-                       return new ComplexVector(expression.Engine, coerced);
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a RawVector.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static RawVector AsRaw(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.RawVector);
-                       return new RawVector(expression.Engine, coerced);
-               }
-
-               /// <summary>
-               /// Gets whether the specified expression is matrix.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns><c>True</c> if the specified expression is matrix.</returns>
-               public static bool IsMatrix(this SymbolicExpression expression)
-               {
-                       if (expression == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       return 
expression.Engine.GetFunction<Rf_isMatrix>("Rf_isMatrix")(expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a LogicalMatrix.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The LogicalMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static LogicalMatrix AsLogicalMatrix(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-
-                       int rowCount = 0;
-                       int columnCount = 0;
-
-                       if (expression.IsMatrix())
-                       {
-                               if (expression.Type == SymbolicExpressionType.LogicalVector)
-                               {
-                                       return new LogicalMatrix(expression.Engine, 
expression.DangerousGetHandle());
-                               }
-                               else
-                               {
-                                       rowCount = 
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
-                                       columnCount = 
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
-                               }
-                       }
-
-                       if (columnCount == 0)
-                       {
-                               rowCount = 
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
-                               columnCount = 1;
-                       }
-
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.LogicalVector);
-                       var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
-                       SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
-                       var matrix = new LogicalMatrix(expression.Engine, coerced);
-                       matrix.SetAttribute(dimSymbol, dim);
-                       return matrix;
-               }
-
-               /// <summary>
-               /// Converts the specified expression to an IntegerMatrix.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The IntegerMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static IntegerMatrix AsIntegerMatrix(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-
-                       int rowCount = 0;
-                       int columnCount = 0;
-
-                       if (expression.IsMatrix())
-                       {
-                               if (expression.Type == SymbolicExpressionType.IntegerVector)
-                               {
-                                       return new IntegerMatrix(expression.Engine, 
expression.DangerousGetHandle());
-                               }
-                               else
-                               {
-                                       rowCount = 
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
-                                       columnCount = 
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
-                               }
-                       }
-
-                       if (columnCount == 0)
-                       {
-                               rowCount = 
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
-                               columnCount = 1;
-                       }
-
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.IntegerVector);
-                       var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
-                       SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
-                       var matrix = new IntegerMatrix(expression.Engine, coerced);
-                       matrix.SetAttribute(dimSymbol, dim);
-                       return matrix;
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a NumericMatrix.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The NumericMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static NumericMatrix AsNumericMatrix(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-
-                       int rowCount = 0;
-                       int columnCount = 0;
-
-                       if (expression.IsMatrix())
-                       {
-                               if (expression.Type == SymbolicExpressionType.NumericVector)
-                               {
-                                       return new NumericMatrix(expression.Engine, 
expression.DangerousGetHandle());
-                               }
-                               else
-                               {
-                                       rowCount = 
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
-                                       columnCount = 
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
-                               }
-                       }
-
-                       if (columnCount == 0)
-                       {
-                               rowCount = 
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
-                               columnCount = 1;
-                       }
-
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.NumericVector);
-                       var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
-                       SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
-                       var matrix = new NumericMatrix(expression.Engine, coerced);
-                       matrix.SetAttribute(dimSymbol, dim);
-                       return matrix;
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a CharacterMatrix.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The CharacterMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static CharacterMatrix AsCharacterMatrix(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-
-                       int rowCount = 0;
-                       int columnCount = 0;
-
-                       if (expression.IsMatrix())
-                       {
-                               if (expression.Type == SymbolicExpressionType.CharacterVector)
-                               {
-                                       return new CharacterMatrix(expression.Engine, 
expression.DangerousGetHandle());
-                               }
-                               else
-                               {
-                                       rowCount = 
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
-                                       columnCount = 
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
-                               }
-                       }
-
-                       if (columnCount == 0)
-                       {
-                               rowCount = 
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
-                               columnCount = 1;
-                       }
-
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.CharacterVector);
-                       var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
-                       SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
-                       var matrix = new CharacterMatrix(expression.Engine, coerced);
-                       matrix.SetAttribute(dimSymbol, dim);
-                       return matrix;
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a ComplexMatrix.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The ComplexMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static ComplexMatrix AsComplexMatrix(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-
-                       int rowCount = 0;
-                       int columnCount = 0;
-
-                       if (expression.IsMatrix())
-                       {
-                               if (expression.Type == SymbolicExpressionType.ComplexVector)
-                               {
-                                       return new ComplexMatrix(expression.Engine, 
expression.DangerousGetHandle());
-                               }
-                               else
-                               {
-                                       rowCount = 
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
-                                       columnCount = 
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
-                               }
-                       }
-
-                       if (columnCount == 0)
-                       {
-                               rowCount = 
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
-                               columnCount = 1;
-                       }
-
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.ComplexVector);
-                       var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
-                       SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
-                       var matrix = new ComplexMatrix(expression.Engine, coerced);
-                       matrix.SetAttribute(dimSymbol, dim);
-                       return matrix;
-               }
-
-               /// <summary>
-               /// Converts the specified expression to a RawMatrix.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The RawMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
-               public static RawMatrix AsRawMatrix(this SymbolicExpression expression)
-               {
-                       if (!expression.IsVector())
-                       {
-                               return null;
-                       }
-
-                       int rowCount = 0;
-                       int columnCount = 0;
-
-                       if (expression.IsMatrix())
-                       {
-                               if (expression.Type == SymbolicExpressionType.RawVector)
-                               {
-                                       return new RawMatrix(expression.Engine, 
expression.DangerousGetHandle());
-                               }
-                               else
-                               {
-                                       rowCount = 
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
-                                       columnCount = 
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
-                               }
-                       }
-
-                       if (columnCount == 0)
-                       {
-                               rowCount = 
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
-                               columnCount = 1;
-                       }
-
-                       IntPtr coerced = 
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(), 
SymbolicExpressionType.RawVector);
-                       var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
-                       SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
-                       var matrix = new RawMatrix(expression.Engine, coerced);
-                       matrix.SetAttribute(dimSymbol, dim);
-                       return matrix;
-               }
-
-               /// <summary>
-               /// Specifies the expression is an <see cref="REnvironment"/> object or not.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns><c>True</c> if it is an environment.</returns>
-               public static bool IsEnvironment(this SymbolicExpression expression)
-               {
-                       if (expression == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       return 
expression.Engine.GetFunction<Rf_isEnvironment>("Rf_isEnvironment")(expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Gets the expression as an <see cref="REnvironment"/>.
-               /// </summary>
-               /// <param name="expression">The environment.</param>
-               /// <returns>The environment.</returns>
-               public static REnvironment AsEnvironment(this SymbolicExpression expression)
-               {
-                       if (!expression.IsEnvironment())
-                       {
-                               return null;
-                       }
-                       return new REnvironment(expression.Engine, expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Specifies the expression is an <see cref="RDotNet.Expression"/> object or not.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns><c>True</c> if it is an expression.</returns>
-               public static bool IsExpression(this SymbolicExpression expression)
-               {
-                       if (expression == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       return 
expression.Engine.GetFunction<Rf_isExpression>("Rf_isExpression")(expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Gets the expression as an <see cref="RDotNet.Expression"/>.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The expression.</returns>
-               public static Expression AsExpression(this SymbolicExpression expression)
-               {
-                       if (!expression.IsExpression())
-                       {
-                               return null;
-                       }
-                       return new Expression(expression.Engine, expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Specifies the expression is a symbol object or not.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns><c>True</c> if it is a symbol.</returns>
-               public static bool IsSymbol(this SymbolicExpression expression)
-               {
-                       if (expression == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       return 
expression.Engine.GetFunction<Rf_isSymbol>("Rf_isSymbol")(expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Gets the expression as a symbol.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The symbol.</returns>
-               public static Symbol AsSymbol(this SymbolicExpression expression)
-               {
-                       if (!expression.IsSymbol())
-                       {
-                               return null;
-                       }
-                       return new Symbol(expression.Engine, expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Specifies the expression is a language object or not.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns><c>True</c> if it is a language.</returns>
-               public static bool IsLanguage(this SymbolicExpression expression)
-               {
-                       if (expression == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       return 
expression.Engine.GetFunction<Rf_isLanguage>("Rf_isLanguage")(expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Gets the expression as a language.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The language.</returns>
-               public static Language AsLanguage(this SymbolicExpression expression)
-               {
-                       if (!expression.IsLanguage())
-                       {
-                               return null;
-                       }
-                       return new Language(expression.Engine, expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Specifies the expression is a function object or not.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns><c>True</c> if it is a function.</returns>
-               public static bool IsFunction(this SymbolicExpression expression)
-               {
-                       if (expression == null)
-                       {
-                               throw new ArgumentNullException();
-                       }
-                       return 
expression.Engine.GetFunction<Rf_isFunction>("Rf_isFunction")(expression.DangerousGetHandle());
-               }
-
-               /// <summary>
-               /// Gets the expression as a function.
-               /// </summary>
-               /// <param name="expression">The expression.</param>
-               /// <returns>The function.</returns>
-               public static Function AsFunction(this SymbolicExpression expression)
-               {
-                       switch (expression.Type)
-                       {
-                               case SymbolicExpressionType.Closure:
-                                       return new Closure(expression.Engine, 
expression.DangerousGetHandle());
-                               case SymbolicExpressionType.BuiltinFunction:
-                                       return new BuiltinFunction(expression.Engine, 
expression.DangerousGetHandle());
-                               case SymbolicExpressionType.SpecialFunction:
-                                       return new SpecialFunction(expression.Engine, 
expression.DangerousGetHandle());
-                               default:
-                                       throw new ArgumentException();
-                       }
-               }
-       }
-}
+   /// <summary>
+   /// Provides extension methods for <see cref="SymbolicExpression"/>.
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public static class SymbolicExpressionExtension
+   {
+      /// <summary>
+      /// Gets whether the specified expression is list.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns><c>True</c> if the specified expression is list.</returns>
+      public static bool IsList(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         return expression.Engine.GetFunction<Rf_isList>()(expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a GenericVector.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The GenericVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static GenericVector AsList(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+         return new GenericVector(expression.Engine, expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Gets whether the specified expression is data frame.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns><c>True</c> if the specified expression is data frame.</returns>
+      public static bool IsDataFrame(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         return expression.Engine.GetFunction<Rf_isFrame>()(expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a DataFrame.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The DataFrame. Returns <c>null</c> if the specified expression is not vector.</returns>
+      public static DataFrame AsDataFrame(this SymbolicExpression expression)
+      {
+         if (!expression.IsDataFrame())
+         {
+            return null;
+         }
+         return new DataFrame(expression.Engine, expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Gets whether the specified expression is vector.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns><c>True</c> if the specified expression is vector.</returns>
+      public static bool IsVector(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         return expression.Engine.GetFunction<Rf_isVector>()(expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a DynamicVector.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The DynamicVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static DynamicVector AsVector(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
expression.Type);
+         return new DynamicVector(expression.Engine, coerced);
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a LogicalVector.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static LogicalVector AsLogical(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.LogicalVector);
+         return new LogicalVector(expression.Engine, coerced);
+      }
+
+      /// <summary>
+      /// Converts the specified expression to an IntegerVector.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static IntegerVector AsInteger(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.IntegerVector);
+         return new IntegerVector(expression.Engine, coerced);
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a NumericVector.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static NumericVector AsNumeric(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.NumericVector);
+         return new NumericVector(expression.Engine, coerced);
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a CharacterVector.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static CharacterVector AsCharacter(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.CharacterVector);
+         return new CharacterVector(expression.Engine, coerced);
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a ComplexVector.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static ComplexVector AsComplex(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.ComplexVector);
+         return new ComplexVector(expression.Engine, coerced);
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a RawVector.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static RawVector AsRaw(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.RawVector);
+         return new RawVector(expression.Engine, coerced);
+      }
+
+      /// <summary>
+      /// Gets whether the specified expression is matrix.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns><c>True</c> if the specified expression is matrix.</returns>
+      public static bool IsMatrix(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         return expression.Engine.GetFunction<Rf_isMatrix>()(expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a LogicalMatrix.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The LogicalMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static LogicalMatrix AsLogicalMatrix(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+
+         int rowCount = 0;
+         int columnCount = 0;
+
+         if (expression.IsMatrix())
+         {
+            if (expression.Type == SymbolicExpressionType.LogicalVector)
+            {
+               return new LogicalMatrix(expression.Engine, expression.DangerousGetHandle());
+            }
+            else
+            {
+               rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+               columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+            }
+         }
+
+         if (columnCount == 0)
+         {
+            rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+            columnCount = 1;
+         }
+
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.LogicalVector);
+         var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+         SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+         var matrix = new LogicalMatrix(expression.Engine, coerced);
+         matrix.SetAttribute(dimSymbol, dim);
+         return matrix;
+      }
+
+      /// <summary>
+      /// Converts the specified expression to an IntegerMatrix.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The IntegerMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static IntegerMatrix AsIntegerMatrix(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+
+         int rowCount = 0;
+         int columnCount = 0;
+
+         if (expression.IsMatrix())
+         {
+            if (expression.Type == SymbolicExpressionType.IntegerVector)
+            {
+               return new IntegerMatrix(expression.Engine, expression.DangerousGetHandle());
+            }
+            else
+            {
+               rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+               columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+            }
+         }
+
+         if (columnCount == 0)
+         {
+            rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+            columnCount = 1;
+         }
+
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.IntegerVector);
+         var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+         SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+         var matrix = new IntegerMatrix(expression.Engine, coerced);
+         matrix.SetAttribute(dimSymbol, dim);
+         return matrix;
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a NumericMatrix.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The NumericMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static NumericMatrix AsNumericMatrix(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+
+         int rowCount = 0;
+         int columnCount = 0;
+
+         if (expression.IsMatrix())
+         {
+            if (expression.Type == SymbolicExpressionType.NumericVector)
+            {
+               return new NumericMatrix(expression.Engine, expression.DangerousGetHandle());
+            }
+            else
+            {
+               rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+               columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+            }
+         }
+
+         if (columnCount == 0)
+         {
+            rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+            columnCount = 1;
+         }
+
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.NumericVector);
+         var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+         SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+         var matrix = new NumericMatrix(expression.Engine, coerced);
+         matrix.SetAttribute(dimSymbol, dim);
+         return matrix;
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a CharacterMatrix.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The CharacterMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static CharacterMatrix AsCharacterMatrix(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+
+         int rowCount = 0;
+         int columnCount = 0;
+
+         if (expression.IsMatrix())
+         {
+            if (expression.Type == SymbolicExpressionType.CharacterVector)
+            {
+               return new CharacterMatrix(expression.Engine, expression.DangerousGetHandle());
+            }
+            else
+            {
+               rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+               columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+            }
+         }
+
+         if (columnCount == 0)
+         {
+            rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+            columnCount = 1;
+         }
+
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.CharacterVector);
+         var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+         SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+         var matrix = new CharacterMatrix(expression.Engine, coerced);
+         matrix.SetAttribute(dimSymbol, dim);
+         return matrix;
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a ComplexMatrix.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The ComplexMatrix. Returns <c>null</c> if the specified expression is not 
vector.</returns>
+      public static ComplexMatrix AsComplexMatrix(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+
+         int rowCount = 0;
+         int columnCount = 0;
+
+         if (expression.IsMatrix())
+         {
+            if (expression.Type == SymbolicExpressionType.ComplexVector)
+            {
+               return new ComplexMatrix(expression.Engine, expression.DangerousGetHandle());
+            }
+            else
+            {
+               rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+               columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+            }
+         }
+
+         if (columnCount == 0)
+         {
+            rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+            columnCount = 1;
+         }
+
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.ComplexVector);
+         var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+         SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+         var matrix = new ComplexMatrix(expression.Engine, coerced);
+         matrix.SetAttribute(dimSymbol, dim);
+         return matrix;
+      }
+
+      /// <summary>
+      /// Converts the specified expression to a RawMatrix.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The RawMatrix. Returns <c>null</c> if the specified expression is not vector.</returns>
+      public static RawMatrix AsRawMatrix(this SymbolicExpression expression)
+      {
+         if (!expression.IsVector())
+         {
+            return null;
+         }
+
+         int rowCount = 0;
+         int columnCount = 0;
+
+         if (expression.IsMatrix())
+         {
+            if (expression.Type == SymbolicExpressionType.RawVector)
+            {
+               return new RawMatrix(expression.Engine, expression.DangerousGetHandle());
+            }
+            else
+            {
+               rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+               columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+            }
+         }
+
+         if (columnCount == 0)
+         {
+            rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+            columnCount = 1;
+         }
+
+         IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(), 
SymbolicExpressionType.RawVector);
+         var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+         SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+         var matrix = new RawMatrix(expression.Engine, coerced);
+         matrix.SetAttribute(dimSymbol, dim);
+         return matrix;
+      }
+
+      /// <summary>
+      /// Specifies the expression is an <see cref="REnvironment"/> object or not.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns><c>True</c> if it is an environment.</returns>
+      public static bool IsEnvironment(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         return expression.Engine.GetFunction<Rf_isEnvironment>()(expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Gets the expression as an <see cref="REnvironment"/>.
+      /// </summary>
+      /// <param name="expression">The environment.</param>
+      /// <returns>The environment.</returns>
+      public static REnvironment AsEnvironment(this SymbolicExpression expression)
+      {
+         if (!expression.IsEnvironment())
+         {
+            return null;
+         }
+         return new REnvironment(expression.Engine, expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Specifies the expression is an <see cref="RDotNet.Expression"/> object or not.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns><c>True</c> if it is an expression.</returns>
+      public static bool IsExpression(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         return expression.Engine.GetFunction<Rf_isExpression>()(expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Gets the expression as an <see cref="RDotNet.Expression"/>.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The expression.</returns>
+      public static Expression AsExpression(this SymbolicExpression expression)
+      {
+         if (!expression.IsExpression())
+         {
+            return null;
+         }
+         return new Expression(expression.Engine, expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Specifies the expression is a symbol object or not.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns><c>True</c> if it is a symbol.</returns>
+      public static bool IsSymbol(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         return expression.Engine.GetFunction<Rf_isSymbol>()(expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Gets the expression as a symbol.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The symbol.</returns>
+      public static Symbol AsSymbol(this SymbolicExpression expression)
+      {
+         if (!expression.IsSymbol())
+         {
+            return null;
+         }
+         return new Symbol(expression.Engine, expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Specifies the expression is a language object or not.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns><c>True</c> if it is a language.</returns>
+      public static bool IsLanguage(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         return expression.Engine.GetFunction<Rf_isLanguage>()(expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Gets the expression as a language.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The language.</returns>
+      public static Language AsLanguage(this SymbolicExpression expression)
+      {
+         if (!expression.IsLanguage())
+         {
+            return null;
+         }
+         return new Language(expression.Engine, expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Specifies the expression is a function object or not.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns><c>True</c> if it is a function.</returns>
+      public static bool IsFunction(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         return expression.Engine.GetFunction<Rf_isFunction>()(expression.DangerousGetHandle());
+      }
+
+      /// <summary>
+      /// Gets the expression as a function.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The function.</returns>
+      public static Function AsFunction(this SymbolicExpression expression)
+      {
+         switch (expression.Type)
+         {
+            case SymbolicExpressionType.Closure:
+               return new Closure(expression.Engine, expression.DangerousGetHandle());
+
+            case SymbolicExpressionType.BuiltinFunction:
+               return new BuiltinFunction(expression.Engine, expression.DangerousGetHandle());
+
+            case SymbolicExpressionType.SpecialFunction:
+               return new SpecialFunction(expression.Engine, expression.DangerousGetHandle());
+
+            default:
+               throw new ArgumentException();
+         }
+      }
+
+      /// <summary>
+      /// Gets whether the specified expression is factor.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns><c>True</c> if the specified expression is factor.</returns>
+      public static bool IsFactor(this SymbolicExpression expression)
+      {
+         if (expression == null)
+         {
+            throw new ArgumentNullException();
+         }
+         var handle = expression.DangerousGetHandle();
+         return expression.Engine.GetFunction<Rf_isFactor>()(handle);
+      }
+
+      /// <summary>
+      /// Gets the expression as a factor.
+      /// </summary>
+      /// <param name="expression">The expression.</param>
+      /// <returns>The factor.</returns>
+      public static Factor AsFactor(this SymbolicExpression expression)
+      {
+         if (!IsFactor(expression))
+         {
+            throw new ArgumentException("Not a factor.", "expression");
+         }
+         return new Factor(expression.Engine, expression.DangerousGetHandle());
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Utility.cs b/rdotnet/R.NET/Utility.cs
index 8af9bb8..d0e5e13 100644
--- a/rdotnet/R.NET/Utility.cs
+++ b/rdotnet/R.NET/Utility.cs
@@ -1,29 +1,96 @@
 using System;
+using System.Numerics;
 
 namespace RDotNet
 {
-       internal static class Utility
-       {
-               public static T[] AddFirst<T>(T value, T[] array)
-               {
-                       if (array == null)
-                       {
-                               return new[] { value };
-                       }
-                       var newArray = new T[array.Length + 1];
-                       newArray[0] = value;
-                       Array.Copy(array, 0, newArray, 1, array.Length);
-                       return newArray;
-               }
-
-               internal static bool CheckNil(this REngine engine, IntPtr pointer)
-               {
-                       return engine.NilValue.DangerousGetHandle() == pointer;
-               }
-
-               internal static bool CheckUnbound(this REngine engine, IntPtr pointer)
-               {
-                       return engine.UnboundValue.DangerousGetHandle() == pointer;
-               }
-       }
-}
+   internal static class Utility
+   {
+      public static T[] AddFirst<T>(T value, T[] array)
+      {
+         if (array == null)
+         {
+            return new[] { value };
+         }
+         var newArray = new T[array.Length + 1];
+         newArray[0] = value;
+         Array.Copy(array, 0, newArray, 1, array.Length);
+         return newArray;
+      }
+
+      internal static bool CheckNil(this REngine engine, IntPtr pointer)
+      {
+         return engine.NilValue.DangerousGetHandle() == pointer;
+      }
+
+      internal static bool CheckUnbound(this REngine engine, IntPtr pointer)
+      {
+         return engine.UnboundValue.DangerousGetHandle() == pointer;
+      }
+
+      internal static U[,] ArrayConvertAll<T, U>(T[,] array, Func<T, U> fun)
+      {
+         int rows = array.GetLength(0);
+         int cols = array.GetLength(1);
+         U[,] res = new U[rows, cols];
+         for (int i = 0; i < rows; i++)
+            for (int j = 0; j < cols; j++)
+               res[i, j] = fun(array[i, j]);
+         return res;
+      }
+
+      internal static U[] ArrayConvertAllOneDim<T, U>(T[,] array, Func<T, U> fun)
+      {
+         int rows = array.GetLength(0);
+         int cols = array.GetLength(1);
+         U[] res = new U[rows * cols];
+         for (int i = 0; i < rows; i++)
+            for (int j = 0; j < cols; j++)
+               res[rows * j + i] = fun(array[i, j]);
+         return res;
+      }
+
+      // TODO: probably room for extension methods around Matrix inheritors
+      internal static U[,] ArrayConvertAllTwoDim<T, U>(T[] array, Func<T, U> fun, int rows, int cols)
+      {
+         U[,] res = new U[rows,cols];
+         for (int i = 0; i < rows; i++)
+            for (int j = 0; j < cols; j++)
+               res[i, j] = fun(array[rows * j + i]);
+         return res;
+      }
+
+      internal static U[] ArrayConvertOneDim<U>(U[,] array)
+      {
+         return ArrayConvertAllOneDim(array, value => value);
+      }
+
+      // TODO: probably room for extension methods around Matrix inheritors
+      internal static U[,] ArrayConvertAllTwoDim<U>(U[] array, int rows, int cols)
+      {
+         return ArrayConvertAllTwoDim(array, value => value, rows, cols);
+      }
+
+      internal static double[] SerializeComplexToDouble(Complex[] values)
+      {
+         double[] data = new double[2 * values.Length];
+         for (int i = 0; i < data.Length; i++)
+         {
+            data[2 * i] = values[i].Real;
+            data[2 * i + 1] = values[i].Imaginary;
+         }
+         return data;
+      }
+
+      internal static Complex[] DeserializeComplexFromDouble(double[] data)
+      {
+         int dblLen = data.Length;
+         if (dblLen % 2 != 0) throw new ArgumentException("Serialized definition of complexes must be of 
even length");
+         int n = dblLen / 2;
+         var res = new Complex[n];
+         for (int i = 0; i < n; i++)
+            res[i] = new Complex(data[2 * i], data[2 * i + 1]);
+         return res;
+      }
+
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Vector.cs b/rdotnet/R.NET/Vector.cs
index 876e134..00ebf21 100644
--- a/rdotnet/R.NET/Vector.cs
+++ b/rdotnet/R.NET/Vector.cs
@@ -1,206 +1,245 @@
-using System;
+using RDotNet.Diagnostics;
+using RDotNet.Internals;
+using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Linq;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
-using RDotNet.Internals;
 
 namespace RDotNet
 {
-       /// <summary>
-       /// A vector base.
-       /// </summary>
-       /// <typeparam name="T">The element type.</typeparam>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public abstract class Vector<T> : SymbolicExpression, IEnumerable<T>
-       {
-               /// <summary>
-               /// Creates a new vector with the specified size.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="type">The element type.</param>
-               /// <param name="length">The length of vector.</param>
-               protected Vector(REngine engine, SymbolicExpressionType type, int length)
-                       : base(engine, engine.GetFunction<Rf_allocVector>("Rf_allocVector")(type, length))
-               {
-                       if (length <= 0)
-                       {
-                               throw new ArgumentOutOfRangeException("length");
-                       }
-                       var empty = new byte[length * DataSize];
-                       Marshal.Copy(empty, 0, DataPointer, empty.Length);
-               }
-
-               /// <summary>
-               /// Creates a new vector with the specified values.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="type">The element type.</param>
-               /// <param name="vector">The elements of vector.</param>
-               protected Vector(REngine engine, SymbolicExpressionType type, IEnumerable<T> vector)
-                       : base(engine, engine.GetFunction<Rf_allocVector>("Rf_allocVector")(type, 
vector.Count()))
-               {
-                       int index = 0;
-                       foreach (T element in vector)
-                       {
-                               this[index++] = element;
-                       }
-               }
-
-               /// <summary>
-               /// Creates a new instance for a vector.
-               /// </summary>
-               /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
-               /// <param name="coerced">The pointer to a vector.</param>
-               protected Vector(REngine engine, IntPtr coerced)
-                       : base(engine, coerced)
-               {}
-
-               /// <summary>
-               /// Gets or sets the element at the specified index.
-               /// </summary>
-               /// <param name="index">The zero-based index of the element to get or set.</param>
-               /// <returns>The element at the specified index.</returns>
-               public abstract T this[int index] { get; set; }
-
-               /// <summary>
-               /// Gets or sets the element at the specified name.
-               /// </summary>
-               /// <param name="name">The name of the element to get or set.</param>
-               /// <returns>The element at the specified name.</returns>
-               public virtual T this[string name]
-               {
-                       get
-                       {
-                               if (name == null)
-                               {
-                                       throw new ArgumentNullException("name");
-                               }
-                               string[] names = Names;
-                               if (names == null)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               int index = Array.IndexOf(names, name);
-                               return this[index];
-                       }
-                       set
-                       {
-                               string[] names = Names;
-                               if (names == null)
-                               {
-                                       throw new InvalidOperationException();
-                               }
-                               int index = Array.IndexOf(names, name);
-                               this[index] = value;
-                       }
-               }
-
-               /// <summary>
-               /// Gets the number of elements.
-               /// </summary>
-               public int Length
-               {
-                       get { return Engine.GetFunction<Rf_length>("Rf_length")(handle); }
-               }
-
-               /// <summary>
-               /// Gets the names of elements.
-               /// </summary>
-               public string[] Names
-               {
-                       get
-                       {
-                               SymbolicExpression namesSymbol = Engine.GetPredefinedSymbol("R_NamesSymbol");
-                               SymbolicExpression names = GetAttribute(namesSymbol);
-                               if (names == null)
-                               {
-                                       return null;
-                               }
-                               CharacterVector namesVector = names.AsCharacter();
-                               if (namesVector == null)
-                               {
-                                       return null;
-                               }
-
-                               int length = namesVector.Length;
-                               var result = new string[length];
-                               namesVector.CopyTo(result, length);
-                               return result;
-                       }
-               }
-
-               /// <summary>
-               /// Gets the pointer for the first element.
-               /// </summary>
-               protected IntPtr DataPointer
-               {
-                       get { return IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC))); }
-               }
-
-               /// <summary>
-               /// Gets the size of an element in byte.
-               /// </summary>
-               protected abstract int DataSize { get; }
-
-               #region IEnumerable<T> Members
-
-               public IEnumerator<T> GetEnumerator()
-               {
-                       for (int index = 0; index < Length; index++)
-                       {
-                               yield return this[index];
-                       }
-               }
-
-               IEnumerator IEnumerable.GetEnumerator()
-               {
-                       return GetEnumerator();
-               }
-
-               #endregion
-
-               /// <summary>
-               /// Copies the elements to the specified array.
-               /// </summary>
-               /// <param name="destination">The destination array.</param>
-               /// <param name="length">The length to copy.</param>
-               /// <param name="sourceIndex">The first index of the vector.</param>
-               /// <param name="destinationIndex">The first index of the destination array.</param>
-               public void CopyTo(T[] destination, int length, int sourceIndex = 0, int destinationIndex = 0)
-               {
-                       if (destination == null)
-                       {
-                               throw new ArgumentNullException("destination");
-                       }
-                       if (length < 0)
-                       {
-                               throw new IndexOutOfRangeException("length");
-                       }
-                       if (sourceIndex < 0 || Length < sourceIndex + length)
-                       {
-                               throw new IndexOutOfRangeException("sourceIndex");
-                       }
-                       if (destinationIndex < 0 || destination.Length < destinationIndex + length)
-                       {
-                               throw new IndexOutOfRangeException("destinationIndex");
-                       }
-
-                       while (--length >= 0)
-                       {
-                               destination[destinationIndex++] = this[sourceIndex++];
-                       }
-               }
-
-               /// <summary>
-               /// Gets the offset for the specified index.
-               /// </summary>
-               /// <param name="index">The index.</param>
-               /// <returns>The offset.</returns>
-               protected int GetOffset(int index)
-               {
-                       return DataSize * index;
-               }
-       }
-}
+   /// <summary>
+   /// A vector base.
+   /// </summary>
+   /// <typeparam name="T">The element type.</typeparam>
+   [DebuggerDisplay("Length = {Length}; RObjectType = {Type}")]
+   [DebuggerTypeProxy(typeof(VectorDebugView<>))]
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public abstract class Vector<T> : SymbolicExpression, IEnumerable<T>
+   {
+      /// <summary>
+      /// Creates a new vector with the specified size.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="type">The element type.</param>
+      /// <param name="length">The length of vector.</param>
+      protected Vector(REngine engine, SymbolicExpressionType type, int length)
+         : base(engine, engine.GetFunction<Rf_allocVector>()(type, length))
+      {
+         if (length <= 0)
+         {
+            throw new ArgumentOutOfRangeException("length");
+         }
+         var empty = new byte[length * DataSize];
+         Marshal.Copy(empty, 0, DataPointer, empty.Length);
+      }
+
+      /// <summary>
+      /// Creates a new vector with the specified values.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="type">The element type.</param>
+      /// <param name="vector">The elements of vector.</param>
+      protected Vector(REngine engine, SymbolicExpressionType type, IEnumerable<T> vector)
+         : base(engine, engine.GetFunction<Rf_allocVector>()(type, vector.Count()))
+      {
+         int index = 0;
+         SetVector(vector.ToArray());
+         //foreach (T element in vector)
+         //{
+         //   this[index++] = element;
+         //}
+      }
+
+      /// <summary>
+      /// Creates a new instance for a vector.
+      /// </summary>
+      /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+      /// <param name="coerced">The pointer to a vector.</param>
+      protected Vector(REngine engine, IntPtr coerced)
+         : base(engine, coerced)
+      { }
+
+      /// <summary>
+      /// Gets or sets the element at the specified index.
+      /// </summary>
+      /// <param name="index">The zero-based index of the element to get or set.</param>
+      /// <returns>The element at the specified index.</returns>
+      public abstract T this[int index] { get; set; }
+
+      /// <summary>
+      /// Initializes the content of a vector with runtime speed in mind. This method protects the R vector, 
then call SetVectorDirect.
+      /// </summary>
+      /// <param name="values">The values to put in the vector. Length must match exactly the vector 
size</param>
+      public void SetVector(T[] values)
+      {
+         if(values.Length != this.Length)
+            throw new ArgumentException("The length of the array provided differs from the vector length");
+         using (new ProtectedPointer(this))
+         {
+            SetVectorDirect(values);
+         }
+      }
+
+      /// <summary>
+      /// A method to transfer data from native to .NET managed array equivalents fast.
+      /// </summary>
+      /// <returns>Array of values in the vector</returns>
+      public T[] ToArrayFast()
+      {
+         using (new ProtectedPointer(this))
+         {
+            return GetArrayFast();
+         }
+      }
+
+      protected abstract T[] GetArrayFast();
+
+      /// <summary>
+      /// Initializes the content of a vector with runtime speed in mind. The vector must already be 
protected before calling this method.
+      /// </summary>
+      /// <param name="values">The values to put in the vector. Length must match exactly the vector 
size</param>
+      protected abstract void SetVectorDirect(T[] values);
+
+      /// <summary>
+      /// Gets or sets the element at the specified name.
+      /// </summary>
+      /// <param name="name">The name of the element to get or set.</param>
+      /// <returns>The element at the specified name.</returns>
+      public virtual T this[string name]
+      {
+         get
+         {
+            if (name == null)
+            {
+               throw new ArgumentNullException("name");
+            }
+            string[] names = Names;
+            if (names == null)
+            {
+               throw new InvalidOperationException();
+            }
+            int index = Array.IndexOf(names, name);
+            return this[index];
+         }
+         set
+         {
+            string[] names = Names;
+            if (names == null)
+            {
+               throw new InvalidOperationException();
+            }
+            int index = Array.IndexOf(names, name);
+            this[index] = value;
+         }
+      }
+
+      /// <summary>
+      /// Gets the number of elements.
+      /// </summary>
+      public int Length
+      {
+         get { return Engine.GetFunction<Rf_length>()(handle); }
+      }
+
+      /// <summary>
+      /// Gets the names of elements.
+      /// </summary>
+      public string[] Names
+      {
+         get
+         {
+            SymbolicExpression namesSymbol = Engine.GetPredefinedSymbol("R_NamesSymbol");
+            SymbolicExpression names = GetAttribute(namesSymbol);
+            if (names == null)
+            {
+               return null;
+            }
+            CharacterVector namesVector = names.AsCharacter();
+            if (namesVector == null)
+            {
+               return null;
+            }
+
+            int length = namesVector.Length;
+            var result = new string[length];
+            namesVector.CopyTo(result, length);
+            return result;
+         }
+      }
+
+      /// <summary>
+      /// Gets the pointer for the first element.
+      /// </summary>
+      protected IntPtr DataPointer
+      {
+         get { return IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC))); }
+      }
+
+      /// <summary>
+      /// Gets the size of an element in byte.
+      /// </summary>
+      protected abstract int DataSize { get; }
+
+      #region IEnumerable<T> Members
+
+      public IEnumerator<T> GetEnumerator()
+      {
+         for (int index = 0; index < Length; index++)
+         {
+            yield return this[index];
+         }
+      }
+
+      IEnumerator IEnumerable.GetEnumerator()
+      {
+         return GetEnumerator();
+      }
+
+      #endregion IEnumerable<T> Members
+
+      /// <summary>
+      /// Copies the elements to the specified array.
+      /// </summary>
+      /// <param name="destination">The destination array.</param>
+      /// <param name="length">The length to copy.</param>
+      /// <param name="sourceIndex">The first index of the vector.</param>
+      /// <param name="destinationIndex">The first index of the destination array.</param>
+      public void CopyTo(T[] destination, int length, int sourceIndex = 0, int destinationIndex = 0)
+      {
+         if (destination == null)
+         {
+            throw new ArgumentNullException("destination");
+         }
+         if (length < 0)
+         {
+            throw new IndexOutOfRangeException("length");
+         }
+         if (sourceIndex < 0 || Length < sourceIndex + length)
+         {
+            throw new IndexOutOfRangeException("sourceIndex");
+         }
+         if (destinationIndex < 0 || destination.Length < destinationIndex + length)
+         {
+            throw new IndexOutOfRangeException("destinationIndex");
+         }
+
+         while (--length >= 0)
+         {
+            destination[destinationIndex++] = this[sourceIndex++];
+         }
+      }
+
+      /// <summary>
+      /// Gets the offset for the specified index.
+      /// </summary>
+      /// <param name="index">The index.</param>
+      /// <returns>The offset.</returns>
+      protected int GetOffset(int index)
+      {
+         return DataSize * index;
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/RDotNet.NativeLibrary/Makefile b/rdotnet/RDotNet.NativeLibrary/Makefile
new file mode 100644
index 0000000..b6cdbcf
--- /dev/null
+++ b/rdotnet/RDotNet.NativeLibrary/Makefile
@@ -0,0 +1,777 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# rdotnet/RDotNet.NativeLibrary/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
+pkgdatadir = $(datadir)/chronojump
+pkgincludedir = $(includedir)/chronojump
+pkglibdir = $(libdir)/chronojump
+pkglibexecdir = $(libexecdir)/chronojump
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-mingw32
+host_triplet = i686-pc-mingw32
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/build/build.environment.mk \
+       $(top_srcdir)/build/build.mk \
+       $(top_srcdir)/build/build.rules.mk
+#am__append_1 = " $(NUNIT_LIBS)"
+subdir = rdotnet/RDotNet.NativeLibrary
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+       $(top_srcdir)/build/m4/shamrock/mono.m4 \
+       $(top_srcdir)/build/m4/shamrock/programs.m4 \
+       $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" \
+       "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)" \
+       "$(DESTDIR)$(logo_48dir)"
+SCRIPTS = $(module_SCRIPTS)
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+DATA = $(desktop_DATA) $(images_DATA) $(logo_DATA) $(logo_48_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = aclocal -Ic:/gstreamer-sdk/0.10/x86/share/aclocal 
-IC:/MinGW/msys/1.0/home/chronojump/cerbero/build-tools/share/aclocal
+ACLOCAL_AMFLAGS = -I build/m4/shamrock -I build/m4/shave ${ACLOCAL_FLAGS}
+ALL_LINGUAS = 
+AMTAR = $${TAR-tar}
+AR = i686-w64-mingw32-ar
+AUTOCONF = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoconf
+AUTOHEADER = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoheader
+AUTOMAKE = ${SHELL} /usr/home/chronojump/chronojump/missing --run automake-1.12
+AWK = gawk
+CATALOGS = 
+CATOBJEXT = .gmo
+CC = i686-w64-mingw32-gcc
+CCDEPMODE = depmode=gcc3
+CESARPLAYER_CFLAGS = -mms-bitfields -Ic:/gstreamer-sdk/0.10/x86/include/gtk-2.0 
-Ic:/gstreamer-sdk/0.10/x86/lib/gtk-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/atk-1.0 
-Ic:/gstreamer-sdk/0.10/x86/include/cairo -Ic:/gstreamer-sdk/0.10/x86/include/gdk-pixbuf-2.0 
-Ic:/gstreamer-sdk/0.10/x86/include/pango-1.0 -Ic:/gstreamer-sdk/0.10/x86/include/glib-2.0 
-Ic:/gstreamer-sdk/0.10/x86/lib/glib-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/pixman-1 
-Ic:/gstreamer-sdk/0.10/x86/include/fontconfig -Ic:/gstreamer-sdk/0.10/x86/include/freetype2 
-Ic:/gstreamer-sdk/0.10/x86/include/libpng15 -Ic:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10 
-Ic:/gstreamer-sdk/0.10/x86/include/libxml2  
+CESARPLAYER_LIBS = -Lc:/gstreamer-sdk/0.10/x86/lib -lgtk-win32-2.0 -latk-1.0 -lgdk-win32-2.0 
-lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgio-2.0 -lgstaudio-0.10 
-lgstvideo-0.10 -lgstpbutils-0.10 -lgstinterfaces-0.10 -lgstapp-0.10 -lgstbase-0.10 -lgsttag-0.10 
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lxml2 -lglib-2.0 -lintl  
+CFLAGS = -Wall -g -O2 -DWINVER=0x0501
+CPP = i686-w64-mingw32-cpp
+CPPFLAGS = 
+CYGPATH_W = echo
+DATADIRNAME = share
+DEFS = -DPACKAGE_NAME=\"chronojump\" -DPACKAGE_TARNAME=\"chronojump\" -DPACKAGE_VERSION=\"1.3.9\" 
-DPACKAGE_STRING=\"chronojump\ 1.3.9\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"chronojump\" 
-DVERSION=\"1.3.9\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 
-DHAVE_UNISTD_H=1 -DLT_OBJDIR=\".libs/\" -DGETTEXT_PACKAGE=\"chronojump\" -DHAVE_LOCALE_H=1 
-DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DENABLE_NLS=1 -DOSTYPE_WINDOWS=1
+DEPDIR = .deps
+DLLTOOL = i686-w64-mingw32-dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = .exe
+FGREP = /bin/grep -F
+GETTEXT_PACKAGE = chronojump
+GLADE_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml  
+GLADE_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glade-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll  
+GLIB_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml  
+GLIB_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll  
+GMOFILES = 
+GMSGFMT = /usr/home/chronojump/cerbero/build-tools/bin/msgfmt
+GREP = /bin/grep
+GTK_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml 
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml  
+GTK_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll 
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll  
+INSTALL = /bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+INSTOBJEXT = .mo
+INTLLIBS = -lintl 
+INTLTOOL_EXTRACT = /usr/home/chronojump/cerbero/build-tools/bin/intltool-extract
+INTLTOOL_MERGE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-merge
+INTLTOOL_PERL = /bin/perl
+INTLTOOL_UPDATE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-update
+LD = i686-w64-mingw32-ld
+LDFLAGS = -Lc:/gstreamer-sdk/0.10/x86/lib 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = cp -p
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /usr/home/chronojump/chronojump/missing --run makeinfo
+MANIFEST_TOOL = :
+MCS = /c/gstreamer-sdk/0.10/x86/bin/dmcs
+MKDIR_P = /bin/mkdir -p
+MKINSTALLDIRS = ./mkinstalldirs
+MONO = /c/gstreamer-sdk/0.10/x86/bin/mono
+MONO_MODULE_CFLAGS =  
+MONO_MODULE_LIBS =  
+MSGFMT = msgfmt
+MSGFMT_OPTS = -c
+MSGMERGE = /usr/home/chronojump/cerbero/build-tools/bin/msgmerge
+NM = i686-w64-mingw32-nm
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL = 
+OTOOL64 = 
+PACKAGE = chronojump
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = chronojump
+PACKAGE_STRING = chronojump 1.3.9
+PACKAGE_TARNAME = chronojump
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.3.9
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/home/chronojump/cerbero/build-tools/bin/pkg-config
+PKG_CONFIG_LIBDIR = c:/gstreamer-sdk/0.10/x86/lib/pkgconfig
+PKG_CONFIG_PATH = c:/gstreamer-sdk/0.10/x86/share/pkgconfig
+POFILES = 
+POSUB = po
+PO_IN_DATADIR_FALSE = 
+PO_IN_DATADIR_TRUE = 
+PYTHON = /c/Python27/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_PLATFORM = win32
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.7
+RANLIB = i686-w64-mingw32-ranlib
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/sh
+STRIP = i686-w64-mingw32-strip
+USE_NLS = yes
+VERSION = 1.3.9
+XGETTEXT = /usr/home/chronojump/cerbero/build-tools/bin/xgettext
+abs_builddir = /usr/home/chronojump/chronojump/rdotnet/RDotNet.NativeLibrary
+abs_srcdir = /usr/home/chronojump/chronojump/rdotnet/RDotNet.NativeLibrary
+abs_top_builddir = /usr/home/chronojump/chronojump
+abs_top_srcdir = /usr/home/chronojump/chronojump
+ac_ct_AR = 
+ac_ct_CC = i686-w64-mingw32-gcc
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-mingw32
+build_alias = 
+build_cpu = i686
+build_os = mingw32
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = /c/gstreamer-sdk/0.10/x86
+expanded_bindir = /c/gstreamer-sdk/0.10/x86/bin
+expanded_datadir = /c/gstreamer-sdk/0.10/x86/share
+expanded_libdir = /c/gstreamer-sdk/0.10/x86/lib
+host = i686-pc-mingw32
+host_alias = 
+host_cpu = i686
+host_os = mingw32
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /usr/home/chronojump/chronojump/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/chronojump
+pkgpythondir = ${pythondir}/chronojump
+prefix = /c/gstreamer-sdk/0.10/x86
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}\Lib\site-packages
+pythondir = ${prefix}\Lib\site-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+ASSEMBLY = RDotNet.NativeLibrary
+TARGET = library
+LINK = $(REF_DEP_RDOTNET_NATIVE) $(am__append_1)
+SOURCES = \
+    Properties/AssemblyInfo.cs \
+    UnmanagedDll.cs \
+    NativeUtility.cs
+
+#ASSEMBLY_BUILD_FLAGS = -define:UNIX
+
+# Initializers
+MONO_BASE_PATH = 
+MONO_ADDINS_PATH = 
+
+# Install Paths
+DEFAULT_INSTALL_DIR = $(pkglibdir)
+
+# External libraries to link against, generated from configure
+LINK_SYSTEM = -r:System
+LINK_SYSTEM_CORE = -r:System.Core
+LINK_SYSTEM_DATA_DATASETEXTENSTIONS = -r:System.Data.DataSetExtensions
+LINK_SYSTEMDATA = -r:System.Data
+LINK_SYSTEM_DRAWING = -r:System.Drawing
+LINK_SYSTEM_NUMERICS = -r:System.Numerics
+LINK_SYSTEM_XML = -r:System.Xml
+LINK_SYSTEM_XML_LINQ = -r:System.Xml.Linq
+LINK_SYSTEM_WEB_SERVICES = -r:System.Web.Services
+LINK_MICROSOFT_CSHARP = -r:Microsoft.CSharp
+LINK_CAIRO = -r:Mono.Cairo
+LINK_MONO_POSIX = -r:Mono.Posix
+LINK_MONO_DATA_SQLITE = -r:Mono.Data.Sqlite
+LINK_GLIB = $(GLIB_SHARP_20_LIBS)
+LINK_GTK = $(GTK_SHARP_20_LIBS)
+LINK_GLADE = $(GLADE_SHARP_20_LIBS)
+LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll
+LINK_RDOTNET = -r:$(DIR_BIN)/RDotNet.dll
+LINK_RDOTNET_NATIVE = -r:$(DIR_BIN)/RDotNet.NativeLibrary.dll
+REF_DEP_CHRONOJUMP = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEMDATA) \
+       $(LINK_SYSTEM_DRAWING) \
+       $(LINK_SYSTEM_WEB_SERVICES) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_MONO_DATA_SQLITE) \
+       $(LINK_GLIB) \
+       $(LINK_GLADE) \
+       $(LINK_GTK) \
+       $(LINK_CESARPLAYER) \
+       $(LINK_RDOTNET) \
+       $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CESARPLAYER = \
+       $(LINK_SYSTEM) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_GLIB) \
+       $(LINK_GTK)
+
+REF_DEP_RDOTNET_NATIVE = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEM_CORE) \
+       $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_SYSTEM_XML_LINQ) \
+       $(LINK_MICROSOFT_CSHARP)
+
+REF_DEP_RDOTNET = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEM_CORE) \
+       $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+       $(LINK_SYSTEM_NUMERICS) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_SYSTEM_XML_LINQ) \
+       $(LINK_MICROSOFT_CSHARP) \
+       $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CHRONOJUMP_SERVER = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEMDATA) \
+       $(LINK_SYSTEM_WEB_SERVICES) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_MONO_DATA_SQLITE)
+
+DIR_BIN = $(top_builddir)/bin
+
+# Cute hack to replace a space with something
+colon := :
+empty := 
+space := $(empty) $(empty)
+
+# Build path to allow running uninstalled
+RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH))
+UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq
+BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE)
+SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
+#SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs
+SUBST = ,
+RESOURCES_D := $(foreach res,$(RESOURCES),$(firstword $(subst $(SUBST), ,$(strip $(res)))))
+RESOURCES_DIST := $(addprefix $(srcdir)/, $(RESOURCES_D))
+RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES))
+RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \
+       -resource:$(resource))
+
+INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)"
+ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET)))
+ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION)
+INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR)))
+#ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS"
+FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE))
+DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/')
+OUTPUT_FILES = \
+       $(ASSEMBLY_FILE) \
+       $(ASSEMBLY_FILE).mdb \
+       $(DLLCONFIG)
+
+moduledir = $(INSTALL_DIR_RESOLVED)
+module_SCRIPTS = $(OUTPUT_FILES)
+desktopdir = $(datadir)/applications
+desktop_in_files = $(DESKTOP_FILE)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+imagesdir = ${datarootdir}/chronojump/images
+images_DATA = $(IMAGES)
+logo_48dir = ${datarootdir}/icons/hicolor/48x48/apps
+logo_48_DATA = $(LOGO_48)
+logodir = ${datarootdir}/icons/hicolor/scalable/apps
+logo_DATA = $(LOGO)
+EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_DIST) $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(LOGO_48) 
$(desktop_in_files)
+CLEANFILES = $(OUTPUT_FILES)
+DISTCLEANFILES = *.pidb $(desktop_DATA)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk 
$(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/RDotNet.NativeLibrary/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign rdotnet/RDotNet.NativeLibrary/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+$(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-moduleSCRIPTS: $(module_SCRIPTS)
+       @$(NORMAL_INSTALL)
+       @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(moduledir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(moduledir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n' \
+           -e 'h;s|.*|.|' \
+           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+             if (++n[d] == $(am__install_max)) { \
+               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+           else { print "f", d "/" $$4, $$1 } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+            test -z "$$files" || { \
+              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \
+              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \
+            } \
+       ; done
+
+uninstall-moduleSCRIPTS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
+       dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-desktopDATA: $(desktop_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+       done
+
+uninstall-desktopDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
+install-imagesDATA: $(images_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \
+       done
+
+uninstall-imagesDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir)
+install-logoDATA: $(logo_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(logodir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(logodir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logodir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(logodir)" || exit $$?; \
+       done
+
+uninstall-logoDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(logodir)'; $(am__uninstall_files_from_dir)
+install-logo_48DATA: $(logo_48_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(logo_48dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(logo_48dir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logo_48dir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(logo_48dir)" || exit $$?; \
+       done
+
+uninstall-logo_48DATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(logo_48dir)'; $(am__uninstall_files_from_dir)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)" 
"$(DESTDIR)$(logodir)" "$(DESTDIR)$(logo_48dir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-desktopDATA install-imagesDATA \
+       install-logoDATA install-logo_48DATA install-moduleSCRIPTS
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-desktopDATA uninstall-imagesDATA \
+       uninstall-logoDATA uninstall-logo_48DATA \
+       uninstall-moduleSCRIPTS
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: install-am install-data-am install-strip uninstall-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-data-hook \
+       install-desktopDATA install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am \
+       install-imagesDATA install-info install-info-am \
+       install-logoDATA install-logo_48DATA install-man \
+       install-moduleSCRIPTS install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am uninstall uninstall-am uninstall-desktopDATA \
+       uninstall-hook uninstall-imagesDATA uninstall-logoDATA \
+       uninstall-logo_48DATA uninstall-moduleSCRIPTS
+
+
+%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) 
-d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+
+all: $(ASSEMBLY_FILE)
+
+run: 
+       @pushd $(top_builddir); \
+       make run; \
+       popd;
+
+test:
+       @pushd $(top_builddir)/tests; \
+       make $(ASSEMBLY); \
+       popd;
+
+build-debug:
+       @echo $(DEP_LINK)
+
+$(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE)
+
+$(ASSEMBLY_FILE): $(SOURCES_BUILD) $(DEP_LINK)
+       @mkdir -p $(top_builddir)/bin
+       $(MCS) \
+               $(GMCS_FLAGS) \
+               $(ASSEMBLY_BUILD_FLAGS) \
+               -nowarn:0278 -nowarn:0078 $$warn -unsafe \
+               -define:HAVE_GTK -codepage:utf8 \
+               -debug -target:$(TARGET) -out:$@ \
+               $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \
+               $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
+       @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \
+               cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \
+       fi;
+
+#theme-icons: $(THEME_ICONS_SOURCE)
+#      @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+
+install-data-hook: $(THEME_ICONS_SOURCE)
+       @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+       $(EXTRA_INSTALL_DATA_HOOK)
+
+uninstall-hook: $(THEME_ICONS_SOURCE)
+       @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+       $(EXTRA_UNINSTALL_HOOK)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/RDotNet.NativeLibrary/Makefile.in b/rdotnet/RDotNet.NativeLibrary/Makefile.in
new file mode 100644
index 0000000..f2eabc6
--- /dev/null
+++ b/rdotnet/RDotNet.NativeLibrary/Makefile.in
@@ -0,0 +1,777 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ SET_MAKE@
+
+
+VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/build/build.environment.mk \
+       $(top_srcdir)/build/build.mk \
+       $(top_srcdir)/build/build.rules.mk
+ ENABLE_TESTS_TRUE@am__append_1 = " $(NUNIT_LIBS)"
+subdir = rdotnet/RDotNet.NativeLibrary
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+       $(top_srcdir)/build/m4/shamrock/mono.m4 \
+       $(top_srcdir)/build/m4/shamrock/programs.m4 \
+       $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" \
+       "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)" \
+       "$(DESTDIR)$(logo_48dir)"
+SCRIPTS = $(module_SCRIPTS)
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+DATA = $(desktop_DATA) $(images_DATA) $(logo_DATA) $(logo_48_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@
+CESARPLAYER_LIBS = @CESARPLAYER_LIBS@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLADE_SHARP_20_CFLAGS = @GLADE_SHARP_20_CFLAGS@
+GLADE_SHARP_20_LIBS = @GLADE_SHARP_20_LIBS@
+GLIB_SHARP_20_CFLAGS = @GLIB_SHARP_20_CFLAGS@
+GLIB_SHARP_20_LIBS = @GLIB_SHARP_20_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GTK_SHARP_20_CFLAGS = @GTK_SHARP_20_CFLAGS@
+GTK_SHARP_20_LIBS = @GTK_SHARP_20_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MCS = @MCS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MONO = @MONO@
+MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
+MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+expanded_bindir = @expanded_bindir@
+expanded_datadir = @expanded_datadir@
+expanded_libdir = @expanded_libdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ASSEMBLY = RDotNet.NativeLibrary
+TARGET = library
+LINK = $(REF_DEP_RDOTNET_NATIVE) $(am__append_1)
+SOURCES = \
+    Properties/AssemblyInfo.cs \
+    UnmanagedDll.cs \
+    NativeUtility.cs
+
+ OSTYPE_WINDOWS_FALSE@ASSEMBLY_BUILD_FLAGS = -define:UNIX
+
+# Initializers
+MONO_BASE_PATH = 
+MONO_ADDINS_PATH = 
+
+# Install Paths
+DEFAULT_INSTALL_DIR = $(pkglibdir)
+
+# External libraries to link against, generated from configure
+LINK_SYSTEM = -r:System
+LINK_SYSTEM_CORE = -r:System.Core
+LINK_SYSTEM_DATA_DATASETEXTENSTIONS = -r:System.Data.DataSetExtensions
+LINK_SYSTEMDATA = -r:System.Data
+LINK_SYSTEM_DRAWING = -r:System.Drawing
+LINK_SYSTEM_NUMERICS = -r:System.Numerics
+LINK_SYSTEM_XML = -r:System.Xml
+LINK_SYSTEM_XML_LINQ = -r:System.Xml.Linq
+LINK_SYSTEM_WEB_SERVICES = -r:System.Web.Services
+LINK_MICROSOFT_CSHARP = -r:Microsoft.CSharp
+LINK_CAIRO = -r:Mono.Cairo
+LINK_MONO_POSIX = -r:Mono.Posix
+LINK_MONO_DATA_SQLITE = -r:Mono.Data.Sqlite
+LINK_GLIB = $(GLIB_SHARP_20_LIBS)
+LINK_GTK = $(GTK_SHARP_20_LIBS)
+LINK_GLADE = $(GLADE_SHARP_20_LIBS)
+LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll
+LINK_RDOTNET = -r:$(DIR_BIN)/RDotNet.dll
+LINK_RDOTNET_NATIVE = -r:$(DIR_BIN)/RDotNet.NativeLibrary.dll
+REF_DEP_CHRONOJUMP = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEMDATA) \
+       $(LINK_SYSTEM_DRAWING) \
+       $(LINK_SYSTEM_WEB_SERVICES) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_MONO_DATA_SQLITE) \
+       $(LINK_GLIB) \
+       $(LINK_GLADE) \
+       $(LINK_GTK) \
+       $(LINK_CESARPLAYER) \
+       $(LINK_RDOTNET) \
+       $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CESARPLAYER = \
+       $(LINK_SYSTEM) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_GLIB) \
+       $(LINK_GTK)
+
+REF_DEP_RDOTNET_NATIVE = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEM_CORE) \
+       $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_SYSTEM_XML_LINQ) \
+       $(LINK_MICROSOFT_CSHARP)
+
+REF_DEP_RDOTNET = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEM_CORE) \
+       $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+       $(LINK_SYSTEM_NUMERICS) \
+       $(LINK_SYSTEM_XML) \
+       $(LINK_SYSTEM_XML_LINQ) \
+       $(LINK_MICROSOFT_CSHARP) \
+       $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CHRONOJUMP_SERVER = \
+       $(LINK_SYSTEM) \
+       $(LINK_SYSTEMDATA) \
+       $(LINK_SYSTEM_WEB_SERVICES) \
+       $(LINK_MONO_POSIX) \
+       $(LINK_MONO_DATA_SQLITE)
+
+DIR_BIN = $(top_builddir)/bin
+
+# Cute hack to replace a space with something
+colon := :
+empty := 
+space := $(empty) $(empty)
+
+# Build path to allow running uninstalled
+RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH))
+UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq
+BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE)
+SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
+#SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs
+SUBST = ,
+RESOURCES_D := $(foreach res,$(RESOURCES),$(firstword $(subst $(SUBST), ,$(strip $(res)))))
+RESOURCES_DIST := $(addprefix $(srcdir)/, $(RESOURCES_D))
+RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES))
+RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \
+       -resource:$(resource))
+
+INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)"
+ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET)))
+ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION)
+INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR)))
+ ENABLE_TESTS_TRUE@ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS"
+FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE))
+DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/')
+OUTPUT_FILES = \
+       $(ASSEMBLY_FILE) \
+       $(ASSEMBLY_FILE).mdb \
+       $(DLLCONFIG)
+
+moduledir = $(INSTALL_DIR_RESOLVED)
+module_SCRIPTS = $(OUTPUT_FILES)
+desktopdir = $(datadir)/applications
+desktop_in_files = $(DESKTOP_FILE)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+imagesdir = @datadir@/@PACKAGE@/images
+images_DATA = $(IMAGES)
+logo_48dir = @datadir@/icons/hicolor/48x48/apps
+logo_48_DATA = $(LOGO_48)
+logodir = @datadir@/icons/hicolor/scalable/apps
+logo_DATA = $(LOGO)
+EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_DIST) $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(LOGO_48) 
$(desktop_in_files)
+CLEANFILES = $(OUTPUT_FILES)
+DISTCLEANFILES = *.pidb $(desktop_DATA)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk 
$(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/RDotNet.NativeLibrary/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign rdotnet/RDotNet.NativeLibrary/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+$(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-moduleSCRIPTS: $(module_SCRIPTS)
+       @$(NORMAL_INSTALL)
+       @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(moduledir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(moduledir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n' \
+           -e 'h;s|.*|.|' \
+           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+             if (++n[d] == $(am__install_max)) { \
+               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+           else { print "f", d "/" $$4, $$1 } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+            test -z "$$files" || { \
+              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \
+              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \
+            } \
+       ; done
+
+uninstall-moduleSCRIPTS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
+       dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-desktopDATA: $(desktop_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+       done
+
+uninstall-desktopDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
+install-imagesDATA: $(images_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \
+       done
+
+uninstall-imagesDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir)
+install-logoDATA: $(logo_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(logodir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(logodir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logodir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(logodir)" || exit $$?; \
+       done
+
+uninstall-logoDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(logodir)'; $(am__uninstall_files_from_dir)
+install-logo_48DATA: $(logo_48_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(logo_48dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(logo_48dir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logo_48dir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(logo_48dir)" || exit $$?; \
+       done
+
+uninstall-logo_48DATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(logo_48dir)'; $(am__uninstall_files_from_dir)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)" 
"$(DESTDIR)$(logodir)" "$(DESTDIR)$(logo_48dir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-desktopDATA install-imagesDATA \
+       install-logoDATA install-logo_48DATA install-moduleSCRIPTS
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-desktopDATA uninstall-imagesDATA \
+       uninstall-logoDATA uninstall-logo_48DATA \
+       uninstall-moduleSCRIPTS
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: install-am install-data-am install-strip uninstall-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-data-hook \
+       install-desktopDATA install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am \
+       install-imagesDATA install-info install-info-am \
+       install-logoDATA install-logo_48DATA install-man \
+       install-moduleSCRIPTS install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am uninstall uninstall-am uninstall-desktopDATA \
+       uninstall-hook uninstall-imagesDATA uninstall-logoDATA \
+       uninstall-logo_48DATA uninstall-moduleSCRIPTS
+
+
+ INTLTOOL_DESKTOP_RULE@
+
+all: $(ASSEMBLY_FILE)
+
+run: 
+       @pushd $(top_builddir); \
+       make run; \
+       popd;
+
+test:
+       @pushd $(top_builddir)/tests; \
+       make $(ASSEMBLY); \
+       popd;
+
+build-debug:
+       @echo $(DEP_LINK)
+
+$(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE)
+
+$(ASSEMBLY_FILE): $(SOURCES_BUILD) $(DEP_LINK)
+       @mkdir -p $(top_builddir)/bin
+       $(MCS) \
+               $(GMCS_FLAGS) \
+               $(ASSEMBLY_BUILD_FLAGS) \
+               -nowarn:0278 -nowarn:0078 $$warn -unsafe \
+               -define:HAVE_GTK -codepage:utf8 \
+               -debug -target:$(TARGET) -out:$@ \
+               $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \
+               $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
+       @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \
+               cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \
+       fi;
+
+#theme-icons: $(THEME_ICONS_SOURCE)
+#      @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+
+install-data-hook: $(THEME_ICONS_SOURCE)
+       @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+       $(EXTRA_INSTALL_DATA_HOOK)
+
+uninstall-hook: $(THEME_ICONS_SOURCE)
+       @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+       $(EXTRA_UNINSTALL_HOOK)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/RDotNet.NativeLibrary/NativeUtility.cs b/rdotnet/RDotNet.NativeLibrary/NativeUtility.cs
index 94adcf2..daa75fb 100644
--- a/rdotnet/RDotNet.NativeLibrary/NativeUtility.cs
+++ b/rdotnet/RDotNet.NativeLibrary/NativeUtility.cs
@@ -4,47 +4,47 @@ using System.Diagnostics;
 
 namespace RDotNet.NativeLibrary
 {
-       /// <summary>
-       /// Collection of utility methods for operating systems.
-       /// </summary>
-       public static class NativeUtility
-       {
-               /// <summary>
-               /// Gets the platform on which the current process runs.
-               /// </summary>
-               /// <remarks>
-               /// <see cref="Environment.OSVersion"/>'s platform is not <see cref="PlatformID.MacOSX"/> 
even on Mac OS X.
-               /// This method returns <see cref="PlatformID.MacOSX"/> when the current process runs on Mac 
OS X.
-               /// This method uses UNIX's uname command to check the operating system,
-               /// so this method cannot check the OS correctly if the PATH environment variable is changed 
(will returns <see cref="PlatformID.Unix"/>).
-               /// </remarks>
-               /// <returns>The current platform.</returns>
-               public static PlatformID GetPlatform()
-               {
-                       var platform = Environment.OSVersion.Platform;
-                       if (platform != PlatformID.Unix)
-                       {
-                               return platform;
-                       }
-                       try
-                       {
-                               using (var uname = new Process())
-                               {
-                                       uname.StartInfo.FileName = "uname";
-                                       uname.StartInfo.Arguments = "-s";
-                                       uname.StartInfo.RedirectStandardOutput = true;
-                                       uname.StartInfo.UseShellExecute = false;
-                                       uname.StartInfo.CreateNoWindow = true;
-                                       uname.Start();
-                                       var kernelName = uname.StandardOutput.ReadLine();
-                                       uname.WaitForExit();
-                                       return kernelName == "Darwin" ? PlatformID.MacOSX : platform;
-                               }
-                       }
-                       catch (Win32Exception) // probably no PATH to uname. 
-                       {
-                               return platform;
-                       }
-               }
-       }
-}
+   /// <summary>
+   /// Collection of utility methods for operating systems.
+   /// </summary>
+   public static class NativeUtility
+   {
+      /// <summary>
+      /// Gets the platform on which the current process runs.
+      /// </summary>
+      /// <remarks>
+      /// <see cref="Environment.OSVersion"/>'s platform is not <see cref="PlatformID.MacOSX"/> even on Mac 
OS X.
+      /// This method returns <see cref="PlatformID.MacOSX"/> when the current process runs on Mac OS X.
+      /// This method uses UNIX's uname command to check the operating system,
+      /// so this method cannot check the OS correctly if the PATH environment variable is changed (will 
returns <see cref="PlatformID.Unix"/>).
+      /// </remarks>
+      /// <returns>The current platform.</returns>
+      public static PlatformID GetPlatform()
+      {
+         var platform = Environment.OSVersion.Platform;
+         if (platform != PlatformID.Unix)
+         {
+            return platform;
+         }
+         try
+         {
+            using (var uname = new Process())
+            {
+               uname.StartInfo.FileName = "uname";
+               uname.StartInfo.Arguments = "-s";
+               uname.StartInfo.RedirectStandardOutput = true;
+               uname.StartInfo.UseShellExecute = false;
+               uname.StartInfo.CreateNoWindow = true;
+               uname.Start();
+               var kernelName = uname.StandardOutput.ReadLine();
+               uname.WaitForExit();
+               return kernelName == "Darwin" ? PlatformID.MacOSX : platform;
+            }
+         }
+         catch (Win32Exception) // probably no PATH to uname.
+         {
+            return platform;
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/RDotNet.NativeLibrary/Properties/AssemblyInfo.cs 
b/rdotnet/RDotNet.NativeLibrary/Properties/AssemblyInfo.cs
index 2d1b310..5cd22dd 100644
--- a/rdotnet/RDotNet.NativeLibrary/Properties/AssemblyInfo.cs
+++ b/rdotnet/RDotNet.NativeLibrary/Properties/AssemblyInfo.cs
@@ -1,39 +1,38 @@
 using System.Reflection;
 using System.Runtime.InteropServices;
 
-// General Information about an assembly is controlled through the following 
+// General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 
-[assembly : AssemblyTitle("RDotNet.NativeLibrary")]
-[assembly : AssemblyDescription("")]
-[assembly : AssemblyConfiguration("")]
-[assembly : AssemblyCompany("RecycleBin")]
-[assembly : AssemblyProduct("RDotNet.NativeLibrary")]
-[assembly : AssemblyCopyright("Copyright © RecycleBin 2012")]
-[assembly : AssemblyTrademark("")]
-[assembly : AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
+[assembly: AssemblyTitle("RDotNet.NativeLibrary")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("RecycleBin")]
+[assembly: AssemblyProduct("RDotNet.NativeLibrary")]
+[assembly: AssemblyCopyright("Copyright © RecycleBin 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
 // COM, set the ComVisible attribute to true on that type.
 
-[assembly : ComVisible(false)]
+[assembly: ComVisible(false)]
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
 
-[assembly : Guid("8c279a95-edef-4f16-a592-fc8c9b927960")]
+[assembly: Guid("8c279a95-edef-4f16-a592-fc8c9b927960")]
 
 // Version information for an assembly consists of the following four values:
 //
 //      Major Version
-//      Minor Version 
+//      Minor Version
 //      Build Number
 //      Revision
 //
-// You can specify all the values or you can default the Build and Revision Numbers 
+// You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-
-[assembly : AssemblyVersion("1.0.0.0")]
-[assembly : AssemblyFileVersion("1.0.0.0")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyInformationalVersion("1.0")]
\ No newline at end of file
diff --git a/rdotnet/RDotNet.NativeLibrary/RDotNet.NativeLibrary.csproj 
b/rdotnet/RDotNet.NativeLibrary/RDotNet.NativeLibrary.csproj
index cc86dd6..cd241dc 100644
--- a/rdotnet/RDotNet.NativeLibrary/RDotNet.NativeLibrary.csproj
+++ b/rdotnet/RDotNet.NativeLibrary/RDotNet.NativeLibrary.csproj
@@ -21,7 +21,7 @@
     <DefineConstants>TRACE;DEBUG</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <DocumentationFile>bin\Debug\RDotNet.NativeLibrary.xml</DocumentationFile>
+    <DocumentationFile>bin\Debug\RDotNet.NativeLibrary.XML</DocumentationFile>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>none</DebugType>
@@ -30,16 +30,7 @@
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <DocumentationFile>bin\Release\RDotNet.NativeLibrary.xml</DocumentationFile>
-  </PropertyGroup>
-  <PropertyGroup>
-    <SignAssembly>true</SignAssembly>
-  </PropertyGroup>
-  <PropertyGroup>
-    <DelaySign>true</DelaySign>
-  </PropertyGroup>
-  <PropertyGroup>
-    <AssemblyOriginatorKeyFile>..\RecycleBin.snk.pub</AssemblyOriginatorKeyFile>
+    <DocumentationFile>bin\Release\RDotNet.NativeLibrary.XML</DocumentationFile>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
diff --git a/rdotnet/RDotNet.NativeLibrary/UnmanagedDll.cs b/rdotnet/RDotNet.NativeLibrary/UnmanagedDll.cs
index 2581c02..2fd769a 100644
--- a/rdotnet/RDotNet.NativeLibrary/UnmanagedDll.cs
+++ b/rdotnet/RDotNet.NativeLibrary/UnmanagedDll.cs
@@ -1,214 +1,215 @@
 using System;
-using System.IO;
-using System.Linq;
 using System.Runtime.ConstrainedExecution;
 using System.Runtime.InteropServices;
 using System.Security.Permissions;
+#if UNIX
+using System.IO;
+using System.Linq;
+#endif
 
 namespace RDotNet.NativeLibrary
 {
-       /// <summary>
-       /// A proxy for unmanaged dynamic link library (DLL).
-       /// </summary>
-       [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-       public class UnmanagedDll : SafeHandle
-       {
-               public override bool IsInvalid
-               {
-                       get { return IsClosed || handle == IntPtr.Zero; }
-               }
-
-               /// <summary>
-               /// Creates a proxy for the specified dll.
-               /// </summary>
-               /// <param name="dllName">The DLL's name.</param>
-               public UnmanagedDll(string dllName)
-                       : base(IntPtr.Zero, true)
-               {
-                       if (dllName == null)
-                       {
-                               throw new ArgumentNullException("dllName");
-                       }
-                       if (dllName == string.Empty)
-                       {
-                               throw new ArgumentException("dllName");
-                       }
-
-                       IntPtr handle = IntLoadLibrary(dllName);
-                       if (handle == IntPtr.Zero)
-                       {
-                               throw new DllNotFoundException();
-                       }
-                       SetHandle(handle);
-               }
-
-               /// <summary>
-               /// Creates the delegate function for the specified function defined in the DLL.
-               /// </summary>
-               /// <typeparam name="TDelegate">The type of delegate.</typeparam>
-               /// <returns>The delegate.</returns>
-               public TDelegate GetFunction<TDelegate>()
-                       where TDelegate : class
-               {
-                       Type delegateType = typeof(TDelegate);
-                       if (!delegateType.IsSubclassOf(typeof(Delegate)))
-                       {
-                               throw new ArgumentException();
-                       }
-                       IntPtr function = GetFunctionAddress(handle, delegateType.Name);
-                       if (function == IntPtr.Zero)
-                       {
-                               throw new EntryPointNotFoundException();
-                       }
-                       return Marshal.GetDelegateForFunctionPointer(function, delegateType) as TDelegate;
-               }
-
-               /// <summary>
-               /// Creates the delegate function for the specified function defined in the DLL.
-               /// </summary>
-               /// <typeparam name="TDelegate">The type of delegate.</typeparam>
-               /// <param name="entryPoint">The name of function.</param>
-               /// <returns>The delegate.</returns>
-               public TDelegate GetFunction<TDelegate>(string entryPoint)
-                       where TDelegate : class
-               {
-                       if (!typeof(TDelegate).IsSubclassOf(typeof(Delegate)))
-                       {
-                               throw new ArgumentException();
-                       }
-                       if (entryPoint == null)
-                       {
-                               throw new ArgumentNullException("entryPoint");
-                       }
-                       IntPtr function = GetFunctionAddress(handle, entryPoint);
-                       if (function == IntPtr.Zero)
-                       {
-                               throw new EntryPointNotFoundException();
-                       }
-                       return Marshal.GetDelegateForFunctionPointer(function, typeof(TDelegate)) as 
TDelegate;
-               }
-
-               /// <summary>
-               /// Gets the handle of the specified entry.
-               /// </summary>
-               /// <param name="entryPoint">The name of function.</param>
-               /// <returns>The handle.</returns>
-               public IntPtr DangerousGetHandle(string entryPoint)
-               {
-                       if (entryPoint == null)
-                       {
-                               throw new ArgumentNullException("entryPoint");
-                       }
-                       return GetFunctionAddress(handle, entryPoint);
-               }
-
-               protected override bool ReleaseHandle()
-               {
-                       return FreeLibrary(handle);
-               }
-
-               protected override void Dispose(bool disposing)
-               {
-                       if (FreeLibrary(handle))
-                       {
-                               SetHandleAsInvalid();
-                       }
-                       base.Dispose(disposing);
-               }
-
-               /// <summary>
-               /// Adds a directory to the search path used to locate DLLs for the application.
-               /// </summary>
-               /// <remarks>
-               /// Calls <c>SetDllDirectory</c> in the kernel32.dll on Windows.
-               /// </remarks>
-               /// <param name="dllDirectory">
-               /// The directory to be added to the search path.
-               /// If this parameter is an empty string (""), the call removes the current directory from 
the default DLL search order.
-               /// If this parameter is NULL, the function restores the default search order.
-               /// </param>
-               /// <returns>If the function succeeds, the return value is nonzero.</returns>
-               [Obsolete("Set environment variable 'PATH' instead.")]
+   /// <summary>
+   /// A proxy for unmanaged dynamic link library (DLL).
+   /// </summary>
+   [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+   public class UnmanagedDll : SafeHandle
+   {
+      public override bool IsInvalid
+      {
+         get { return handle == IntPtr.Zero; }
+      }
+
+      /// <summary>
+      /// Creates a proxy for the specified dll.
+      /// </summary>
+      /// <param name="dllName">The DLL's name.</param>
+      public UnmanagedDll(string dllName)
+         : base(IntPtr.Zero, true)
+      {
+            Console.WriteLine("dllName:"+dllName);
+         if (dllName == null)
+         {
+            throw new ArgumentNullException("dllName");
+         }
+         if (dllName == string.Empty)
+         {
+            throw new ArgumentException("dllName");
+         }
+
+         IntPtr handle = LoadLibrary(dllName);
+         if (handle == IntPtr.Zero)
+         {
+            throw new DllNotFoundException();
+         }
+         SetHandle(handle);
+      }
+
+      /// <summary>
+      /// Creates the delegate function for the specified function defined in the DLL.
+      /// </summary>
+      /// <typeparam name="TDelegate">The type of delegate.</typeparam>
+      /// <returns>The delegate.</returns>
+      public TDelegate GetFunction<TDelegate>()
+         where TDelegate : class
+      {
+         Type delegateType = typeof(TDelegate);
+         if (!delegateType.IsSubclassOf(typeof(Delegate)))
+         {
+            throw new ArgumentException();
+         }
+         IntPtr function = GetFunctionAddress(handle, delegateType.Name);
+         if (function == IntPtr.Zero)
+         {
+            throw new EntryPointNotFoundException();
+         }
+         return Marshal.GetDelegateForFunctionPointer(function, delegateType) as TDelegate;
+      }
+
+      /// <summary>
+      /// Creates the delegate function for the specified function defined in the DLL.
+      /// </summary>
+      /// <typeparam name="TDelegate">The type of delegate.</typeparam>
+      /// <param name="entryPoint">The name of function.</param>
+      /// <returns>The delegate.</returns>
+      public TDelegate GetFunction<TDelegate>(string entryPoint)
+         where TDelegate : class
+      {
+         if (!typeof(TDelegate).IsSubclassOf(typeof(Delegate)))
+         {
+            throw new ArgumentException();
+         }
+         if (entryPoint == null)
+         {
+            throw new ArgumentNullException("entryPoint");
+         }
+         IntPtr function = GetFunctionAddress(handle, entryPoint);
+         if (function == IntPtr.Zero)
+         {
+            throw new EntryPointNotFoundException();
+         }
+         return Marshal.GetDelegateForFunctionPointer(function, typeof(TDelegate)) as TDelegate;
+      }
+
+      /// <summary>
+      /// Gets the handle of the specified entry.
+      /// </summary>
+      /// <param name="entryPoint">The name of function.</param>
+      /// <returns>The handle.</returns>
+      public IntPtr DangerousGetHandle(string entryPoint)
+      {
+         if (entryPoint == null)
+         {
+            throw new ArgumentNullException("entryPoint");
+         }
+         return GetFunctionAddress(handle, entryPoint);
+      }
+
+      protected override bool ReleaseHandle()
+      {
+         return FreeLibrary(handle);
+      }
+
+      protected override void Dispose(bool disposing)
+      {
+         if (FreeLibrary(handle))
+         {
+            SetHandleAsInvalid();
+         }
+         base.Dispose(disposing);
+      }
+
+      /// <summary>
+      /// Adds a directory to the search path used to locate DLLs for the application.
+      /// </summary>
+      /// <remarks>
+      /// Calls <c>SetDllDirectory</c> in the kernel32.dll on Windows.
+      /// </remarks>
+      /// <param name="dllDirectory">
+      /// The directory to be added to the search path.
+      /// If this parameter is an empty string (""), the call removes the current directory from the default 
DLL search order.
+      /// If this parameter is NULL, the function restores the default search order.
+      /// </param>
+      /// <returns>If the function succeeds, the return value is nonzero.</returns>
+      [Obsolete("Set environment variable 'PATH' instead.")]
 #if UNIX
-               public static bool SetDllDirectory(string dllDirectory)
-               {
-                       if (dllDirectory == null)
-                       {
-                               System.Environment.SetEnvironmentVariable(LibraryPath, DefaultSearchPath, 
EnvironmentVariableTarget.Process);
-                       }
-                       else if (dllDirectory == string.Empty)
-                       {
-                               throw new NotImplementedException();
-                       }
-                       else
-                       {
-                               if (!Directory.Exists(dllDirectory))
-                               {
-                                       return false;
-                               }
-                               string path = System.Environment.GetEnvironmentVariable(LibraryPath, 
EnvironmentVariableTarget.Process);
-                               if (string.IsNullOrEmpty(path))
-                               {
-                                       path = dllDirectory;
-                               }
-                               else
-                               {
-                                       path = dllDirectory + Path.PathSeparator + path;
-                               }
-                               System.Environment.SetEnvironmentVariable(LibraryPath, path, 
EnvironmentVariableTarget.Process);
-                       }
-                       return true;
-               }
-
-               private const string LibraryPath = "PATH";
-               private static readonly string DefaultSearchPath = 
System.Environment.GetEnvironmentVariable(LibraryPath, EnvironmentVariableTarget.Process);
+      public static bool SetDllDirectory(string dllDirectory)
+      {
+         if (dllDirectory == null)
+         {
+            System.Environment.SetEnvironmentVariable(LibraryPath, DefaultSearchPath, 
EnvironmentVariableTarget.Process);
+         }
+         else if (dllDirectory == string.Empty)
+         {
+            throw new NotImplementedException();
+         }
+         else
+         {
+            if (!Directory.Exists(dllDirectory))
+            {
+               return false;
+            }
+            string path = System.Environment.GetEnvironmentVariable(LibraryPath, 
EnvironmentVariableTarget.Process);
+            if (string.IsNullOrEmpty(path))
+            {
+               path = dllDirectory;
+            }
+            else
+            {
+               path = dllDirectory + Path.PathSeparator + path;
+            }
+            System.Environment.SetEnvironmentVariable(LibraryPath, path, EnvironmentVariableTarget.Process);
+         }
+         return true;
+      }
+
+      private const string LibraryPath = "PATH";
+      private static readonly string DefaultSearchPath = 
System.Environment.GetEnvironmentVariable(LibraryPath, EnvironmentVariableTarget.Process);
 #else
-               [DllImport("kernel32.dll")]
-               [return: MarshalAs(UnmanagedType.Bool)]
-               public static extern bool SetDllDirectory([MarshalAs(UnmanagedType.LPStr)] string 
dllDirectory);
+      [DllImport("kernel32.dll")]
+      [return: MarshalAs(UnmanagedType.Bool)]
+      public static extern bool SetDllDirectory([MarshalAs(UnmanagedType.LPStr)] string dllDirectory);
+
 #endif
 
 #if UNIX
-               private static IntPtr IntLoadLibrary(string filename)
-               {
-                       const int RTLD_LAZY = 0x1;
-                       if (filename.StartsWith("/"))
-                       {
-                               return dlopen(filename, RTLD_LAZY);
-                       }
-                       var searchPaths = (Environment.GetEnvironmentVariable("PATH") ?? 
"").Split(Path.PathSeparator);
-                       var dll = searchPaths.Select(directory => Path.Combine(directory, 
filename)).FirstOrDefault(File.Exists);
-                       return dll == null ? IntPtr.Zero : dlopen(dll, RTLD_LAZY);
-               }
-               
-               [DllImport("libdl")]
-               private static extern IntPtr dlopen([MarshalAs(UnmanagedType.LPStr)] string filename, int 
flag);
+      private static IntPtr LoadLibrary(string filename)
+      {
+         const int RTLD_LAZY = 0x1;
+         if (filename.StartsWith("/"))
+         {
+            return dlopen(filename, RTLD_LAZY);
+         }
+         var searchPaths = (Environment.GetEnvironmentVariable("PATH") ?? "").Split(Path.PathSeparator);
+         var dll = searchPaths.Select(directory => Path.Combine(directory, 
filename)).FirstOrDefault(File.Exists);
+         return dll == null ? IntPtr.Zero : dlopen(dll, RTLD_LAZY);
+      }
+
+      [DllImport("libdl")]
+      private static extern IntPtr dlopen([MarshalAs(UnmanagedType.LPStr)] string filename, int flag);
 #else
-               [DllImport("kernel32.dll")]
-               private static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPStr)] string lpFileName);
-
-               private static IntPtr IntLoadLibrary(string filename)
-               {
-                       var searchPaths = (Environment.GetEnvironmentVariable("PATH") ?? 
"").Split(Path.PathSeparator);
-                       var dll = searchPaths.Select(directory => Path.Combine(directory, 
filename)).FirstOrDefault(File.Exists);
-                       return dll == null ? IntPtr.Zero : LoadLibrary(dll);
-               }
+
+      [DllImport("kernel32.dll")]
+      private static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPStr)] string lpFileName);
+
 #endif
 
 #if UNIX
-               [DllImport("libdl", EntryPoint = "dlclose")]
+      [DllImport("libdl", EntryPoint = "dlclose")]
 #else
-               [DllImport("kernel32.dll")]
+
+      [DllImport("kernel32.dll")]
 #endif
-               [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-               [return : MarshalAs(UnmanagedType.Bool)]
-               private static extern bool FreeLibrary(IntPtr hModule);
+      [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+      [return: MarshalAs(UnmanagedType.Bool)]
+      private static extern bool FreeLibrary(IntPtr hModule);
 
 #if UNIX
-               [DllImport("libdl", EntryPoint = "dlsym")]
+      [DllImport("libdl", EntryPoint = "dlsym")]
 #else
-               [DllImport("kernel32.dll", EntryPoint = "GetProcAddress")]
+
+      [DllImport("kernel32.dll", EntryPoint = "GetProcAddress")]
 #endif
-               private static extern IntPtr GetFunctionAddress(IntPtr hModule, 
[MarshalAs(UnmanagedType.LPStr)] string lpProcName);
-       }
-}
+      private static extern IntPtr GetFunctionAddress(IntPtr hModule, [MarshalAs(UnmanagedType.LPStr)] 
string lpProcName);
+   }
+}
\ No newline at end of file
diff --git a/rdotnet/Rdll/i386/R.dll b/rdotnet/Rdll/i386/R.dll
new file mode 100644
index 0000000..3951283
Binary files /dev/null and b/rdotnet/Rdll/i386/R.dll differ
diff --git a/rdotnet/Rdll/i386/R.exe b/rdotnet/Rdll/i386/R.exe
new file mode 100644
index 0000000..d0910a5
Binary files /dev/null and b/rdotnet/Rdll/i386/R.exe differ
diff --git a/rdotnet/Rdll/i386/RSetReg.exe b/rdotnet/Rdll/i386/RSetReg.exe
new file mode 100644
index 0000000..0e8d1ae
Binary files /dev/null and b/rdotnet/Rdll/i386/RSetReg.exe differ
diff --git a/rdotnet/Rdll/i386/Rblas.dll b/rdotnet/Rdll/i386/Rblas.dll
new file mode 100644
index 0000000..773f076
Binary files /dev/null and b/rdotnet/Rdll/i386/Rblas.dll differ
diff --git a/rdotnet/Rdll/i386/Rcmd.exe b/rdotnet/Rdll/i386/Rcmd.exe
new file mode 100644
index 0000000..0d2e9fd
Binary files /dev/null and b/rdotnet/Rdll/i386/Rcmd.exe differ
diff --git a/rdotnet/Rdll/i386/Rgraphapp.dll b/rdotnet/Rdll/i386/Rgraphapp.dll
new file mode 100644
index 0000000..a532534
Binary files /dev/null and b/rdotnet/Rdll/i386/Rgraphapp.dll differ
diff --git a/rdotnet/Rdll/i386/Rgui.exe b/rdotnet/Rdll/i386/Rgui.exe
new file mode 100644
index 0000000..324cc4f
Binary files /dev/null and b/rdotnet/Rdll/i386/Rgui.exe differ
diff --git a/rdotnet/Rdll/i386/Riconv.dll b/rdotnet/Rdll/i386/Riconv.dll
new file mode 100644
index 0000000..09dac03
Binary files /dev/null and b/rdotnet/Rdll/i386/Riconv.dll differ
diff --git a/rdotnet/Rdll/i386/Rlapack.dll b/rdotnet/Rdll/i386/Rlapack.dll
new file mode 100644
index 0000000..56ac862
Binary files /dev/null and b/rdotnet/Rdll/i386/Rlapack.dll differ
diff --git a/rdotnet/Rdll/i386/Rscript.exe b/rdotnet/Rdll/i386/Rscript.exe
new file mode 100644
index 0000000..9c01b65
Binary files /dev/null and b/rdotnet/Rdll/i386/Rscript.exe differ
diff --git a/rdotnet/Rdll/i386/Rterm.exe b/rdotnet/Rdll/i386/Rterm.exe
new file mode 100644
index 0000000..5a23755
Binary files /dev/null and b/rdotnet/Rdll/i386/Rterm.exe differ
diff --git a/rdotnet/Rdll/i386/Rzlib.dll b/rdotnet/Rdll/i386/Rzlib.dll
new file mode 100644
index 0000000..afe32ad
Binary files /dev/null and b/rdotnet/Rdll/i386/Rzlib.dll differ
diff --git a/rdotnet/Rdll/i386/open.exe b/rdotnet/Rdll/i386/open.exe
new file mode 100644
index 0000000..29fa51a
Binary files /dev/null and b/rdotnet/Rdll/i386/open.exe differ
diff --git a/rdotnet/Rdll/x64/R.dll b/rdotnet/Rdll/x64/R.dll
new file mode 100644
index 0000000..cf50de6
Binary files /dev/null and b/rdotnet/Rdll/x64/R.dll differ
diff --git a/rdotnet/Rdll/x64/R.exe b/rdotnet/Rdll/x64/R.exe
new file mode 100644
index 0000000..6306d5d
Binary files /dev/null and b/rdotnet/Rdll/x64/R.exe differ
diff --git a/rdotnet/Rdll/x64/RSetReg.exe b/rdotnet/Rdll/x64/RSetReg.exe
new file mode 100644
index 0000000..20bf558
Binary files /dev/null and b/rdotnet/Rdll/x64/RSetReg.exe differ
diff --git a/rdotnet/Rdll/x64/Rblas.dll b/rdotnet/Rdll/x64/Rblas.dll
new file mode 100644
index 0000000..4eaeb3d
Binary files /dev/null and b/rdotnet/Rdll/x64/Rblas.dll differ
diff --git a/rdotnet/Rdll/x64/Rcmd.exe b/rdotnet/Rdll/x64/Rcmd.exe
new file mode 100644
index 0000000..b4d90c6
Binary files /dev/null and b/rdotnet/Rdll/x64/Rcmd.exe differ
diff --git a/rdotnet/Rdll/x64/Rgraphapp.dll b/rdotnet/Rdll/x64/Rgraphapp.dll
new file mode 100644
index 0000000..3f1a24e
Binary files /dev/null and b/rdotnet/Rdll/x64/Rgraphapp.dll differ
diff --git a/rdotnet/Rdll/x64/Rgui.exe b/rdotnet/Rdll/x64/Rgui.exe
new file mode 100644
index 0000000..82bd65f
Binary files /dev/null and b/rdotnet/Rdll/x64/Rgui.exe differ
diff --git a/rdotnet/Rdll/x64/Riconv.dll b/rdotnet/Rdll/x64/Riconv.dll
new file mode 100644
index 0000000..5a0a50e
Binary files /dev/null and b/rdotnet/Rdll/x64/Riconv.dll differ
diff --git a/rdotnet/Rdll/x64/Rlapack.dll b/rdotnet/Rdll/x64/Rlapack.dll
new file mode 100644
index 0000000..18a2daf
Binary files /dev/null and b/rdotnet/Rdll/x64/Rlapack.dll differ
diff --git a/rdotnet/Rdll/x64/Rscript.exe b/rdotnet/Rdll/x64/Rscript.exe
new file mode 100644
index 0000000..d99a6be
Binary files /dev/null and b/rdotnet/Rdll/x64/Rscript.exe differ
diff --git a/rdotnet/Rdll/x64/Rterm.exe b/rdotnet/Rdll/x64/Rterm.exe
new file mode 100644
index 0000000..26f226c
Binary files /dev/null and b/rdotnet/Rdll/x64/Rterm.exe differ
diff --git a/rdotnet/Rdll/x64/Rzlib.dll b/rdotnet/Rdll/x64/Rzlib.dll
new file mode 100644
index 0000000..61c6097
Binary files /dev/null and b/rdotnet/Rdll/x64/Rzlib.dll differ
diff --git a/rdotnet/Rdll/x64/open.exe b/rdotnet/Rdll/x64/open.exe
new file mode 100644
index 0000000..e2d8606
Binary files /dev/null and b/rdotnet/Rdll/x64/open.exe differ
diff --git a/src/chronojump.cs b/src/chronojump.cs
index 9412345..239c43f 100644
--- a/src/chronojump.cs
+++ b/src/chronojump.cs
@@ -73,15 +73,40 @@ public class ChronoJump
 
                
                var envPath = Environment.GetEnvironmentVariable ("PATH");
+               var rBinPath = "";
                baseDirectory = Util.GetPrefixDir();
                if(UtilAll.IsWindows()) {
-                       Environment.SetEnvironmentVariable ("R_HOME", RelativeToPrefix ("library"));
+                       //Environment.SetEnvironmentVariable ("R_HOME", RelativeToPrefix ("library"));
+                       //rBinPath = RelativeToPrefix ("lib");
+                       //rBinPath = RelativeToPrefix ("library");
+                       //var rPath = System.Environment.Is64BitProcess ? @"C:\Program 
Files\R\R-3.0.2\bin\x64" : @"C:\Program Files\R\R-3.0.2\bin\i386";
+                       string x64 = "bin" + System.IO.Path.DirectorySeparatorChar + "x64";
+                       string i386 = "bin" + System.IO.Path.DirectorySeparatorChar + "i386";
+                       var rPath = System.Environment.Is64BitProcess ? 
+                               System.IO.Path.Combine(baseDirectory, x64) : 
System.IO.Path.Combine(baseDirectory, i386);
+
+                       if (Directory.Exists(rPath) == false) {
+                               throw new DirectoryNotFoundException(string.Format("Could not found the 
specified path to the directory containing R.dll: {0}", rPath));
+                               Log.WriteLine("Could not found the specified path to the directory containing 
R.dll: " + rPath);
+                       }
+
+                       var newPath = string.Format("{0}{1}{2}", rPath, System.IO.Path.PathSeparator, 
envPath);
+                       Log.WriteLine("newPath:" + newPath);
+               
+                       System.Environment.SetEnvironmentVariable("PATH", newPath);
+                       Log.WriteLine("path:" + System.Environment.GetEnvironmentVariable("PATH"));
                } else {
-                       var rBinPath = @"/usr/lib/R/lib";
+                       rBinPath = @"/usr/lib/R/lib";
                        Environment.SetEnvironmentVariable ("R_HOME", @"/usr/lib/R");
-                       Environment.SetEnvironmentVariable ("PATH", envPath + Path.PathSeparator + rBinPath);
-               }
-
+                       Environment.SetEnvironmentVariable("PATH", envPath + Path.PathSeparator + rBinPath);
+               }
+               
+               
+               Log.WriteLine("baseDir0:" + System.AppDomain.CurrentDomain.BaseDirectory);
+               Log.WriteLine("baseDir1:" + baseDirectory);
+               Log.WriteLine("envPath+rBinPath:" + envPath + Path.PathSeparator + rBinPath);
+               
+                               
                if(UtilAll.IsWindows())
                        
Environment.SetEnvironmentVariable("GST_PLUGIN_PATH",RelativeToPrefix("lib\\gstreamer-0.10"));
 
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 5ad2f2c..1b056c2 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -1763,8 +1763,8 @@ public partial class ChronoJumpWindow
                        return true;
 
                Log.WriteLine("initializing rdotnet");
-
-               //RDotNet.StartupParameter rsup = new RDotNet.StartupParameter();
+               
+        //RDotNet.StartupParameter rsup = new RDotNet.StartupParameter();
                //rsup.Interactive = false;
                //rsup.Quiet = false;
 
@@ -1773,21 +1773,23 @@ public partial class ChronoJumpWindow
                // From v1.5, REngine requires explicit initialization.
                // You can set some parameters.
 
-               try {
+               //try {
                        //rengine.Initialize(rsup);
                        rengine.Initialize();
-               } catch {
-                       return false;
-               }
+               //} catch {
+                       //return false;
+               //}
                //Previous command, unfortunatelly localizes all GUI to english
                //then call Catalog.Init again in order to see new windows localised            
-               Catalog.Init("chronojump",System.IO.Path.Combine(Util.GetPrefixDir(),"share/locale"));
+               //Catalog.Init("chronojump",System.IO.Path.Combine(Util.GetPrefixDir(),"share/locale"));
 
+               /*
                try {
                        rengine.Evaluate("library(\"EMD\")");
                } catch {
                        return false;
                }
+               */
 
                // .NET Framework array to R vector.
                NumericVector group1 = rengine.CreateNumericVector(new double[] { 30.02, 29.99, 30.11, 29.97, 
30.01, 29.99 });
diff --git a/src/util.cs b/src/util.cs
index 195cc25..ebce3dd 100644
--- a/src/util.cs
+++ b/src/util.cs
@@ -941,16 +941,16 @@ public class Util
                pinfo.CreateNoWindow = true;
                pinfo.UseShellExecute = false;
        
-               try {   
+               //try { 
                r = new Process();
                r.StartInfo = pinfo;
                r.Start();
                r.WaitForExit();
                //while ( ! ( File.Exists(outputFile) || CancelRScript) );
                while ( ! ( File.Exists(outputFile) ) );
-               } catch {
+               //} catch {
                        //maybe R is not installed
-               }
+               //}
        }
        
 
diff --git a/win32/Makefile.am b/win32/Makefile.am
index 527d394..fce0ac1 100644
--- a/win32/Makefile.am
+++ b/win32/Makefile.am
@@ -11,6 +11,10 @@ deploy:
        cp ${prefix}/bin/libcesarplayer-0.dll dist/bin
        cp -r ${prefix}/lib/chronojump dist/lib/
        cp -r ${prefix}/share/chronojump dist/share/
+       cp -r ../rdotnet/Rdll/i386/* dist/bin/i386/
+       mkdir dist/bin/x64
+       cp -r ../rdotnet/Rdll/x64/* dist/bin/x64/
+       
 
 
 bundle: deploy
diff --git a/win32/deps/bin/R.exe b/win32/deps/bin/R.exe
index 43731fa..def9f1c 100644
Binary files a/win32/deps/bin/R.exe and b/win32/deps/bin/R.exe differ
diff --git a/win32/deps/bin/Rscript.exe b/win32/deps/bin/Rscript.exe
index 43731fa..def9f1c 100644
Binary files a/win32/deps/bin/Rscript.exe and b/win32/deps/bin/Rscript.exe differ
diff --git a/win32/deps/bin/i386/R.dll b/win32/deps/bin/i386/R.dll
index ba7b61a..3951283 100644
Binary files a/win32/deps/bin/i386/R.dll and b/win32/deps/bin/i386/R.dll differ
diff --git a/win32/deps/bin/i386/R.exe b/win32/deps/bin/i386/R.exe
index 6697c70..d0910a5 100644
Binary files a/win32/deps/bin/i386/R.exe and b/win32/deps/bin/i386/R.exe differ
diff --git a/win32/deps/bin/i386/RSetReg.exe b/win32/deps/bin/i386/RSetReg.exe
index 3e5eea2..0e8d1ae 100644
Binary files a/win32/deps/bin/i386/RSetReg.exe and b/win32/deps/bin/i386/RSetReg.exe differ
diff --git a/win32/deps/bin/i386/Rblas.dll b/win32/deps/bin/i386/Rblas.dll
index 6dd7a92..773f076 100644
Binary files a/win32/deps/bin/i386/Rblas.dll and b/win32/deps/bin/i386/Rblas.dll differ
diff --git a/win32/deps/bin/i386/Rcmd.exe b/win32/deps/bin/i386/Rcmd.exe
index 6aca7db..0d2e9fd 100644
Binary files a/win32/deps/bin/i386/Rcmd.exe and b/win32/deps/bin/i386/Rcmd.exe differ
diff --git a/win32/deps/bin/i386/Rgraphapp.dll b/win32/deps/bin/i386/Rgraphapp.dll
index c17e5c7..a532534 100644
Binary files a/win32/deps/bin/i386/Rgraphapp.dll and b/win32/deps/bin/i386/Rgraphapp.dll differ
diff --git a/win32/deps/bin/i386/Rgui.exe b/win32/deps/bin/i386/Rgui.exe
index b0757cd..324cc4f 100644
Binary files a/win32/deps/bin/i386/Rgui.exe and b/win32/deps/bin/i386/Rgui.exe differ
diff --git a/win32/deps/bin/i386/Riconv.dll b/win32/deps/bin/i386/Riconv.dll
index 4bc6323..09dac03 100644
Binary files a/win32/deps/bin/i386/Riconv.dll and b/win32/deps/bin/i386/Riconv.dll differ
diff --git a/win32/deps/bin/i386/Rlapack.dll b/win32/deps/bin/i386/Rlapack.dll
index b96ad74..56ac862 100644
Binary files a/win32/deps/bin/i386/Rlapack.dll and b/win32/deps/bin/i386/Rlapack.dll differ
diff --git a/win32/deps/bin/i386/Rscript.exe b/win32/deps/bin/i386/Rscript.exe
index fd03c0a..9c01b65 100644
Binary files a/win32/deps/bin/i386/Rscript.exe and b/win32/deps/bin/i386/Rscript.exe differ
diff --git a/win32/deps/bin/i386/Rterm.exe b/win32/deps/bin/i386/Rterm.exe
index 1efc779..5a23755 100644
Binary files a/win32/deps/bin/i386/Rterm.exe and b/win32/deps/bin/i386/Rterm.exe differ
diff --git a/win32/deps/bin/i386/Rzlib.dll b/win32/deps/bin/i386/Rzlib.dll
index 133975c..afe32ad 100644
Binary files a/win32/deps/bin/i386/Rzlib.dll and b/win32/deps/bin/i386/Rzlib.dll differ
diff --git a/win32/deps/bin/i386/open.exe b/win32/deps/bin/i386/open.exe
index 24aa7ae..29fa51a 100644
Binary files a/win32/deps/bin/i386/open.exe and b/win32/deps/bin/i386/open.exe differ
diff --git a/win32/deps/library/Cairo/DESCRIPTION b/win32/deps/library/Cairo/DESCRIPTION
index ef681dc..61933d8 100644
--- a/win32/deps/library/Cairo/DESCRIPTION
+++ b/win32/deps/library/Cairo/DESCRIPTION
@@ -1,32 +1,20 @@
 Package: Cairo
-Version: 1.5-2
+Version: 1.5-5
 Title: R graphics device using cairo graphics library for creating
         high-quality bitmap (PNG, JPEG, TIFF), vector (PDF, SVG,
         PostScript) and display (X11 and Win32) output.
-Author: Simon Urbanek <Simon Urbanek r-project org>, Jeffrey Horner
-        <jeff horner vanderbilt edu>
+Author: Simon Urbanek <Simon Urbanek r-project org>, Jeffrey Horner <jeff horner vanderbilt edu>
 Maintainer: Simon Urbanek <Simon Urbanek r-project org>
 Depends: R (>= 2.4.0)
 Suggests: png
 Enhances: FastRWeb
-Description: This package provides a Cairo graphics device that can be
-        use to create high-quality vector (PDF, PostScript and SVG) and
-        bitmap output (PNG,JPEG,TIFF), and high-quality rendering in
-        displays (X11 and Win32). Since it uses the same back-end for
-        all output, copying across formats is WYSIWYG. Files are
-        created without the dependence on X11 or other external
-        programs. This device supports alpha channel (semi-transparent
-        drawing) and resulting images can contain transparent and
-        semi-transparent regions. It is ideal for use in server
-        environemnts (file output) and as a replacement for other
-        devices that don't have Cairo's capabilities such as alpha
-        support or anti-aliasing. Backends are modular such that any
-        subset of backends is supported.
+Description: This package provides a Cairo graphics device that can be use to create high-quality vector 
(PDF, PostScript and SVG) and bitmap output (PNG,JPEG,TIFF), and high-quality rendering in displays (X11 and 
Win32). Since it uses the same back-end for all output, copying across formats is WYSIWYG. Files are created 
without the dependence on X11 or other external programs. This device supports alpha channel 
(semi-transparent drawing) and resulting images can contain transparent and semi-transparent regions. It is 
ideal for use in server environments (file output) and as a replacement for other devices that don't have 
Cairo's capabilities such as alpha support or anti-aliasing. Backends are modular such that any subset of 
backends is supported.
 License: GPL-2
 SystemRequirements: cairo (>= 1.2 http://www.cairographics.org/)
 URL: http://www.rforge.net/Cairo/
-Packaged: 2012-11-05 18:22:35 UTC; svnuser
+Packaged: 2013-12-23 15:19:33 UTC; svnuser
+NeedsCompilation: yes
 Repository: CRAN
-Date/Publication: 2012-11-05 19:46:52
-Built: R 2.15.2; i386-w64-mingw32; 2013-01-03 17:06:29 UTC; windows
+Date/Publication: 2013-12-24 00:16:34
+Built: R 3.0.2; i386-w64-mingw32; 2013-12-24 11:57:35 UTC; windows
 Archs: i386, x64
diff --git a/win32/deps/library/Cairo/MD5 b/win32/deps/library/Cairo/MD5
index 395e2d2..c3361ea 100644
--- a/win32/deps/library/Cairo/MD5
+++ b/win32/deps/library/Cairo/MD5
@@ -1,23 +1,23 @@
-367e1d046a1b3bcc1bd575b171b84a48 *DESCRIPTION
+eb256ccbf1e80a7fcd015d3a4c1c6d3c *DESCRIPTION
 fc2c0a74538e45f22ff465b0e64fafec *INDEX
-e3e837c005b332a79b709a50da125b2e *Meta/Rd.rds
-4db599095e401fe2698de6ec03c1bc55 *Meta/hsearch.rds
-62f4a47498cb94c97fdefef3dbb5ae37 *Meta/links.rds
-f0fe1e54466b28647836b904a036c97c *Meta/nsInfo.rds
-2711cfe07728704728dc42b4fca35826 *Meta/package.rds
+83c21e01f8d9f366d9fca731fccfcec8 *Meta/Rd.rds
+c80d667e32e5b09f3364c23c9f799fbc *Meta/hsearch.rds
+ffc8cd564ec08bb08703233585fb17aa *Meta/links.rds
+f94d984b21b3570d97a62aa0f07a8238 *Meta/nsInfo.rds
+ce9cbc6109cf14917332cf78c4296101 *Meta/package.rds
 a4757769cbeeb852905ad940c7ac7029 *NAMESPACE
-3b624acf7084dcf42766ad70a70644af *NEWS
-240d28d145138a75831809e31a480bad *R/Cairo
-9a22fef89f7d92813d04c9f689d7374f *R/Cairo.rdb
-1d82db82df08a0dde48e4496fc390431 *R/Cairo.rdx
+946ab4be063d058d5f5e5a8721d46955 *NEWS
+ebf0fc819595d631b8bf280c4b049940 *R/Cairo
+cd13edc47673f1fb2196930cae90ee39 *R/Cairo.rdb
+a29a1a36e1498b3d781bef7ae128281b *R/Cairo.rdx
 87c65a40e4a86e4ef484df5260fb21df *help/AnIndex
-cc9130832b75b9d47cd1c34820a8c1ff *help/Cairo.rdb
-ff518ffddf788112cb32d7b0b1527544 *help/Cairo.rdx
-59e0de616bb718ce1a5023e0c84b637b *help/aliases.rds
-913c51196267929a30ef2de38f9d8889 *help/paths.rds
-8cc3b6376814258a0c58e2cb4443edfc *html/00Index.html
+ed920c46689970f88c530dc045397e0d *help/Cairo.rdb
+15a4c2a0134c33dfa06ea6fc0f614d11 *help/Cairo.rdx
+7ec3551464763c4ffec318c77979de2a *help/aliases.rds
+de4fee5ac7a66beb6a7c95f549e3c3bc *help/paths.rds
+0ea6865e50c62ccabef6fc86a939c864 *html/00Index.html
 444535b9cb76ddff1bab1e1865a3fb14 *html/R.css
-470c7f09a7bf4dc3a363e555443a8bf6 *libs/i386/Cairo.dll
-3ed973be2396fc83baea840e8bb59c24 *libs/i386/symbols.rds
-3a9c89cbe58b07e653a6b938d0c0a63d *libs/x64/Cairo.dll
-9a6cbf714e835eacd7ac8b19d633c197 *libs/x64/symbols.rds
+073e447d0441f00fb7578776a5792856 *libs/i386/Cairo.dll
+f7910562fab4e3c89a31a1160bb0f744 *libs/i386/symbols.rds
+80a6385c0eff7d0ff41ec401410cf75c *libs/x64/Cairo.dll
+6bed448fa710349165781062b2f6b7b1 *libs/x64/symbols.rds
diff --git a/win32/deps/library/Cairo/Meta/Rd.rds b/win32/deps/library/Cairo/Meta/Rd.rds
index e610773..bddd7d4 100644
Binary files a/win32/deps/library/Cairo/Meta/Rd.rds and b/win32/deps/library/Cairo/Meta/Rd.rds differ
diff --git a/win32/deps/library/Cairo/Meta/hsearch.rds b/win32/deps/library/Cairo/Meta/hsearch.rds
index 4fe8318..374d623 100644
Binary files a/win32/deps/library/Cairo/Meta/hsearch.rds and b/win32/deps/library/Cairo/Meta/hsearch.rds 
differ
diff --git a/win32/deps/library/Cairo/Meta/links.rds b/win32/deps/library/Cairo/Meta/links.rds
index 40cf766..7ef0f6b 100644
Binary files a/win32/deps/library/Cairo/Meta/links.rds and b/win32/deps/library/Cairo/Meta/links.rds differ
diff --git a/win32/deps/library/Cairo/Meta/nsInfo.rds b/win32/deps/library/Cairo/Meta/nsInfo.rds
index 6248edd..52bba9a 100644
Binary files a/win32/deps/library/Cairo/Meta/nsInfo.rds and b/win32/deps/library/Cairo/Meta/nsInfo.rds differ
diff --git a/win32/deps/library/Cairo/Meta/package.rds b/win32/deps/library/Cairo/Meta/package.rds
index 143bed0..18a6162 100644
Binary files a/win32/deps/library/Cairo/Meta/package.rds and b/win32/deps/library/Cairo/Meta/package.rds 
differ
diff --git a/win32/deps/library/Cairo/NEWS b/win32/deps/library/Cairo/NEWS
index 5da0c42..485d629 100644
--- a/win32/deps/library/Cairo/NEWS
+++ b/win32/deps/library/Cairo/NEWS
@@ -1,5 +1,34 @@
 NEWS/Changelog
 
+1.5-5  (2013-12-23)
+    o  fix onSave reporting incorrect page number for the last page
+       (introduced in 1.5-4, closes #6)
+
+    o  scale fonts unconditionally according to the dpi adjustment
+       (fixes issues with grid graphics and dpi changes)
+
+
+1.5-4  (2013-12-12)
+    o  fix invalid pointsize scaling if dpi auto-detection is used
+       (closes #1)
+
+    o  fix failure to emit final page in some multi-page settings
+       (closes #4)
+
+    o  the `res' parameter in CairoPNG(), CairoTIFF() and CairoJPEG()
+       it now passed down to Cairo() which now accepts `res' to
+       override the value of `dpi' if `res' is set to anyhting other
+       than NA or NULL. (closes #3)
+
+    o  release onSave callback function on close (closes #2)
+
+
+1.5-3  (2013-12-03)
+    o  remove compatibility layers to make R 3.x happy
+
+    o  adjust pointsize according to the dpi setting
+
+
 1.5-2  (2012-11-05)
     o  added Cairo.onSave() callback which allows R code to be run
        when Cairo finishes a page
diff --git a/win32/deps/library/Cairo/R/Cairo b/win32/deps/library/Cairo/R/Cairo
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/Cairo/R/Cairo
+++ b/win32/deps/library/Cairo/R/Cairo
@@ -1,9 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 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 General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
 local({
     info <- loadingNamespaceInfo()
-    ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
     if (is.null(ns))
-        stop("cannot find namespace environment");
-    barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
-    dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
     lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
 })
diff --git a/win32/deps/library/Cairo/R/Cairo.rdb b/win32/deps/library/Cairo/R/Cairo.rdb
index bfa6b1b..84a21fe 100644
Binary files a/win32/deps/library/Cairo/R/Cairo.rdb and b/win32/deps/library/Cairo/R/Cairo.rdb differ
diff --git a/win32/deps/library/Cairo/R/Cairo.rdx b/win32/deps/library/Cairo/R/Cairo.rdx
index 84252c7..f009bfb 100644
Binary files a/win32/deps/library/Cairo/R/Cairo.rdx and b/win32/deps/library/Cairo/R/Cairo.rdx differ
diff --git a/win32/deps/library/Cairo/help/Cairo.rdb b/win32/deps/library/Cairo/help/Cairo.rdb
index 1155c10..255cc48 100644
Binary files a/win32/deps/library/Cairo/help/Cairo.rdb and b/win32/deps/library/Cairo/help/Cairo.rdb differ
diff --git a/win32/deps/library/Cairo/help/Cairo.rdx b/win32/deps/library/Cairo/help/Cairo.rdx
index 6ed70c9..936421c 100644
Binary files a/win32/deps/library/Cairo/help/Cairo.rdx and b/win32/deps/library/Cairo/help/Cairo.rdx differ
diff --git a/win32/deps/library/Cairo/help/aliases.rds b/win32/deps/library/Cairo/help/aliases.rds
index 79a01c7..d002f95 100644
Binary files a/win32/deps/library/Cairo/help/aliases.rds and b/win32/deps/library/Cairo/help/aliases.rds 
differ
diff --git a/win32/deps/library/Cairo/help/paths.rds b/win32/deps/library/Cairo/help/paths.rds
index 697d544..4a85ee0 100644
Binary files a/win32/deps/library/Cairo/help/paths.rds and b/win32/deps/library/Cairo/help/paths.rds differ
diff --git a/win32/deps/library/Cairo/html/00Index.html b/win32/deps/library/Cairo/html/00Index.html
index 35e57ec..79c2e97 100644
--- a/win32/deps/library/Cairo/html/00Index.html
+++ b/win32/deps/library/Cairo/html/00Index.html
@@ -14,7 +14,7 @@ PostScript) and display (X11 and Win32) output.
 <div align="center">
 <a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30" 
height="30" border="0"></a>
 <a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30" 
height="30" border="0"></a>
-</div><h2>Documentation for package &lsquo;Cairo&rsquo; version 1.5-2</h2>
+</div><h2>Documentation for package &lsquo;Cairo&rsquo; version 1.5-5</h2>
 
 <ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
 <li><a href="../NEWS">Package NEWS</a>.</li>
diff --git a/win32/deps/library/Cairo/libs/i386/Cairo.dll b/win32/deps/library/Cairo/libs/i386/Cairo.dll
index a2561b7..33a6c47 100644
Binary files a/win32/deps/library/Cairo/libs/i386/Cairo.dll and 
b/win32/deps/library/Cairo/libs/i386/Cairo.dll differ
diff --git a/win32/deps/library/Cairo/libs/i386/symbols.rds b/win32/deps/library/Cairo/libs/i386/symbols.rds
index 370f74b..776e37b 100644
Binary files a/win32/deps/library/Cairo/libs/i386/symbols.rds and 
b/win32/deps/library/Cairo/libs/i386/symbols.rds differ
diff --git a/win32/deps/library/Cairo/libs/x64/Cairo.dll b/win32/deps/library/Cairo/libs/x64/Cairo.dll
index b61e06b..bc4a810 100644
Binary files a/win32/deps/library/Cairo/libs/x64/Cairo.dll and b/win32/deps/library/Cairo/libs/x64/Cairo.dll 
differ
diff --git a/win32/deps/library/Cairo/libs/x64/symbols.rds b/win32/deps/library/Cairo/libs/x64/symbols.rds
index f8b09cd..16f67d8 100644
Binary files a/win32/deps/library/Cairo/libs/x64/symbols.rds and 
b/win32/deps/library/Cairo/libs/x64/symbols.rds differ
diff --git a/win32/deps/library/base/CITATION b/win32/deps/library/base/CITATION
index 44c3b29..954b9dc 100644
--- a/win32/deps/library/base/CITATION
+++ b/win32/deps/library/base/CITATION
@@ -4,14 +4,13 @@ bibentry("Manual",
          organization = "R Foundation for Statistical Computing",
          address      = "Vienna, Austria",
          year         = version$year,
-         note         = "{ISBN} 3-900051-07-0",
          url          = "http://www.R-project.org/";,
          
          textVersion = 
          paste("R Core Team (", version$year, "). ", 
                "R: A language and environment for statistical computing. ",
                "R Foundation for Statistical Computing, Vienna, Austria. ",
-               "ISBN 3-900051-07-0, URL http://www.R-project.org/.";,
+               "URL http://www.R-project.org/.";,
                sep=""),
               
          mheader = "To cite R in publications use:",
diff --git a/win32/deps/library/base/DESCRIPTION b/win32/deps/library/base/DESCRIPTION
index 131ef4b..e147560 100644
--- a/win32/deps/library/base/DESCRIPTION
+++ b/win32/deps/library/base/DESCRIPTION
@@ -1,9 +1,9 @@
 Package: base
-Version: 2.15.2
+Version: 3.0.2
 Priority: base
 Title: The R Base Package
 Author: R Core Team and contributors worldwide
 Maintainer: R Core Team <R-core r-project org>
 Description: Base R functions
-License: Part of R 2.15.2
-Built: R 2.15.2; ; 2012-10-27 03:08:06 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; ; 2013-09-25 15:41:32 UTC; windows
diff --git a/win32/deps/library/base/INDEX b/win32/deps/library/base/INDEX
index 355b8db..067098e 100644
--- a/win32/deps/library/base/INDEX
+++ b/win32/deps/library/base/INDEX
@@ -13,7 +13,7 @@
 .standard_regexps       Miscellaneous Internal/Programming Utilities
 :                       Colon Operator
 ::                      Double Colon and Triple Colon Operators
-@                       Extract Slots
+@                       Extract or Replace A Slot
 Arithmetic              Arithmetic Operators
 AsIs                    Inhibit Interpretation/Conversion of Objects
 Bessel                  Bessel Functions
@@ -94,7 +94,7 @@ as.function             Convert Object to Function
 assign                  Assign a Value to a Name
 assignOps               Assignment Operators
 attach                  Attach Set of R Objects to Search Path
-attachNamespace         Loading and Unloading Namespaces
+attachNamespace         Loading and Unloading Name Spaces
 attr                    Object Attributes
 attributes              Object Attribute Lists
 autoload                On-demand Loading of Packages
@@ -102,6 +102,7 @@ backsolve               Solve an Upper or Lower Triangular System
 base-package            The R Base Package
 basename                Manipulate File Paths
 bindenv                 Binding and Environment Adjustments
+bitwNot                 Bitwise Logical Operations
 body                    Access to and Manipulation of the Body of a
                         Function
 bquote                  Partial substitution in expressions
@@ -204,7 +205,6 @@ getHook                 Functions to Get and Set Hooks for Load,
 getLoadedDLLs           Get DLLs Loaded in Current Session
 getNativeSymbolInfo     Obtain a Description of one or more Native
                         (C/Fortran) Symbols
-getNumCConverters       Management of .C argument conversion list
 getTaskCallbackNames    Query the Names of the Current Internal
                         Top-Level Task Callbacks
 gettext                 Translate Text Messages
@@ -253,6 +253,7 @@ load                    Reload Saved Datasets
 locales                 Query or Set Aspects of the Locale
 log                     Logarithms and Exponentials
 logical                 Logical Vectors
+long vector             Long Vectors
 lower.tri               Lower and Upper Triangular Part of a Matrix
 ls                      List Objects
 make.names              Make Syntactically Valid Names
@@ -328,7 +329,6 @@ readLines               Read Text Lines from a Connection
 readRDS                 Serialization Interface for Single Objects
 readRenviron            Set Environment Variables from a File
 readline                Read a Line from the Terminal
-real                    Real Vectors
 reg.finalizer           Finalization of Objects
 regex                   Regular Expressions as used in R
 regmatches              Extract or Replace Matched Substrings
@@ -424,7 +424,8 @@ warning                 Warning Messages
 warnings                Print Warning Messages
 weekdays                Extract Parts of a POSIXt or Date Object
 which                   Which indices are TRUE?
-which.min               Where is the Min() or Max() ?
+which.min               Where is the Min() or Max() or first TRUE or
+                        FALSE ?
 with                    Evaluate an Expression in a Data Environment
 withVisible             Return both a value and its visibility
 write                   Write Data to a File
diff --git a/win32/deps/library/base/Meta/Rd.rds b/win32/deps/library/base/Meta/Rd.rds
index 2a05420..dd9e0b9 100644
Binary files a/win32/deps/library/base/Meta/Rd.rds and b/win32/deps/library/base/Meta/Rd.rds differ
diff --git a/win32/deps/library/base/Meta/demo.rds b/win32/deps/library/base/Meta/demo.rds
index f729e47..98e2767 100644
Binary files a/win32/deps/library/base/Meta/demo.rds and b/win32/deps/library/base/Meta/demo.rds differ
diff --git a/win32/deps/library/base/Meta/hsearch.rds b/win32/deps/library/base/Meta/hsearch.rds
index 2fa2f94..f7d84e1 100644
Binary files a/win32/deps/library/base/Meta/hsearch.rds and b/win32/deps/library/base/Meta/hsearch.rds differ
diff --git a/win32/deps/library/base/Meta/links.rds b/win32/deps/library/base/Meta/links.rds
index 70f142b..a6aa4da 100644
Binary files a/win32/deps/library/base/Meta/links.rds and b/win32/deps/library/base/Meta/links.rds differ
diff --git a/win32/deps/library/base/Meta/package.rds b/win32/deps/library/base/Meta/package.rds
index 573c2b6..43b617c 100644
Binary files a/win32/deps/library/base/Meta/package.rds and b/win32/deps/library/base/Meta/package.rds differ
diff --git a/win32/deps/library/base/R/Rprofile b/win32/deps/library/base/R/Rprofile
index 9ad2407..9580f48 100644
--- a/win32/deps/library/base/R/Rprofile
+++ b/win32/deps/library/base/R/Rprofile
@@ -107,6 +107,18 @@ invisible(.libPaths(c(unlist(strsplit(Sys.getenv("R_LIBS"), ";")),
                       unlist(strsplit(Sys.getenv("R_LIBS_USER"), ";"))
                       )))
 
+local({
+    popath <- Sys.getenv("R_TRANSLATIONS", "")
+    if(!nzchar(popath)) {
+        paths <- file.path(.libPaths(), "translations", "DESCRIPTION")
+        popath <- dirname(paths[file.exists(paths)][1])
+    }
+    bindtextdomain("R", popath)
+    bindtextdomain("R-base", popath)
+    bindtextdomain("RGui", popath)
+    assign(".popath", popath, .BaseNamespaceEnv)
+})
+
 if(nzchar(Sys.getenv("R_PAPERSIZE"))) {
     options(papersize = Sys.getenv("R_PAPERSIZE"))
 } else {
diff --git a/win32/deps/library/base/R/base b/win32/deps/library/base/R/base
index 635aaf5..4cab9a4 100644
--- a/win32/deps/library/base/R/base
+++ b/win32/deps/library/base/R/base
@@ -1,4 +1,21 @@
-#  Copyright (C) 1995-2012 The R Core Team
+#  File src/library/base/baseloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2013 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 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 General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
 
 ## this should be kept in step with code in R/lazyload.R
 .Internal(eval(quote({
@@ -48,12 +65,6 @@
             set(n, e, envenv)           # MUST do this immediately
             key <- getFromFrame(n, env)
             data <- lazyLoadDBfetch(key, datafile, compressed, envhook)
-            ## comment from r41494
-            ## modified the loading of old environments, so that those
-            ## serialized with parent.env NULL are loaded with the
-            ## parent.env=emptyenv(); and yes an alternative would have been
-            ## baseenv(), but that was seldom the intention of folks that
-            ## set the environment to NULL.
             if (is.null(data$enclos))
                 parent.env(e) <- emptyenv()
             else
@@ -62,9 +73,8 @@
             for (i in seq_along(vars))
                 set(vars[i], data$bindings[[i]], e)
             if (! is.null(data$attributes))
-                attributes(e) <-data$attributes
-            if (! is.null(data$isS4) && data$isS4)
-                .Call("R_setS4Object", e, TRUE, TRUE, PACKAGE = "base")
+                attributes(e) <- data$attributes
+            ## there are no S4 objects in base
             if (! is.null(data$locked) && data$locked)
                 .Internal(lockEnvironment(e, FALSE))
             e
@@ -95,5 +105,18 @@
 }), .Internal(new.env(FALSE, baseenv(), 29L)), baseenv()))
 
 ## keep in sync with R/zzz.R
-as.numeric <- as.real <- as.double
+as.numeric <- as.double
 is.name <- is.symbol
+
+
+## populate C/Fortran symbols
+local({
+    routines <- getDLLRegisteredRoutines("base")
+    for (i in c("dchdc", # chol, deprecated
+                "dqrcf", "dqrdc2", "dqrqty", "dqrqy", "dqrrsd", "dqrxb", # qr
+                "dtrco")) # .kappa_tri
+        assign(paste0(".F_", i), routines[[3]][[i]], envir = .BaseNamespaceEnv)
+    for(i in 1:2)
+        lapply(routines[[i]],
+               function(sym) assign(paste0(".C_", sym$name), sym, envir = .BaseNamespaceEnv))
+})
diff --git a/win32/deps/library/base/R/base.rdb b/win32/deps/library/base/R/base.rdb
index b49bca5..6b6624a 100644
Binary files a/win32/deps/library/base/R/base.rdb and b/win32/deps/library/base/R/base.rdb differ
diff --git a/win32/deps/library/base/R/base.rdx b/win32/deps/library/base/R/base.rdx
index b2b395c..8b6bc71 100644
Binary files a/win32/deps/library/base/R/base.rdx and b/win32/deps/library/base/R/base.rdx differ
diff --git a/win32/deps/library/base/demo/error.catching.R b/win32/deps/library/base/demo/error.catching.R
index 55db352..ed90159 100644
--- a/win32/deps/library/base/demo/error.catching.R
+++ b/win32/deps/library/base/demo/error.catching.R
@@ -7,18 +7,15 @@
        ###  Here's a solution  (see R-help mailing list, Dec 9, 2010):  ###
        ##================================================================##
 
-##' We want to catch *and* save both errors and warnings, and in the case of
+##' Catch *and* save both errors and warnings, and in the case of
 ##' a warning, also keep the computed result.
 ##'
-##' @title tryCatch both warnings and errors
-##' @param expr
+##' @title tryCatch both warnings (with value) and errors
+##' @param expr an \R expression to evaluate
 ##' @return a list with 'value' and 'warning', where
 ##'   'value' may be an error caught.
-##' @author Martin Maechler
-
-#  Copyright (C) 2010 The R Core Team
-
-
+##' @author Martin Maechler;
+##' Copyright (C) 2010-2012  The R Core Team
 tryCatch.W.E <- function(expr)
 {
     W <- NULL
diff --git a/win32/deps/library/base/demo/is.things.R b/win32/deps/library/base/demo/is.things.R
index b5dac61..6531411 100644
--- a/win32/deps/library/base/demo/is.things.R
+++ b/win32/deps/library/base/demo/is.things.R
@@ -30,7 +30,7 @@ is.method <- function(fname) {
 }
 
 is.ALL <- function(obj, func.names = ls(pos=length(search())),
-                  not.using = c("is.single", "is.loaded",
+                  not.using = c("is.single", "is.real", "is.loaded",
                      "is.empty.model", "is.R", "is.element", "is.unsorted"),
                   true.only = FALSE, debug = FALSE)
 {
diff --git a/win32/deps/library/base/help/AnIndex b/win32/deps/library/base/help/AnIndex
index 1a75a9b..4d54708 100644
--- a/win32/deps/library/base/help/AnIndex
+++ b/win32/deps/library/base/help/AnIndex
@@ -32,6 +32,9 @@ $<-.data.frame        Extract.data.frame
 -.POSIXt       DateTimeClasses
 ->     assignOps
 ->>    assignOps
+...    Reserved
+..1    Reserved
+..getNamespace ns-internal
 .Alias base-defunct
 .amatch_bounds agrep
 .amatch_costs  agrep
@@ -48,10 +51,17 @@ $<-.data.frame      Extract.data.frame
 .colMeans      colSums
 .colSums       colSums
 .conflicts.OK  attach
+.C_R_addTaskCallback   base-internal
+.C_R_getbcprofcounts   base-internal
+.C_R_getTaskCallbackNames      base-internal
+.C_R_removeTaskCallback        base-internal
+.C_R_startbcprof       base-internal
+.C_R_stopbcprof        base-internal
 .decode_numeric_version        numeric_version
 .Defunct       Defunct
 .deparseOpts   deparseOpts
 .Deprecated    Deprecated
+.detach        base-internal
 .Device        dev
 .Devices       dev
 .difftime      base-internal
@@ -63,12 +73,21 @@ $<-.data.frame      Extract.data.frame
 .Export        base-defunct
 .External      CallExternal
 .External.graphics     Foreign-internal
-.find.package  find.package
+.External2     Foreign-internal
+.find.package  base-deprecated
 .First Startup
 .First.lib     base-defunct
 .First.sys     Startup
 .Firstlib_as_onLoad    base-internal
 .Fortran       Foreign
+.F_dchdc       base-internal
+.F_dqrcf       base-internal
+.F_dqrdc2      base-internal
+.F_dqrqty      base-internal
+.F_dqrqy       base-internal
+.F_dqrrsd      base-internal
+.F_dqrxb       base-internal
+.F_dtrco       base-internal
 .Generic       UseMethod
 .GenericArgsEnv        base-internal
 .getNamespace  ns-internal
@@ -99,6 +118,7 @@ $<-.data.frame       Extract.data.frame
 .Machine       zMachine
 .makeMessage   message
 .make_numeric_version  numeric_version
+.mapply        base-internal
 .mergeExportMethods    ns-internal
 .mergeImportMethods    ns-internal
 .Method        UseMethod
@@ -107,14 +127,16 @@ $<-.data.frame    Extract.data.frame
 .NotYetImplemented     notyet
 .NotYetUsed    notyet
 .onAttach      ns-hooks
+.onDetach      ns-hooks
 .onLoad        ns-hooks
 .onUnload      ns-hooks
 .Options       options
 .OptRequireMethods     Startup
 .packages      zpackages
 .packageStartupMessage message
-.path.package  find.package
+.path.package  base-deprecated
 .Platform      Platform
+.popath        base-internal
 .POSIXct       base-internal
 .POSIXlt       base-internal
 .Primitive     Primitive
@@ -160,6 +182,7 @@ $<-.data.frame      Extract.data.frame
     Comparison
=     Comparison
 @      slotOp
+@<-    slotOp
 abbreviate     abbreviate
 abs    MathFun
 acos   Trig
@@ -177,7 +200,7 @@ all.equal.formula   all.equal
 all.equal.language     all.equal
 all.equal.list all.equal
 all.equal.numeric      all.equal
-all.equal.POSIXct      DateTimeClasses
+all.equal.POSIXct      all.equal
 all.equal.raw  all.equal
 all.names      allnames
 all.vars       allnames
@@ -300,7 +323,7 @@ as.POSIXlt.numeric  as.POSIXlt
 as.POSIXlt.POSIXct     as.POSIXlt
 as.qr  qr
 as.raw raw
-as.real        real
+as.real        base-defunct
 as.single      double
 as.single.default      double
 as.symbol      name
@@ -349,6 +372,12 @@ bindenv    bindenv
 bindingIsActive        bindenv
 bindingIsLocked        bindenv
 bindtextdomain gettext
+bitwAnd        bitwise
+bitwNot        bitwise
+bitwOr bitwise
+bitwShiftL     bitwise
+bitwShiftR     bitwise
+bitwXor        bitwise
 body   body
 body<- body
 bquote bquote
@@ -389,6 +418,7 @@ chol2inv    chol2inv
 choose Special
 class  class
 class<-        class
+clearPushBack  pushBack
 clipboard      connections
 close  connections
 close.connection       connections
@@ -598,8 +628,6 @@ get get
 getAllConnections      showConnections
 getCallingDLL  getCallingDLL
 getCallingDLLe getCallingDLL
-getCConverterDescriptions      converters
-getCConverterStatus    converters
 getConnection  showConnections
 getDLLRegisteredRoutines       getDLLRegisteredRoutines
 getDLLRegisteredRoutines.character     getDLLRegisteredRoutines
@@ -618,7 +646,6 @@ getNamespaceName    ns-reflect
 getNamespaceUsers      ns-reflect
 getNamespaceVersion    ns-reflect
 getNativeSymbolInfo    getNativeSymbolInfo
-getNumCConverters      converters
 getOption      options
 getRversion    numeric_version
 getSrcLines    srcfile
@@ -711,7 +738,7 @@ is.primitive        is.function
 is.qr  qr
 is.R   isR
 is.raw raw
-is.real        real
+is.real        base-defunct
 is.recursive   is.recursive
 is.single      is.single
 is.symbol      name
@@ -800,6 +827,9 @@ log2        Log
 logb   Log
 Logic  Logic
 logical        logical
+long vector    LongVectors
+Long vectors   LongVectors
+long vectors   LongVectors
 lower.tri      lower.tri
 ls     ls
 Machine        base-defunct
@@ -829,7 +859,6 @@ matrix      matrix
 max    Extremes
 max.col        maxCol
 mean   mean
-mean.data.frame        mean
 mean.Date      Dates
 mean.default   mean
 mean.difftime  difftime
@@ -1008,6 +1037,7 @@ promise   delayedAssign
 promises       delayedAssign
 prop.table     prop.table
 provide        base-defunct
+provideDimnames        dimnames
 psigamma       Special
 pushBack       pushBack
 pushBackLength pushBack
@@ -1059,7 +1089,7 @@ readline  readline
 readLines      readLines
 readRDS        readRDS
 readRenviron   readRenviron
-real   real
+real   base-defunct
 Recall Recall
 Reduce funprog
 reg.finalizer  reg.finalizer
@@ -1074,7 +1104,6 @@ regmatches        regmatches
 regmatches<-   regmatches
 regular expression     regex
 remove rm
-removeCConverter       converters
 removeTaskCallback     taskCallback
 Renviron       Startup
 Renviron.site  Startup
@@ -1088,6 +1117,7 @@ rep.POSIXlt       rep
 repeat Control
 replace        replace
 replicate      lapply
+rep_len        rep
 require        library
 requireNamespace       ns-load
 Reserved       Reserved
@@ -1178,7 +1208,6 @@ seq_along seq
 seq_len        seq
 serialize      serialize
 set.seed       Random
-setCConverterStatus    converters
 setdiff        sets
 setequal       sets
 setHook        userhooks
@@ -1283,6 +1312,7 @@ Summary.POSIXct   DateTimeClasses
 summary.POSIXct        DateTimeClasses
 Summary.POSIXlt        DateTimeClasses
 summary.POSIXlt        DateTimeClasses
+summary.proc_time      proc.time
 summary.srcfile        srcfile
 summary.srcref srcfile
 summary.table  table
@@ -1472,6 +1502,7 @@ zapsmall  zapsmall
 [.POSIXct      DateTimeClasses
 [.POSIXlt      DateTimeClasses
 [.simple.list  Extract
+[.warnings     warnings
 [<-    Extract
 [<-.data.frame Extract.data.frame
 [<-.Date       Dates
diff --git a/win32/deps/library/base/help/aliases.rds b/win32/deps/library/base/help/aliases.rds
index 1bf7866..e4c8623 100644
Binary files a/win32/deps/library/base/help/aliases.rds and b/win32/deps/library/base/help/aliases.rds differ
diff --git a/win32/deps/library/base/help/base.rdb b/win32/deps/library/base/help/base.rdb
index f39468b..d5a1d3e 100644
Binary files a/win32/deps/library/base/help/base.rdb and b/win32/deps/library/base/help/base.rdb differ
diff --git a/win32/deps/library/base/help/base.rdx b/win32/deps/library/base/help/base.rdx
index ffc4d72..df24aeb 100644
Binary files a/win32/deps/library/base/help/base.rdx and b/win32/deps/library/base/help/base.rdx differ
diff --git a/win32/deps/library/base/help/paths.rds b/win32/deps/library/base/help/paths.rds
index 8afbb39..a1e48dd 100644
Binary files a/win32/deps/library/base/help/paths.rds and b/win32/deps/library/base/help/paths.rds differ
diff --git a/win32/deps/library/base/html/00Index.html b/win32/deps/library/base/html/00Index.html
index ce65b04..5c6e42b 100644
--- a/win32/deps/library/base/html/00Index.html
+++ b/win32/deps/library/base/html/00Index.html
@@ -10,7 +10,7 @@
 <div align="center">
 <a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30" 
height="30" border="0"></a>
 <a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30" 
height="30" border="0"></a>
-</div><h2>Documentation for package &lsquo;base&rsquo; version 2.15.2</h2>
+</div><h2>Documentation for package &lsquo;base&rsquo; version 3.0.2</h2>
 
 <ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
 <li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
@@ -77,8 +77,6 @@
 <td>Are All Values True?</td></tr>
 <tr><td width="25%"><a href="all.equal.html">all.equal</a></td>
 <td>Test if Two Objects are (Nearly) Equal</td></tr>
-<tr><td width="25%"><a href="DateTimeClasses.html">all.equal.POSIXct</a></td>
-<td>Date-Time Classes</td></tr>
 <tr><td width="25%"><a href="allnames.html">all.names</a></td>
 <td>Find All Names in an Expression</td></tr>
 <tr><td width="25%"><a href="allnames.html">all.vars</a></td>
@@ -199,8 +197,6 @@
 <td>The QR Decomposition of a Matrix</td></tr>
 <tr><td width="25%"><a href="raw.html">as.raw</a></td>
 <td>Raw Vectors</td></tr>
-<tr><td width="25%"><a href="real.html">as.real</a></td>
-<td>Real Vectors</td></tr>
 <tr><td width="25%"><a href="double.html">as.single</a></td>
 <td>Double-Precision Vectors</td></tr>
 <tr><td width="25%"><a href="name.html">as.symbol</a></td>
@@ -234,7 +230,7 @@
 <tr><td width="25%"><a href="attach.html">attach</a></td>
 <td>Attach Set of R Objects to Search Path</td></tr>
 <tr><td width="25%"><a href="ns-load.html">attachNamespace</a></td>
-<td>Loading and Unloading Namespaces</td></tr>
+<td>Loading and Unloading Name Spaces</td></tr>
 <tr><td width="25%"><a href="attr.html">attr</a></td>
 <td>Object Attributes</td></tr>
 <tr><td width="25%"><a href="all.equal.html">attr.all.equal</a></td>
@@ -286,6 +282,18 @@
 <td>Binding and Environment Adjustments</td></tr>
 <tr><td width="25%"><a href="gettext.html">bindtextdomain</a></td>
 <td>Translate Text Messages</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwAnd</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwNot</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwOr</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwShiftL</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwShiftR</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwXor</a></td>
+<td>Bitwise Logical Operations</td></tr>
 <tr><td width="25%"><a href="body.html">body</a></td>
 <td>Access to and Manipulation of the Body of a Function</td></tr>
 <tr><td width="25%"><a href="bquote.html">bquote</a></td>
@@ -357,6 +365,8 @@
 <td>Special Functions of Mathematics</td></tr>
 <tr><td width="25%"><a href="class.html">class</a></td>
 <td>Object Classes</td></tr>
+<tr><td width="25%"><a href="pushBack.html">clearPushBack</a></td>
+<td>Push Text Back on to a Connection</td></tr>
 <tr><td width="25%"><a href="connections.html">clipboard</a></td>
 <td>Functions to Manipulate Connections</td></tr>
 <tr><td width="25%"><a href="connections.html">close</a></td>
@@ -715,10 +725,6 @@
 <td>Return the Value of a Named Object</td></tr>
 <tr><td width="25%"><a href="showConnections.html">getAllConnections</a></td>
 <td>Display Connections</td></tr>
-<tr><td width="25%"><a href="converters.html">getCConverterDescriptions</a></td>
-<td>Management of .C argument conversion list</td></tr>
-<tr><td width="25%"><a href="converters.html">getCConverterStatus</a></td>
-<td>Management of .C argument conversion list</td></tr>
 <tr><td width="25%"><a href="showConnections.html">getConnection</a></td>
 <td>Display Connections</td></tr>
 <tr><td width="25%"><a href="getDLLRegisteredRoutines.html">getDLLRegisteredRoutines</a></td>
@@ -733,8 +739,6 @@
 <td>Get DLLs Loaded in Current Session</td></tr>
 <tr><td width="25%"><a href="getNativeSymbolInfo.html">getNativeSymbolInfo</a></td>
 <td>Obtain a Description of one or more Native (C/Fortran) Symbols</td></tr>
-<tr><td width="25%"><a href="converters.html">getNumCConverters</a></td>
-<td>Management of .C argument conversion list</td></tr>
 <tr><td width="25%"><a href="options.html">getOption</a></td>
 <td>Options Settings</td></tr>
 <tr><td width="25%"><a href="numeric_version.html">getRversion</a></td>
@@ -913,8 +917,6 @@
 <td>Are we using R, rather than S?</td></tr>
 <tr><td width="25%"><a href="raw.html">is.raw</a></td>
 <td>Raw Vectors</td></tr>
-<tr><td width="25%"><a href="real.html">is.real</a></td>
-<td>Real Vectors</td></tr>
 <tr><td width="25%"><a href="is.recursive.html">is.recursive</a></td>
 <td>Is an Object Atomic or Recursive?</td></tr>
 <tr><td width="25%"><a href="is.single.html">is.single</a></td>
@@ -1035,9 +1037,9 @@
 <tr><td width="25%"><a href="load.html">load</a></td>
 <td>Reload Saved Datasets</td></tr>
 <tr><td width="25%"><a href="ns-load.html">loadedNamespaces</a></td>
-<td>Loading and Unloading Namespaces</td></tr>
+<td>Loading and Unloading Name Spaces</td></tr>
 <tr><td width="25%"><a href="ns-load.html">loadNamespace</a></td>
-<td>Loading and Unloading Namespaces</td></tr>
+<td>Loading and Unloading Name Spaces</td></tr>
 <tr><td width="25%"><a href="eval.html">local</a></td>
 <td>Evaluate an (Unevaluated) Expression</td></tr>
 <tr><td width="25%"><a href="Sys.localeconv.html">localeconv</a></td>
@@ -1062,6 +1064,12 @@
 <td>Logical Operators</td></tr>
 <tr><td width="25%"><a href="logical.html">logical</a></td>
 <td>Logical Vectors</td></tr>
+<tr><td width="25%"><a href="LongVectors.html">long vector</a></td>
+<td>Long Vectors</td></tr>
+<tr><td width="25%"><a href="LongVectors.html">Long vectors</a></td>
+<td>Long Vectors</td></tr>
+<tr><td width="25%"><a href="LongVectors.html">long vectors</a></td>
+<td>Long Vectors</td></tr>
 <tr><td width="25%"><a href="lower.tri.html">lower.tri</a></td>
 <td>Lower and Upper Triangular Part of a Matrix</td></tr>
 <tr><td width="25%"><a href="ls.html">ls</a></td>
@@ -1394,6 +1402,8 @@
 <td>Delay Evaluation</td></tr>
 <tr><td width="25%"><a href="prop.table.html">prop.table</a></td>
 <td>Express Table Entries as Fraction of Marginal Table</td></tr>
+<tr><td width="25%"><a href="dimnames.html">provideDimnames</a></td>
+<td>Dimnames of an Object</td></tr>
 <tr><td width="25%"><a href="Special.html">psigamma</a></td>
 <td>Special Functions of Mathematics</td></tr>
 <tr><td width="25%"><a href="pushBack.html">pushBack</a></td>
@@ -1496,8 +1506,6 @@
 <td>Serialization Interface for Single Objects</td></tr>
 <tr><td width="25%"><a href="readRenviron.html">readRenviron</a></td>
 <td>Set Environment Variables from a File</td></tr>
-<tr><td width="25%"><a href="real.html">real</a></td>
-<td>Real Vectors</td></tr>
 <tr><td width="25%"><a href="Recall.html">Recall</a></td>
 <td>Recursive Calling</td></tr>
 <tr><td width="25%"><a href="funprog.html">Reduce</a></td>
@@ -1520,8 +1528,6 @@
 <td>Regular Expressions as used in R</td></tr>
 <tr><td width="25%"><a href="rm.html">remove</a></td>
 <td>Remove Objects from a Specified Environment</td></tr>
-<tr><td width="25%"><a href="converters.html">removeCConverter</a></td>
-<td>Management of .C argument conversion list</td></tr>
 <tr><td width="25%"><a href="taskCallback.html">removeTaskCallback</a></td>
 <td>Add or Remove a Top-Level Task Callback</td></tr>
 <tr><td width="25%"><a href="Startup.html">Renviron</a></td>
@@ -1536,10 +1542,12 @@
 <td>Replace Values in a Vector</td></tr>
 <tr><td width="25%"><a href="lapply.html">replicate</a></td>
 <td>Apply a Function over a List or Vector</td></tr>
+<tr><td width="25%"><a href="rep.html">rep_len</a></td>
+<td>Replicate Elements of Vectors and Lists</td></tr>
 <tr><td width="25%"><a href="library.html">require</a></td>
 <td>Loading and Listing of Packages</td></tr>
 <tr><td width="25%"><a href="ns-load.html">requireNamespace</a></td>
-<td>Loading and Unloading Namespaces</td></tr>
+<td>Loading and Unloading Name Spaces</td></tr>
 <tr><td width="25%"><a href="Reserved.html">Reserved</a></td>
 <td>Reserved Words in R</td></tr>
 <tr><td width="25%"><a href="Reserved.html">reserved</a></td>
@@ -1685,8 +1693,6 @@
 <td>Simple Serialization Interface</td></tr>
 <tr><td width="25%"><a href="Random.html">set.seed</a></td>
 <td>Random Number Generation</td></tr>
-<tr><td width="25%"><a href="converters.html">setCConverterStatus</a></td>
-<td>Management of .C argument conversion list</td></tr>
 <tr><td width="25%"><a href="sets.html">setdiff</a></td>
 <td>Set Operations</td></tr>
 <tr><td width="25%"><a href="sets.html">setequal</a></td>
@@ -1845,6 +1851,8 @@
 <td>Date-Time Classes</td></tr>
 <tr><td width="25%"><a href="DateTimeClasses.html">Summary.POSIXlt</a></td>
 <td>Date-Time Classes</td></tr>
+<tr><td width="25%"><a href="proc.time.html">summary.proc_time</a></td>
+<td>Running Time of R</td></tr>
 <tr><td width="25%"><a href="srcfile.html">summary.srcfile</a></td>
 <td>References to source files</td></tr>
 <tr><td width="25%"><a href="srcfile.html">summary.srcref</a></td>
@@ -2038,7 +2046,7 @@
 <tr><td width="25%"><a href="unlist.html">unlist</a></td>
 <td>Flatten Lists</td></tr>
 <tr><td width="25%"><a href="ns-load.html">unloadNamespace</a></td>
-<td>Loading and Unloading Namespaces</td></tr>
+<td>Loading and Unloading Name Spaces</td></tr>
 <tr><td width="25%"><a href="bindenv.html">unlockBinding</a></td>
 <td>Binding and Environment Adjustments</td></tr>
 <tr><td width="25%"><a href="unname.html">unname</a></td>
@@ -2088,9 +2096,9 @@
 <tr><td width="25%"><a href="which.html">which</a></td>
 <td>Which indices are TRUE?</td></tr>
 <tr><td width="25%"><a href="which.min.html">which.max</a></td>
-<td>Where is the Min() or Max() ?</td></tr>
+<td>Where is the Min() or Max() or first TRUE or FALSE ?</td></tr>
 <tr><td width="25%"><a href="which.min.html">which.min</a></td>
-<td>Where is the Min() or Max() ?</td></tr>
+<td>Where is the Min() or Max() or first TRUE or FALSE ?</td></tr>
 <tr><td width="25%"><a href="Control.html">while</a></td>
 <td>Control Flow</td></tr>
 <tr><td width="25%"><a href="with.html">with</a></td>
@@ -2208,6 +2216,10 @@
 <td>Assignment Operators</td></tr>
 <tr><td width="25%"><a href="assignOps.html">-&gt;&gt;</a></td>
 <td>Assignment Operators</td></tr>
+<tr><td width="25%"><a href="Reserved.html">...</a></td>
+<td>Reserved Words in R</td></tr>
+<tr><td width="25%"><a href="Reserved.html">..1</a></td>
+<td>Reserved Words in R</td></tr>
 <tr><td width="25%"><a href="agrep.html">.amatch_bounds</a></td>
 <td>Approximate String Matching (Fuzzy Matching)</td></tr>
 <tr><td width="25%"><a href="agrep.html">.amatch_costs</a></td>
@@ -2254,8 +2266,6 @@
 <td>Search Paths for Packages</td></tr>
 <tr><td width="25%"><a href="CallExternal.html">.External</a></td>
 <td>Modern Interfaces to C/C++ code</td></tr>
-<tr><td width="25%"><a href="find.package.html">.find.package</a></td>
-<td>Find Packages</td></tr>
 <tr><td width="25%"><a href="Startup.html">.First</a></td>
 <td>Initialization at Start of an R Session</td></tr>
 <tr><td width="25%"><a href="Startup.html">.First.sys</a></td>
@@ -2310,6 +2320,8 @@
 <td>Not Yet Implemented Functions and Unused Arguments</td></tr>
 <tr><td width="25%"><a href="ns-hooks.html">.onAttach</a></td>
 <td>Hooks for Namespace Events</td></tr>
+<tr><td width="25%"><a href="ns-hooks.html">.onDetach</a></td>
+<td>Hooks for Namespace Events</td></tr>
 <tr><td width="25%"><a href="ns-hooks.html">.onLoad</a></td>
 <td>Hooks for Namespace Events</td></tr>
 <tr><td width="25%"><a href="ns-hooks.html">.onUnload</a></td>
@@ -2322,8 +2334,6 @@
 <td>Listing of Packages</td></tr>
 <tr><td width="25%"><a href="message.html">.packageStartupMessage</a></td>
 <td>Diagnostic Messages</td></tr>
-<tr><td width="25%"><a href="find.package.html">.path.package</a></td>
-<td>Find Packages</td></tr>
 <tr><td width="25%"><a href="Platform.html">.Platform</a></td>
 <td>Platform Specific Variables</td></tr>
 <tr><td width="25%"><a href="Primitive.html">.Primitive</a></td>
@@ -2385,7 +2395,9 @@
 <tr><td width="25%"><a href="Comparison.html">&gt;=</a></td>
 <td>Relational Operators</td></tr>
 <tr><td width="25%"><a href="slotOp.html">@</a></td>
-<td>Extract Slots</td></tr>
+<td>Extract or Replace A Slot</td></tr>
+<tr><td width="25%"><a href="slotOp.html">@&lt;-</a></td>
+<td>Extract or Replace A Slot</td></tr>
 <tr><td width="25%"><a href="Extract.html">[</a></td>
 <td>Extract or Replace Parts of an Object</td></tr>
 <tr><td width="25%"><a href="AsIs.html">[.AsIs</a></td>
@@ -2414,6 +2426,8 @@
 <td>Date-Time Classes</td></tr>
 <tr><td width="25%"><a href="Extract.html">[.simple.list</a></td>
 <td>Extract or Replace Parts of an Object</td></tr>
+<tr><td width="25%"><a href="warnings.html">[.warnings</a></td>
+<td>Print Warning Messages</td></tr>
 <tr><td width="25%"><a href="Extract.html">[&lt;-</a></td>
 <td>Extract or Replace Parts of an Object</td></tr>
 <tr><td width="25%"><a href="Extract.data.frame.html">[&lt;-.data.frame</a></td>
diff --git a/win32/deps/library/datasets/DESCRIPTION b/win32/deps/library/datasets/DESCRIPTION
index 03afe20..021e946 100644
--- a/win32/deps/library/datasets/DESCRIPTION
+++ b/win32/deps/library/datasets/DESCRIPTION
@@ -1,9 +1,9 @@
 Package: datasets
-Version: 2.15.2
+Version: 3.0.2
 Priority: base
 Title: The R Datasets Package
 Author: R Core Team and contributors worldwide
 Maintainer: R Core Team <R-core r-project org>
 Description: Base R datasets
-License: Part of R 2.15.2
-Built: R 2.15.2; ; 2012-10-27 03:07:02 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; ; 2013-09-25 15:40:36 UTC; windows
diff --git a/win32/deps/library/datasets/INDEX b/win32/deps/library/datasets/INDEX
index e9a37cc..7175ac0 100644
--- a/win32/deps/library/datasets/INDEX
+++ b/win32/deps/library/datasets/INDEX
@@ -71,6 +71,7 @@ mtcars                  Motor Trend Car Road Tests
 nhtemp                  Average Yearly Temperatures in New Haven
 nottem                  Average Monthly Temperatures at Nottingham,
                         1920-1939
+npk                     Classical N, P, K Factorial Experiment
 occupationalStatus      Occupational Status of Fathers and their Sons
 precip                  Annual Precipitation in US Cities
 presidents              Quarterly Approval Ratings of US Presidents
diff --git a/win32/deps/library/datasets/Meta/Rd.rds b/win32/deps/library/datasets/Meta/Rd.rds
index 4e28191..ff4b5cd 100644
Binary files a/win32/deps/library/datasets/Meta/Rd.rds and b/win32/deps/library/datasets/Meta/Rd.rds differ
diff --git a/win32/deps/library/datasets/Meta/data.rds b/win32/deps/library/datasets/Meta/data.rds
index e89c28f..97d2520 100644
Binary files a/win32/deps/library/datasets/Meta/data.rds and b/win32/deps/library/datasets/Meta/data.rds 
differ
diff --git a/win32/deps/library/datasets/Meta/hsearch.rds b/win32/deps/library/datasets/Meta/hsearch.rds
index 36d475f..2adc81a 100644
Binary files a/win32/deps/library/datasets/Meta/hsearch.rds and 
b/win32/deps/library/datasets/Meta/hsearch.rds differ
diff --git a/win32/deps/library/datasets/Meta/links.rds b/win32/deps/library/datasets/Meta/links.rds
index a6e5e04..32e5627 100644
Binary files a/win32/deps/library/datasets/Meta/links.rds and b/win32/deps/library/datasets/Meta/links.rds 
differ
diff --git a/win32/deps/library/datasets/Meta/nsInfo.rds b/win32/deps/library/datasets/Meta/nsInfo.rds
index b825b2a..a2cf1c3 100644
Binary files a/win32/deps/library/datasets/Meta/nsInfo.rds and b/win32/deps/library/datasets/Meta/nsInfo.rds 
differ
diff --git a/win32/deps/library/datasets/Meta/package.rds b/win32/deps/library/datasets/Meta/package.rds
index 53dd299..6bfc253 100644
Binary files a/win32/deps/library/datasets/Meta/package.rds and 
b/win32/deps/library/datasets/Meta/package.rds differ
diff --git a/win32/deps/library/datasets/data/Rdata.rdb b/win32/deps/library/datasets/data/Rdata.rdb
index 8a37907..c022064 100644
Binary files a/win32/deps/library/datasets/data/Rdata.rdb and b/win32/deps/library/datasets/data/Rdata.rdb 
differ
diff --git a/win32/deps/library/datasets/data/Rdata.rds b/win32/deps/library/datasets/data/Rdata.rds
index 9119841..a867cc3 100644
Binary files a/win32/deps/library/datasets/data/Rdata.rds and b/win32/deps/library/datasets/data/Rdata.rds 
differ
diff --git a/win32/deps/library/datasets/data/Rdata.rdx b/win32/deps/library/datasets/data/Rdata.rdx
index b94434b..7ab469e 100644
Binary files a/win32/deps/library/datasets/data/Rdata.rdx and b/win32/deps/library/datasets/data/Rdata.rdx 
differ
diff --git a/win32/deps/library/datasets/help/AnIndex b/win32/deps/library/datasets/help/AnIndex
index 89d78e7..46c35c8 100644
--- a/win32/deps/library/datasets/help/AnIndex
+++ b/win32/deps/library/datasets/help/AnIndex
@@ -56,6 +56,7 @@ mtcars        mtcars
 nhtemp nhtemp
 Nile   Nile
 nottem nottem
+npk    npk
 occupationalStatus     occupationalStatus
 Orange Orange
 OrchardSprays  OrchardSprays
diff --git a/win32/deps/library/datasets/help/aliases.rds b/win32/deps/library/datasets/help/aliases.rds
index 1e1f980..8254cb4 100644
Binary files a/win32/deps/library/datasets/help/aliases.rds and 
b/win32/deps/library/datasets/help/aliases.rds differ
diff --git a/win32/deps/library/datasets/help/datasets.rdb b/win32/deps/library/datasets/help/datasets.rdb
index 82f6008..15e8fdb 100644
Binary files a/win32/deps/library/datasets/help/datasets.rdb and 
b/win32/deps/library/datasets/help/datasets.rdb differ
diff --git a/win32/deps/library/datasets/help/datasets.rdx b/win32/deps/library/datasets/help/datasets.rdx
index 1ede2a0..6f7bf42 100644
Binary files a/win32/deps/library/datasets/help/datasets.rdx and 
b/win32/deps/library/datasets/help/datasets.rdx differ
diff --git a/win32/deps/library/datasets/help/paths.rds b/win32/deps/library/datasets/help/paths.rds
index 9e914ab..65d0c2b 100644
Binary files a/win32/deps/library/datasets/help/paths.rds and b/win32/deps/library/datasets/help/paths.rds 
differ
diff --git a/win32/deps/library/datasets/html/00Index.html b/win32/deps/library/datasets/html/00Index.html
index 0bab6ab..f2c40b6 100644
--- a/win32/deps/library/datasets/html/00Index.html
+++ b/win32/deps/library/datasets/html/00Index.html
@@ -10,7 +10,7 @@
 <div align="center">
 <a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30" 
height="30" border="0"></a>
 <a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30" 
height="30" border="0"></a>
-</div><h2>Documentation for package &lsquo;datasets&rsquo; version 2.15.2</h2>
+</div><h2>Documentation for package &lsquo;datasets&rsquo; version 3.0.2</h2>
 
 <ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
 </ul>
@@ -220,6 +220,8 @@
 <td>Flow of the River Nile</td></tr>
 <tr><td width="25%"><a href="nottem.html">nottem</a></td>
 <td>Average Monthly Temperatures at Nottingham, 1920-1939</td></tr>
+<tr><td width="25%"><a href="npk.html">npk</a></td>
+<td>Classical N, P, K Factorial Experiment</td></tr>
 </table>
 
 <h2><a name="O">-- O --</a></h2>
diff --git a/win32/deps/library/grDevices/DESCRIPTION b/win32/deps/library/grDevices/DESCRIPTION
index ee7afcb..455e1af 100644
--- a/win32/deps/library/grDevices/DESCRIPTION
+++ b/win32/deps/library/grDevices/DESCRIPTION
@@ -1,9 +1,9 @@
 Package: grDevices
-Version: 2.15.2
+Version: 3.0.2
 Priority: base
 Title: The R Graphics Devices and Support for Colours and Fonts
 Author: R Core Team and contributors worldwide
 Maintainer: R Core Team <R-core r-project org>
 Description: Graphics devices and support for base and grid graphics
-License: Part of R 2.15.2
-Built: R 2.15.2; x86_64-w64-mingw32; 2012-10-27 03:05:46 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:39:14 UTC; windows
diff --git a/win32/deps/library/grDevices/Meta/Rd.rds b/win32/deps/library/grDevices/Meta/Rd.rds
index 96579d4..0683f25 100644
Binary files a/win32/deps/library/grDevices/Meta/Rd.rds and b/win32/deps/library/grDevices/Meta/Rd.rds differ
diff --git a/win32/deps/library/grDevices/Meta/hsearch.rds b/win32/deps/library/grDevices/Meta/hsearch.rds
index 357442d..31151db 100644
Binary files a/win32/deps/library/grDevices/Meta/hsearch.rds and 
b/win32/deps/library/grDevices/Meta/hsearch.rds differ
diff --git a/win32/deps/library/grDevices/Meta/links.rds b/win32/deps/library/grDevices/Meta/links.rds
index 8033b9f..27fde93 100644
Binary files a/win32/deps/library/grDevices/Meta/links.rds and b/win32/deps/library/grDevices/Meta/links.rds 
differ
diff --git a/win32/deps/library/grDevices/Meta/nsInfo.rds b/win32/deps/library/grDevices/Meta/nsInfo.rds
index cb66138..d30fd86 100644
Binary files a/win32/deps/library/grDevices/Meta/nsInfo.rds and 
b/win32/deps/library/grDevices/Meta/nsInfo.rds differ
diff --git a/win32/deps/library/grDevices/Meta/package.rds b/win32/deps/library/grDevices/Meta/package.rds
index b8bf427..bff3730 100644
Binary files a/win32/deps/library/grDevices/Meta/package.rds and 
b/win32/deps/library/grDevices/Meta/package.rds differ
diff --git a/win32/deps/library/grDevices/NAMESPACE b/win32/deps/library/grDevices/NAMESPACE
index cfc1de6..e692bfc 100644
--- a/win32/deps/library/grDevices/NAMESPACE
+++ b/win32/deps/library/grDevices/NAMESPACE
@@ -1,18 +1,4 @@
-## Explicitly enumerate the symbols here that are in the registration
-## information rather than use .registration as there are symbols that
-## conflict with functions on Windows, i.e. savePlot.
-
-if(tools:::.OStype() == "windows") {
-    useDynLib(grDevices, R_chull, R_CreateAtVector, R_GAxisPars,
-              PicTeX, PostScript, XFig, PDF,
-              Cdevga=devga, CsavePlot=savePlot, devCairo,
-              Type1FontInUse, CIDFontInUse, R_GD_nullDevice)
-} else {
-    useDynLib(grDevices, R_chull, R_CreateAtVector, R_GAxisPars,
-              PicTeX, PostScript, XFig, PDF, CQuartz = Quartz, devCairo,
-              Type1FontInUse, CIDFontInUse, R_GD_nullDevice,
-              cairoProps, makeQuartzDefault)
-}
+useDynLib(grDevices, .registration = TRUE, .fixes = "C_")
 
 export(Hershey, adjustcolor, as.graphicsAnnot, as.raster, axisTicks, blues9,
        boxplot.stats, check.options, chull, CIDFont, col2rgb, colors,
@@ -26,7 +12,7 @@ export(Hershey, adjustcolor, as.graphicsAnnot, as.raster, axisTicks, blues9,
        getGraphicsEventEnv, graphics.off, gray, grey, gray.colors,
        grey.colors, heat.colors, hsv, hcl, is.raster, make.rgb,
        n2mfrow, nclass.Sturges, nclass.FD, nclass.scott, palette, pdf,
-       pdf.options, pdfFonts, pictex, postscript, postscriptFont,
+       pdf.options, pdfFonts, pictex, postscript,
        postscriptFonts, ps.options, rainbow, recordGraphics,
        recordPlot, replayPlot, rgb, rgb2hsv, savePlot, setEPS,
        setGraphicsEventEnv, setGraphicsEventHandlers, setPS,
@@ -34,7 +20,7 @@ export(Hershey, adjustcolor, as.graphicsAnnot, as.raster, axisTicks, blues9,
        xfig, xyTable, xy.coords, xyz.coords)
 
 ## devices common to all platforms
-export(X11, x11, bitmap, bmp, jpeg, png, tiff)
+export(X11, x11, bitmap, bmp, cairo_pdf, cairo_ps, jpeg, png, svg, tiff)
 
 S3method(print, recordedplot)
 S3method(print, colorConverter)
@@ -68,11 +54,10 @@ S3method(pretty, POSIXt)
 if(tools:::.OStype() == "windows") {
     export(bringToTop, msgWindow, win.graph, win.metafile, win.print,
            windows, windows.options, windowsFont, windowsFonts)
-    export(cairo_pdf, cairo_ps, svg)
 
     S3method("[", SavedPlots)
     S3method(print, SavedPlots)
 } else {
-    export(cairo_pdf, cairo_ps, X11.options, X11Font, X11Fonts,
-           quartz, quartz.options, quartzFont, quartzFonts, svg)
+    export(X11.options, X11Font, X11Fonts,
+           quartz, quartz.options, quartz.save, quartzFont, quartzFonts)
 }
diff --git a/win32/deps/library/grDevices/R/grDevices b/win32/deps/library/grDevices/R/grDevices
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/grDevices/R/grDevices
+++ b/win32/deps/library/grDevices/R/grDevices
@@ -1,9 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 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 General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
 local({
     info <- loadingNamespaceInfo()
-    ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
     if (is.null(ns))
-        stop("cannot find namespace environment");
-    barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
-    dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
     lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
 })
diff --git a/win32/deps/library/grDevices/R/grDevices.rdb b/win32/deps/library/grDevices/R/grDevices.rdb
index 0b80c44..cc3193f 100644
Binary files a/win32/deps/library/grDevices/R/grDevices.rdb and 
b/win32/deps/library/grDevices/R/grDevices.rdb differ
diff --git a/win32/deps/library/grDevices/R/grDevices.rdx b/win32/deps/library/grDevices/R/grDevices.rdx
index b40faab..792cd27 100644
Binary files a/win32/deps/library/grDevices/R/grDevices.rdx and 
b/win32/deps/library/grDevices/R/grDevices.rdx differ
diff --git a/win32/deps/library/grDevices/afm/CM_boldx_10.afm.gz 
b/win32/deps/library/grDevices/afm/CM_boldx_10.afm.gz
index 1647728..6725cf8 100644
Binary files a/win32/deps/library/grDevices/afm/CM_boldx_10.afm.gz and 
b/win32/deps/library/grDevices/afm/CM_boldx_10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/CM_boldx_italic_10.afm.gz 
b/win32/deps/library/grDevices/afm/CM_boldx_italic_10.afm.gz
index 4203fac..7286df4 100644
Binary files a/win32/deps/library/grDevices/afm/CM_boldx_italic_10.afm.gz and 
b/win32/deps/library/grDevices/afm/CM_boldx_italic_10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/CM_italic_10.afm.gz 
b/win32/deps/library/grDevices/afm/CM_italic_10.afm.gz
index 0acc43c..f59cb85 100644
Binary files a/win32/deps/library/grDevices/afm/CM_italic_10.afm.gz and 
b/win32/deps/library/grDevices/afm/CM_italic_10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/CM_regular_10.afm.gz 
b/win32/deps/library/grDevices/afm/CM_regular_10.afm.gz
index 10f12b4..5c4925e 100644
Binary files a/win32/deps/library/grDevices/afm/CM_regular_10.afm.gz and 
b/win32/deps/library/grDevices/afm/CM_regular_10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/CM_symbol_10.afm.gz 
b/win32/deps/library/grDevices/afm/CM_symbol_10.afm.gz
index 4163593..6a84e53 100644
Binary files a/win32/deps/library/grDevices/afm/CM_symbol_10.afm.gz and 
b/win32/deps/library/grDevices/afm/CM_symbol_10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Courier-Bold.afm.gz 
b/win32/deps/library/grDevices/afm/Courier-Bold.afm.gz
index 04ecb51..a3c6d64 100644
Binary files a/win32/deps/library/grDevices/afm/Courier-Bold.afm.gz and 
b/win32/deps/library/grDevices/afm/Courier-Bold.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Courier-BoldOblique.afm.gz 
b/win32/deps/library/grDevices/afm/Courier-BoldOblique.afm.gz
index dad0c9a..b01b0a6 100644
Binary files a/win32/deps/library/grDevices/afm/Courier-BoldOblique.afm.gz and 
b/win32/deps/library/grDevices/afm/Courier-BoldOblique.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Courier-Oblique.afm.gz 
b/win32/deps/library/grDevices/afm/Courier-Oblique.afm.gz
index 119a915..0ffcdaf 100644
Binary files a/win32/deps/library/grDevices/afm/Courier-Oblique.afm.gz and 
b/win32/deps/library/grDevices/afm/Courier-Oblique.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Courier.afm.gz b/win32/deps/library/grDevices/afm/Courier.afm.gz
index 5742c2d..d457f2e 100644
Binary files a/win32/deps/library/grDevices/afm/Courier.afm.gz and 
b/win32/deps/library/grDevices/afm/Courier.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Helvetica-Bold.afm.gz 
b/win32/deps/library/grDevices/afm/Helvetica-Bold.afm.gz
index f89498d..038b77d 100644
Binary files a/win32/deps/library/grDevices/afm/Helvetica-Bold.afm.gz and 
b/win32/deps/library/grDevices/afm/Helvetica-Bold.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Helvetica-BoldOblique.afm.gz 
b/win32/deps/library/grDevices/afm/Helvetica-BoldOblique.afm.gz
index 25f3e96..e604c66 100644
Binary files a/win32/deps/library/grDevices/afm/Helvetica-BoldOblique.afm.gz and 
b/win32/deps/library/grDevices/afm/Helvetica-BoldOblique.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Helvetica-Oblique.afm.gz 
b/win32/deps/library/grDevices/afm/Helvetica-Oblique.afm.gz
index 5762c14..78cf1a0 100644
Binary files a/win32/deps/library/grDevices/afm/Helvetica-Oblique.afm.gz and 
b/win32/deps/library/grDevices/afm/Helvetica-Oblique.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Helvetica.afm.gz 
b/win32/deps/library/grDevices/afm/Helvetica.afm.gz
index 518c3a3..d829c04 100644
Binary files a/win32/deps/library/grDevices/afm/Helvetica.afm.gz and 
b/win32/deps/library/grDevices/afm/Helvetica.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Symbol.afm.gz b/win32/deps/library/grDevices/afm/Symbol.afm.gz
index f29339a..24cf429 100644
Binary files a/win32/deps/library/grDevices/afm/Symbol.afm.gz and 
b/win32/deps/library/grDevices/afm/Symbol.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Times-Bold.afm.gz 
b/win32/deps/library/grDevices/afm/Times-Bold.afm.gz
index 95bece0..6fa32f4 100644
Binary files a/win32/deps/library/grDevices/afm/Times-Bold.afm.gz and 
b/win32/deps/library/grDevices/afm/Times-Bold.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Times-BoldItalic.afm.gz 
b/win32/deps/library/grDevices/afm/Times-BoldItalic.afm.gz
index 6a48ab9..6bee71a 100644
Binary files a/win32/deps/library/grDevices/afm/Times-BoldItalic.afm.gz and 
b/win32/deps/library/grDevices/afm/Times-BoldItalic.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Times-Italic.afm.gz 
b/win32/deps/library/grDevices/afm/Times-Italic.afm.gz
index 8e235f9..2a60d16 100644
Binary files a/win32/deps/library/grDevices/afm/Times-Italic.afm.gz and 
b/win32/deps/library/grDevices/afm/Times-Italic.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Times-Roman.afm.gz 
b/win32/deps/library/grDevices/afm/Times-Roman.afm.gz
index c26d2c6..5e7c08e 100644
Binary files a/win32/deps/library/grDevices/afm/Times-Roman.afm.gz and 
b/win32/deps/library/grDevices/afm/Times-Roman.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/ZapfDingbats.afm.gz 
b/win32/deps/library/grDevices/afm/ZapfDingbats.afm.gz
index a816165..7cbe932 100644
Binary files a/win32/deps/library/grDevices/afm/ZapfDingbats.afm.gz and 
b/win32/deps/library/grDevices/afm/ZapfDingbats.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/a010013l.afm.gz 
b/win32/deps/library/grDevices/afm/a010013l.afm.gz
index 7831084..62f8a83 100644
Binary files a/win32/deps/library/grDevices/afm/a010013l.afm.gz and 
b/win32/deps/library/grDevices/afm/a010013l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/a010015l.afm.gz 
b/win32/deps/library/grDevices/afm/a010015l.afm.gz
index c05f961..f02976b 100644
Binary files a/win32/deps/library/grDevices/afm/a010015l.afm.gz and 
b/win32/deps/library/grDevices/afm/a010015l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/a010033l.afm.gz 
b/win32/deps/library/grDevices/afm/a010033l.afm.gz
index 6bcef68..1c5dc3c 100644
Binary files a/win32/deps/library/grDevices/afm/a010033l.afm.gz and 
b/win32/deps/library/grDevices/afm/a010033l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/a010035l.afm.gz 
b/win32/deps/library/grDevices/afm/a010035l.afm.gz
index bbecc00..973cdd0 100644
Binary files a/win32/deps/library/grDevices/afm/a010035l.afm.gz and 
b/win32/deps/library/grDevices/afm/a010035l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/agd_____.afm.gz 
b/win32/deps/library/grDevices/afm/agd_____.afm.gz
index 0007386..590c2a0 100644
Binary files a/win32/deps/library/grDevices/afm/agd_____.afm.gz and 
b/win32/deps/library/grDevices/afm/agd_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/agdo____.afm.gz 
b/win32/deps/library/grDevices/afm/agdo____.afm.gz
index 980f29c..6e3bbd3 100644
Binary files a/win32/deps/library/grDevices/afm/agdo____.afm.gz and 
b/win32/deps/library/grDevices/afm/agdo____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/agw_____.afm.gz 
b/win32/deps/library/grDevices/afm/agw_____.afm.gz
index f91b3b5..06e60e9 100644
Binary files a/win32/deps/library/grDevices/afm/agw_____.afm.gz and 
b/win32/deps/library/grDevices/afm/agw_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/agwo____.afm.gz 
b/win32/deps/library/grDevices/afm/agwo____.afm.gz
index d763bd5..f235c3b 100644
Binary files a/win32/deps/library/grDevices/afm/agwo____.afm.gz and 
b/win32/deps/library/grDevices/afm/agwo____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/b018012l.afm.gz 
b/win32/deps/library/grDevices/afm/b018012l.afm.gz
index 1881d1b..4377b5f 100644
Binary files a/win32/deps/library/grDevices/afm/b018012l.afm.gz and 
b/win32/deps/library/grDevices/afm/b018012l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/b018015l.afm.gz 
b/win32/deps/library/grDevices/afm/b018015l.afm.gz
index 4e1d8a7..46799ea 100644
Binary files a/win32/deps/library/grDevices/afm/b018015l.afm.gz and 
b/win32/deps/library/grDevices/afm/b018015l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/b018032l.afm.gz 
b/win32/deps/library/grDevices/afm/b018032l.afm.gz
index 90d5433..ac49965 100644
Binary files a/win32/deps/library/grDevices/afm/b018032l.afm.gz and 
b/win32/deps/library/grDevices/afm/b018032l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/b018035l.afm.gz 
b/win32/deps/library/grDevices/afm/b018035l.afm.gz
index b823526..27c0671 100644
Binary files a/win32/deps/library/grDevices/afm/b018035l.afm.gz and 
b/win32/deps/library/grDevices/afm/b018035l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/bkd_____.afm.gz 
b/win32/deps/library/grDevices/afm/bkd_____.afm.gz
index feaa926..76b92c6 100644
Binary files a/win32/deps/library/grDevices/afm/bkd_____.afm.gz and 
b/win32/deps/library/grDevices/afm/bkd_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/bkdi____.afm.gz 
b/win32/deps/library/grDevices/afm/bkdi____.afm.gz
index 8124426..baf2b93 100644
Binary files a/win32/deps/library/grDevices/afm/bkdi____.afm.gz and 
b/win32/deps/library/grDevices/afm/bkdi____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/bkl_____.afm.gz 
b/win32/deps/library/grDevices/afm/bkl_____.afm.gz
index 2f3cdb7..4120525 100644
Binary files a/win32/deps/library/grDevices/afm/bkl_____.afm.gz and 
b/win32/deps/library/grDevices/afm/bkl_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/bkli____.afm.gz 
b/win32/deps/library/grDevices/afm/bkli____.afm.gz
index 2420541..027093a 100644
Binary files a/win32/deps/library/grDevices/afm/bkli____.afm.gz and 
b/win32/deps/library/grDevices/afm/bkli____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/c059013l.afm.gz 
b/win32/deps/library/grDevices/afm/c059013l.afm.gz
index d78d8ef..f3a13b7 100644
Binary files a/win32/deps/library/grDevices/afm/c059013l.afm.gz and 
b/win32/deps/library/grDevices/afm/c059013l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/c059016l.afm.gz 
b/win32/deps/library/grDevices/afm/c059016l.afm.gz
index bdf90a7..332d6df 100644
Binary files a/win32/deps/library/grDevices/afm/c059016l.afm.gz and 
b/win32/deps/library/grDevices/afm/c059016l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/c059033l.afm.gz 
b/win32/deps/library/grDevices/afm/c059033l.afm.gz
index e7727cb..5cb9632 100644
Binary files a/win32/deps/library/grDevices/afm/c059033l.afm.gz and 
b/win32/deps/library/grDevices/afm/c059033l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/c059036l.afm.gz 
b/win32/deps/library/grDevices/afm/c059036l.afm.gz
index 253b27f..3fb62c1 100644
Binary files a/win32/deps/library/grDevices/afm/c059036l.afm.gz and 
b/win32/deps/library/grDevices/afm/c059036l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/cmbxti10.afm.gz 
b/win32/deps/library/grDevices/afm/cmbxti10.afm.gz
index 1b4243f..d14bb94 100644
Binary files a/win32/deps/library/grDevices/afm/cmbxti10.afm.gz and 
b/win32/deps/library/grDevices/afm/cmbxti10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/cmti10.afm.gz b/win32/deps/library/grDevices/afm/cmti10.afm.gz
index bfee45b..995edce 100644
Binary files a/win32/deps/library/grDevices/afm/cmti10.afm.gz and 
b/win32/deps/library/grDevices/afm/cmti10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/cob_____.afm.gz 
b/win32/deps/library/grDevices/afm/cob_____.afm.gz
index 42b2661..4eb055d 100644
Binary files a/win32/deps/library/grDevices/afm/cob_____.afm.gz and 
b/win32/deps/library/grDevices/afm/cob_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/cobo____.afm.gz 
b/win32/deps/library/grDevices/afm/cobo____.afm.gz
index 0c4ea40..4b93a28 100644
Binary files a/win32/deps/library/grDevices/afm/cobo____.afm.gz and 
b/win32/deps/library/grDevices/afm/cobo____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/com_____.afm.gz 
b/win32/deps/library/grDevices/afm/com_____.afm.gz
index e498048..656069b 100644
Binary files a/win32/deps/library/grDevices/afm/com_____.afm.gz and 
b/win32/deps/library/grDevices/afm/com_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/coo_____.afm.gz 
b/win32/deps/library/grDevices/afm/coo_____.afm.gz
index ccf43c6..618acf7 100644
Binary files a/win32/deps/library/grDevices/afm/coo_____.afm.gz and 
b/win32/deps/library/grDevices/afm/coo_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hv______.afm.gz 
b/win32/deps/library/grDevices/afm/hv______.afm.gz
index a6722e3..290e9cd 100644
Binary files a/win32/deps/library/grDevices/afm/hv______.afm.gz and 
b/win32/deps/library/grDevices/afm/hv______.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvb_____.afm.gz 
b/win32/deps/library/grDevices/afm/hvb_____.afm.gz
index 37d72be..f3f7cbe 100644
Binary files a/win32/deps/library/grDevices/afm/hvb_____.afm.gz and 
b/win32/deps/library/grDevices/afm/hvb_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvbo____.afm.gz 
b/win32/deps/library/grDevices/afm/hvbo____.afm.gz
index e6f911c..c63529c 100644
Binary files a/win32/deps/library/grDevices/afm/hvbo____.afm.gz and 
b/win32/deps/library/grDevices/afm/hvbo____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvn_____.afm.gz 
b/win32/deps/library/grDevices/afm/hvn_____.afm.gz
index 6678a75..c17f9b9 100644
Binary files a/win32/deps/library/grDevices/afm/hvn_____.afm.gz and 
b/win32/deps/library/grDevices/afm/hvn_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvnb____.afm.gz 
b/win32/deps/library/grDevices/afm/hvnb____.afm.gz
index eb0835e..a226e62 100644
Binary files a/win32/deps/library/grDevices/afm/hvnb____.afm.gz and 
b/win32/deps/library/grDevices/afm/hvnb____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvnbo___.afm.gz 
b/win32/deps/library/grDevices/afm/hvnbo___.afm.gz
index ea6fce9..0113ff9 100644
Binary files a/win32/deps/library/grDevices/afm/hvnbo___.afm.gz and 
b/win32/deps/library/grDevices/afm/hvnbo___.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvno____.afm.gz 
b/win32/deps/library/grDevices/afm/hvno____.afm.gz
index 9620e7e..0b4f89d 100644
Binary files a/win32/deps/library/grDevices/afm/hvno____.afm.gz and 
b/win32/deps/library/grDevices/afm/hvno____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvo_____.afm.gz 
b/win32/deps/library/grDevices/afm/hvo_____.afm.gz
index 7af2259..03c3ba4 100644
Binary files a/win32/deps/library/grDevices/afm/hvo_____.afm.gz and 
b/win32/deps/library/grDevices/afm/hvo_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019003l.afm.gz 
b/win32/deps/library/grDevices/afm/n019003l.afm.gz
index 0992cf5..547a066 100644
Binary files a/win32/deps/library/grDevices/afm/n019003l.afm.gz and 
b/win32/deps/library/grDevices/afm/n019003l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019004l.afm.gz 
b/win32/deps/library/grDevices/afm/n019004l.afm.gz
index 59b1180..090c3f7 100644
Binary files a/win32/deps/library/grDevices/afm/n019004l.afm.gz and 
b/win32/deps/library/grDevices/afm/n019004l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019023l.afm.gz 
b/win32/deps/library/grDevices/afm/n019023l.afm.gz
index 8217b8f..df4eb3c 100644
Binary files a/win32/deps/library/grDevices/afm/n019023l.afm.gz and 
b/win32/deps/library/grDevices/afm/n019023l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019024l.afm.gz 
b/win32/deps/library/grDevices/afm/n019024l.afm.gz
index bee8d41..7c181f4 100644
Binary files a/win32/deps/library/grDevices/afm/n019024l.afm.gz and 
b/win32/deps/library/grDevices/afm/n019024l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019043l.afm.gz 
b/win32/deps/library/grDevices/afm/n019043l.afm.gz
index 6910b42..8ae67ac 100644
Binary files a/win32/deps/library/grDevices/afm/n019043l.afm.gz and 
b/win32/deps/library/grDevices/afm/n019043l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019044l.afm.gz 
b/win32/deps/library/grDevices/afm/n019044l.afm.gz
index bee9079..bf7859f 100644
Binary files a/win32/deps/library/grDevices/afm/n019044l.afm.gz and 
b/win32/deps/library/grDevices/afm/n019044l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019063l.afm.gz 
b/win32/deps/library/grDevices/afm/n019063l.afm.gz
index 12dd710..12665ec 100644
Binary files a/win32/deps/library/grDevices/afm/n019063l.afm.gz and 
b/win32/deps/library/grDevices/afm/n019063l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019064l.afm.gz 
b/win32/deps/library/grDevices/afm/n019064l.afm.gz
index fc1bdfb..6a7839d 100644
Binary files a/win32/deps/library/grDevices/afm/n019064l.afm.gz and 
b/win32/deps/library/grDevices/afm/n019064l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n021003l.afm.gz 
b/win32/deps/library/grDevices/afm/n021003l.afm.gz
index 6e2da3e..b9c9ec8 100644
Binary files a/win32/deps/library/grDevices/afm/n021003l.afm.gz and 
b/win32/deps/library/grDevices/afm/n021003l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n021004l.afm.gz 
b/win32/deps/library/grDevices/afm/n021004l.afm.gz
index 9a2d93f..6cd444d 100644
Binary files a/win32/deps/library/grDevices/afm/n021004l.afm.gz and 
b/win32/deps/library/grDevices/afm/n021004l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n021023l.afm.gz 
b/win32/deps/library/grDevices/afm/n021023l.afm.gz
index a587388..cd40447 100644
Binary files a/win32/deps/library/grDevices/afm/n021023l.afm.gz and 
b/win32/deps/library/grDevices/afm/n021023l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n021024l.afm.gz 
b/win32/deps/library/grDevices/afm/n021024l.afm.gz
index aa1b553..fe70662 100644
Binary files a/win32/deps/library/grDevices/afm/n021024l.afm.gz and 
b/win32/deps/library/grDevices/afm/n021024l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n022003l.afm.gz 
b/win32/deps/library/grDevices/afm/n022003l.afm.gz
index e7c7370..d2696a6 100644
Binary files a/win32/deps/library/grDevices/afm/n022003l.afm.gz and 
b/win32/deps/library/grDevices/afm/n022003l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n022004l.afm.gz 
b/win32/deps/library/grDevices/afm/n022004l.afm.gz
index da8828d..3e49fd7 100644
Binary files a/win32/deps/library/grDevices/afm/n022004l.afm.gz and 
b/win32/deps/library/grDevices/afm/n022004l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n022023l.afm.gz 
b/win32/deps/library/grDevices/afm/n022023l.afm.gz
index 582afe1..9310f87 100644
Binary files a/win32/deps/library/grDevices/afm/n022023l.afm.gz and 
b/win32/deps/library/grDevices/afm/n022023l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n022024l.afm.gz 
b/win32/deps/library/grDevices/afm/n022024l.afm.gz
index 1ebecaa..8ee18ad 100644
Binary files a/win32/deps/library/grDevices/afm/n022024l.afm.gz and 
b/win32/deps/library/grDevices/afm/n022024l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/ncb_____.afm.gz 
b/win32/deps/library/grDevices/afm/ncb_____.afm.gz
index 18bf0f3..d1c9d67 100644
Binary files a/win32/deps/library/grDevices/afm/ncb_____.afm.gz and 
b/win32/deps/library/grDevices/afm/ncb_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/ncbi____.afm.gz 
b/win32/deps/library/grDevices/afm/ncbi____.afm.gz
index 13934c8..8273ba8 100644
Binary files a/win32/deps/library/grDevices/afm/ncbi____.afm.gz and 
b/win32/deps/library/grDevices/afm/ncbi____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/nci_____.afm.gz 
b/win32/deps/library/grDevices/afm/nci_____.afm.gz
index a80c067..261c57e 100644
Binary files a/win32/deps/library/grDevices/afm/nci_____.afm.gz and 
b/win32/deps/library/grDevices/afm/nci_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/ncr_____.afm.gz 
b/win32/deps/library/grDevices/afm/ncr_____.afm.gz
index b3a8377..7f079e6 100644
Binary files a/win32/deps/library/grDevices/afm/ncr_____.afm.gz and 
b/win32/deps/library/grDevices/afm/ncr_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/p052003l.afm.gz 
b/win32/deps/library/grDevices/afm/p052003l.afm.gz
index a50f130..3a77347 100644
Binary files a/win32/deps/library/grDevices/afm/p052003l.afm.gz and 
b/win32/deps/library/grDevices/afm/p052003l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/p052004l.afm.gz 
b/win32/deps/library/grDevices/afm/p052004l.afm.gz
index bcc5434..63a191f 100644
Binary files a/win32/deps/library/grDevices/afm/p052004l.afm.gz and 
b/win32/deps/library/grDevices/afm/p052004l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/p052023l.afm.gz 
b/win32/deps/library/grDevices/afm/p052023l.afm.gz
index 7860a00..203ef89 100644
Binary files a/win32/deps/library/grDevices/afm/p052023l.afm.gz and 
b/win32/deps/library/grDevices/afm/p052023l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/p052024l.afm.gz 
b/win32/deps/library/grDevices/afm/p052024l.afm.gz
index 097fdfb..8a70d7e 100644
Binary files a/win32/deps/library/grDevices/afm/p052024l.afm.gz and 
b/win32/deps/library/grDevices/afm/p052024l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/pob_____.afm.gz 
b/win32/deps/library/grDevices/afm/pob_____.afm.gz
index c2c6959..35f1d5e 100644
Binary files a/win32/deps/library/grDevices/afm/pob_____.afm.gz and 
b/win32/deps/library/grDevices/afm/pob_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/pobi____.afm.gz 
b/win32/deps/library/grDevices/afm/pobi____.afm.gz
index 237c01e..f4c2e9b 100644
Binary files a/win32/deps/library/grDevices/afm/pobi____.afm.gz and 
b/win32/deps/library/grDevices/afm/pobi____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/poi_____.afm.gz 
b/win32/deps/library/grDevices/afm/poi_____.afm.gz
index 70c69e9..233016c 100644
Binary files a/win32/deps/library/grDevices/afm/poi_____.afm.gz and 
b/win32/deps/library/grDevices/afm/poi_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/por_____.afm.gz 
b/win32/deps/library/grDevices/afm/por_____.afm.gz
index afe482e..a76cbc5 100644
Binary files a/win32/deps/library/grDevices/afm/por_____.afm.gz and 
b/win32/deps/library/grDevices/afm/por_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/s050000l.afm.gz 
b/win32/deps/library/grDevices/afm/s050000l.afm.gz
index 3c0684d..b5bc07b 100644
Binary files a/win32/deps/library/grDevices/afm/s050000l.afm.gz and 
b/win32/deps/library/grDevices/afm/s050000l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/sy______.afm.gz 
b/win32/deps/library/grDevices/afm/sy______.afm.gz
index 96e542c..a3dc701 100644
Binary files a/win32/deps/library/grDevices/afm/sy______.afm.gz and 
b/win32/deps/library/grDevices/afm/sy______.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/tib_____.afm.gz 
b/win32/deps/library/grDevices/afm/tib_____.afm.gz
index e27c868..fbb94c1 100644
Binary files a/win32/deps/library/grDevices/afm/tib_____.afm.gz and 
b/win32/deps/library/grDevices/afm/tib_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/tibi____.afm.gz 
b/win32/deps/library/grDevices/afm/tibi____.afm.gz
index 2d22623..13025e0 100644
Binary files a/win32/deps/library/grDevices/afm/tibi____.afm.gz and 
b/win32/deps/library/grDevices/afm/tibi____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/tii_____.afm.gz 
b/win32/deps/library/grDevices/afm/tii_____.afm.gz
index 0cb428a..6b161cf 100644
Binary files a/win32/deps/library/grDevices/afm/tii_____.afm.gz and 
b/win32/deps/library/grDevices/afm/tii_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/tir_____.afm.gz 
b/win32/deps/library/grDevices/afm/tir_____.afm.gz
index b6b271a..c73741c 100644
Binary files a/win32/deps/library/grDevices/afm/tir_____.afm.gz and 
b/win32/deps/library/grDevices/afm/tir_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/help/aliases.rds b/win32/deps/library/grDevices/help/aliases.rds
index c680af4..a78f019 100644
Binary files a/win32/deps/library/grDevices/help/aliases.rds and 
b/win32/deps/library/grDevices/help/aliases.rds differ
diff --git a/win32/deps/library/grDevices/help/grDevices.rdb b/win32/deps/library/grDevices/help/grDevices.rdb
index aa8d8e6..144494b 100644
Binary files a/win32/deps/library/grDevices/help/grDevices.rdb and 
b/win32/deps/library/grDevices/help/grDevices.rdb differ
diff --git a/win32/deps/library/grDevices/help/grDevices.rdx b/win32/deps/library/grDevices/help/grDevices.rdx
index d5374ae..583d228 100644
Binary files a/win32/deps/library/grDevices/help/grDevices.rdx and 
b/win32/deps/library/grDevices/help/grDevices.rdx differ
diff --git a/win32/deps/library/grDevices/help/paths.rds b/win32/deps/library/grDevices/help/paths.rds
index c5697c5..3ee5926 100644
Binary files a/win32/deps/library/grDevices/help/paths.rds and b/win32/deps/library/grDevices/help/paths.rds 
differ
diff --git a/win32/deps/library/grDevices/html/00Index.html b/win32/deps/library/grDevices/html/00Index.html
index 9e810cc..762ff06 100644
--- a/win32/deps/library/grDevices/html/00Index.html
+++ b/win32/deps/library/grDevices/html/00Index.html
@@ -10,9 +10,10 @@
 <div align="center">
 <a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30" 
height="30" border="0"></a>
 <a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30" 
height="30" border="0"></a>
-</div><h2>Documentation for package &lsquo;grDevices&rsquo; version 2.15.2</h2>
+</div><h2>Documentation for package &lsquo;grDevices&rsquo; version 3.0.2</h2>
 
 <ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
 </ul>
 
 <h2>Help Pages</h2>
diff --git a/win32/deps/library/grDevices/libs/i386/Rbitmap.dll 
b/win32/deps/library/grDevices/libs/i386/Rbitmap.dll
index 81fe79f..af7d7f3 100644
Binary files a/win32/deps/library/grDevices/libs/i386/Rbitmap.dll and 
b/win32/deps/library/grDevices/libs/i386/Rbitmap.dll differ
diff --git a/win32/deps/library/grDevices/libs/i386/grDevices.dll 
b/win32/deps/library/grDevices/libs/i386/grDevices.dll
index 1613427..5283c69 100644
Binary files a/win32/deps/library/grDevices/libs/i386/grDevices.dll and 
b/win32/deps/library/grDevices/libs/i386/grDevices.dll differ
diff --git a/win32/deps/library/grDevices/libs/i386/winCairo.dll 
b/win32/deps/library/grDevices/libs/i386/winCairo.dll
index 6cc542c..bb34fae 100644
Binary files a/win32/deps/library/grDevices/libs/i386/winCairo.dll and 
b/win32/deps/library/grDevices/libs/i386/winCairo.dll differ
diff --git a/win32/deps/library/grDevices/tests/ps-tests.Rout.save 
b/win32/deps/library/grDevices/tests/ps-tests.Rout.save
index 105f699..17aa5d1 100644
--- a/win32/deps/library/grDevices/tests/ps-tests.Rout.save
+++ b/win32/deps/library/grDevices/tests/ps-tests.Rout.save
@@ -1,7 +1,7 @@
 
-R : Copyright 2005, The R Foundation for Statistical Computing
-Version 2.3.0 Under development (unstable) (2005-11-06 r36200)
-ISBN 3-900051-07-0
+R version 3.0.2 RC (2013-09-22 r63960) -- "Frisbee Sailing"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: x86_64-unknown-linux-gnu (64-bit)
 
 R is free software and comes with ABSOLUTELY NO WARRANTY.
 You are welcome to redistribute it under certain conditions.
@@ -12,7 +12,7 @@ Type 'contributors()' for more information and
 'citation()' on how to cite R or R packages in publications.
 
 Type 'demo()' for some demos, 'help()' for on-line help, or
-'help.start()' for a HTML browser interface to help.
+'help.start()' for an HTML browser interface to help.
 Type 'q()' to quit R.
 
## tests of the fonts in the postscript() device.
@@ -93,3 +93,6 @@ null device

unlink("ps-tests.ps")

+> proc.time()
+   user  system elapsed 
+  0.709   0.019   0.726 
diff --git a/win32/deps/library/grDevices/tests/xfig-tests.Rout.save 
b/win32/deps/library/grDevices/tests/xfig-tests.Rout.save
index 91af2f6..6a5525f 100644
--- a/win32/deps/library/grDevices/tests/xfig-tests.Rout.save
+++ b/win32/deps/library/grDevices/tests/xfig-tests.Rout.save
@@ -1,7 +1,7 @@
 
-R version 2.9.0 Under development (unstable) (2009-01-21 r47661)
-Copyright (C) 2009 The R Foundation for Statistical Computing
-ISBN 3-900051-07-0
+R version 3.0.2 RC (2013-09-22 r63960) -- "Frisbee Sailing"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: x86_64-unknown-linux-gnu (64-bit)
 
 R is free software and comes with ABSOLUTELY NO WARRANTY.
 You are welcome to redistribute it under certain conditions.
@@ -100,3 +100,6 @@ Type 'q()' to quit R.
unlink("xfig-tests.fig")


+> proc.time()
+   user  system elapsed 
+  0.295   0.025   0.316 
diff --git a/win32/deps/library/graphics/DESCRIPTION b/win32/deps/library/graphics/DESCRIPTION
index 19c169a..66dbaaf 100644
--- a/win32/deps/library/graphics/DESCRIPTION
+++ b/win32/deps/library/graphics/DESCRIPTION
@@ -1,10 +1,10 @@
 Package: graphics
-Version: 2.15.2
+Version: 3.0.2
 Priority: base
 Title: The R Graphics Package
 Author: R Core Team and contributors worldwide
 Maintainer: R Core Team <R-core r-project org>
 Description: R functions for base graphics
 Imports: grDevices
-License: Part of R 2.15.2
-Built: R 2.15.2; ; 2012-10-27 03:05:59 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:39:29 UTC; windows
diff --git a/win32/deps/library/graphics/Meta/Rd.rds b/win32/deps/library/graphics/Meta/Rd.rds
index 564f9cc..af83034 100644
Binary files a/win32/deps/library/graphics/Meta/Rd.rds and b/win32/deps/library/graphics/Meta/Rd.rds differ
diff --git a/win32/deps/library/graphics/Meta/demo.rds b/win32/deps/library/graphics/Meta/demo.rds
index 16c136b..0f5f5aa 100644
Binary files a/win32/deps/library/graphics/Meta/demo.rds and b/win32/deps/library/graphics/Meta/demo.rds 
differ
diff --git a/win32/deps/library/graphics/Meta/hsearch.rds b/win32/deps/library/graphics/Meta/hsearch.rds
index 0034a0e..7dbab65 100644
Binary files a/win32/deps/library/graphics/Meta/hsearch.rds and 
b/win32/deps/library/graphics/Meta/hsearch.rds differ
diff --git a/win32/deps/library/graphics/Meta/links.rds b/win32/deps/library/graphics/Meta/links.rds
index dc8a3a6..194aa17 100644
Binary files a/win32/deps/library/graphics/Meta/links.rds and b/win32/deps/library/graphics/Meta/links.rds 
differ
diff --git a/win32/deps/library/graphics/Meta/nsInfo.rds b/win32/deps/library/graphics/Meta/nsInfo.rds
index 20fa967..3e18850 100644
Binary files a/win32/deps/library/graphics/Meta/nsInfo.rds and b/win32/deps/library/graphics/Meta/nsInfo.rds 
differ
diff --git a/win32/deps/library/graphics/Meta/package.rds b/win32/deps/library/graphics/Meta/package.rds
index d3f7bc6..d2c2df2 100644
Binary files a/win32/deps/library/graphics/Meta/package.rds and 
b/win32/deps/library/graphics/Meta/package.rds differ
diff --git a/win32/deps/library/graphics/NAMESPACE b/win32/deps/library/graphics/NAMESPACE
index e5b30f1..a6af66c 100644
--- a/win32/deps/library/graphics/NAMESPACE
+++ b/win32/deps/library/graphics/NAMESPACE
@@ -1,27 +1,33 @@
+useDynLib(graphics, 
+          C_contour, C_contourDef, C_filledcontour, C_image,
+          C_persp, C_abline, C_arrows, C_axis, C_box, C_clip,
+          C_convertX, C_convertY, C_dend, C_dendwindow, C_erase,
+          C_layout, C_mtext, C_par, C_path, C_plotXY, C_plot_window,
+          C_polygon, C_raster, C_rect, C_segments, C_strHeight,
+          C_strWidth, C_symbols, C_text, C_title, C_xspline,
+          C_plot_new, C_locator, C_identify, C_StemLeaf, C_BinCount,
+          RunregisterBase)
+
 import(grDevices)
 
 export(abline, arrows, assocplot, axTicks, Axis, axis, axis.Date,
-       axis.POSIXct, barplot, barplot, box, boxplot, bxp, cdplot,
-       clip, close.screen, co.intervals, contour, coplot, curve,
-       dotchart, erase.screen, filled.contour, fourfoldplot, frame,
-       grconvertX, grconvertY, grid, hist, hist.default, identify,
-       image, layout, layout.show, lcm, legend, lines, lines.default,
-       locator, matlines, matplot, matpoints, mosaicplot, mtext,
-       pairs, panel.smooth, par, persp, pie, plot, plot.design,
-       plot.function, plot.new, plot.window, plot.xy, points, polygon,
-       polypath, rasterImage, rect, rug, screen, segments,
-       smoothScatter, spineplot, split.screen, stars, stem, strheight,
-       stripchart, strwidth, sunflowerplot, symbols, text, title,
-       xinch, xspline, xyinch, yinch, .filled.contour)
+       axis.POSIXct, barplot, box, boxplot, bxp, cdplot, clip,
+       close.screen, co.intervals, contour, coplot, curve, dotchart,
+       erase.screen, filled.contour, fourfoldplot, frame, grconvertX,
+       grconvertY, grid, hist, identify, image, layout, layout.show,
+       lcm, legend, lines, locator, matlines, matplot, matpoints,
+       mosaicplot, mtext, pairs, panel.smooth, par, persp, pie, plot,
+       plot.design, plot.function, plot.new, plot.window, plot.xy,
+       points, polygon, polypath, rasterImage, rect, rug, screen,
+       segments, smoothScatter, spineplot, split.screen, stars, stem,
+       strheight, stripchart, strwidth, sunflowerplot, symbols, text,
+       title, xinch, xspline, xyinch, yinch, .filled.contour)
 
 # leave most of the default methods visible as people seem to call them.
 export(barplot.default, boxplot.default, boxplot.matrix,
-       contour.default, image.default,
+       contour.default, hist.default, image.default, lines.default,
        pairs.default, plot.default, points.default, text.default)
 
-#defunct
-export(piechart)
-
 S3method(Axis, default)
 S3method(Axis, Date)
 S3method(Axis, POSIXt)
diff --git a/win32/deps/library/graphics/R/graphics b/win32/deps/library/graphics/R/graphics
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/graphics/R/graphics
+++ b/win32/deps/library/graphics/R/graphics
@@ -1,9 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 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 General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
 local({
     info <- loadingNamespaceInfo()
-    ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
     if (is.null(ns))
-        stop("cannot find namespace environment");
-    barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
-    dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
     lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
 })
diff --git a/win32/deps/library/graphics/R/graphics.rdb b/win32/deps/library/graphics/R/graphics.rdb
index 9c68f1c..c1abe30 100644
Binary files a/win32/deps/library/graphics/R/graphics.rdb and b/win32/deps/library/graphics/R/graphics.rdb 
differ
diff --git a/win32/deps/library/graphics/R/graphics.rdx b/win32/deps/library/graphics/R/graphics.rdx
index f1d415c..365c9c3 100644
Binary files a/win32/deps/library/graphics/R/graphics.rdx and b/win32/deps/library/graphics/R/graphics.rdx 
differ
diff --git a/win32/deps/library/graphics/demo/plotmath.R b/win32/deps/library/graphics/demo/plotmath.R
index b1be384..1c6a7d7 100644
--- a/win32/deps/library/graphics/demo/plotmath.R
+++ b/win32/deps/library/graphics/demo/plotmath.R
@@ -63,13 +63,11 @@ draw.plotmath.cell(expression(x^2), i, nr); i <- i + 1
 draw.title.cell("Juxtaposition", i, nr); i <- i + 1
 draw.plotmath.cell(expression(x * y), i, nr); i <- i + 1
 draw.plotmath.cell(expression(paste(x, y, z)), i, nr); i <- i + 1
-draw.title.cell("Lists", i, nr); i <- i + 1
-draw.plotmath.cell(expression(list(x, y, z)), i, nr); i <- i + 1
-# even columns up
-i <- 20
 draw.title.cell("Radicals", i, nr); i <- i + 1
 draw.plotmath.cell(expression(sqrt(x)), i, nr); i <- i + 1
 draw.plotmath.cell(expression(sqrt(x, y)), i, nr); i <- i + 1
+draw.title.cell("Lists", i, nr); i <- i + 1
+draw.plotmath.cell(expression(list(x, y, z)), i, nr); i <- i + 1
 draw.title.cell("Relations", i, nr); i <- i + 1
 draw.plotmath.cell(expression(x == y), i, nr); i <- i + 1
 draw.plotmath.cell(expression(x != y), i, nr); i <- i + 1
@@ -81,6 +79,7 @@ draw.plotmath.cell(expression(x %~~% y), i, nr); i <- i + 1
 draw.plotmath.cell(expression(x %=~% y), i, nr); i <- i + 1
 draw.plotmath.cell(expression(x %==% y), i, nr); i <- i + 1
 draw.plotmath.cell(expression(x %prop% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %~% y), i, nr); i <- i + 1
 draw.title.cell("Typeface", i, nr); i <- i + 1
 draw.plotmath.cell(expression(plain(x)), i, nr); i <- i + 1
 draw.plotmath.cell(expression(italic(x)), i, nr); i <- i + 1
diff --git a/win32/deps/library/graphics/help/aliases.rds b/win32/deps/library/graphics/help/aliases.rds
index 53baa5f..8c64846 100644
Binary files a/win32/deps/library/graphics/help/aliases.rds and 
b/win32/deps/library/graphics/help/aliases.rds differ
diff --git a/win32/deps/library/graphics/help/graphics.rdb b/win32/deps/library/graphics/help/graphics.rdb
index aeaf612..2387ec2 100644
Binary files a/win32/deps/library/graphics/help/graphics.rdb and 
b/win32/deps/library/graphics/help/graphics.rdb differ
diff --git a/win32/deps/library/graphics/help/graphics.rdx b/win32/deps/library/graphics/help/graphics.rdx
index 5bb0b38..005a4b0 100644
Binary files a/win32/deps/library/graphics/help/graphics.rdx and 
b/win32/deps/library/graphics/help/graphics.rdx differ
diff --git a/win32/deps/library/graphics/help/paths.rds b/win32/deps/library/graphics/help/paths.rds
index f6a3d19..2936cc8 100644
Binary files a/win32/deps/library/graphics/help/paths.rds and b/win32/deps/library/graphics/help/paths.rds 
differ
diff --git a/win32/deps/library/graphics/html/00Index.html b/win32/deps/library/graphics/html/00Index.html
index a261178..b14ae4b 100644
--- a/win32/deps/library/graphics/html/00Index.html
+++ b/win32/deps/library/graphics/html/00Index.html
@@ -10,7 +10,7 @@
 <div align="center">
 <a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30" 
height="30" border="0"></a>
 <a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30" 
height="30" border="0"></a>
-</div><h2>Documentation for package &lsquo;graphics&rsquo; version 2.15.2</h2>
+</div><h2>Documentation for package &lsquo;graphics&rsquo; version 3.0.2</h2>
 
 <ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
 <li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
diff --git a/win32/deps/library/methods/DESCRIPTION b/win32/deps/library/methods/DESCRIPTION
index ce1f5a5..8a124a4 100644
--- a/win32/deps/library/methods/DESCRIPTION
+++ b/win32/deps/library/methods/DESCRIPTION
@@ -1,5 +1,5 @@
 Package: methods
-Version: 2.15.2
+Version: 3.0.2
 Priority: base
 Imports: utils
 Title: Formal Methods and Classes
@@ -9,5 +9,5 @@ Description: Formally defined methods and classes for R objects,
   plus other programming tools, as described in the reference
 References: John M. Chambers (2008) ``Software for Data Analysis:
         Programming with R''; Springer NY.
-License: Part of R 2.15.2
-Built: R 2.15.2; x86_64-w64-mingw32; 2012-10-27 03:07:06 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:40:41 UTC; windows
diff --git a/win32/deps/library/methods/INDEX b/win32/deps/library/methods/INDEX
index 8556951..d59a612 100644
--- a/win32/deps/library/methods/INDEX
+++ b/win32/deps/library/methods/INDEX
@@ -5,6 +5,7 @@ Documentation           Using and Creating On-line Documentation for
 GenericFunctions        Tools for Managing Generic Functions
 LinearMethodsList-class
                         Class "LinearMethodsList"
+LocalReferenceClasses   Localized Objects based on Reference Classes
 MethodDefinition-class
                         Classes to Represent Method Definitions
 MethodWithNext-class    Class MethodWithNext
diff --git a/win32/deps/library/methods/Meta/Rd.rds b/win32/deps/library/methods/Meta/Rd.rds
index e0dac62..176ad19 100644
Binary files a/win32/deps/library/methods/Meta/Rd.rds and b/win32/deps/library/methods/Meta/Rd.rds differ
diff --git a/win32/deps/library/methods/Meta/hsearch.rds b/win32/deps/library/methods/Meta/hsearch.rds
index a73e2be..63e25f9 100644
Binary files a/win32/deps/library/methods/Meta/hsearch.rds and b/win32/deps/library/methods/Meta/hsearch.rds 
differ
diff --git a/win32/deps/library/methods/Meta/links.rds b/win32/deps/library/methods/Meta/links.rds
index d007e45..66e260a 100644
Binary files a/win32/deps/library/methods/Meta/links.rds and b/win32/deps/library/methods/Meta/links.rds 
differ
diff --git a/win32/deps/library/methods/Meta/nsInfo.rds b/win32/deps/library/methods/Meta/nsInfo.rds
index 0ad24e0..e82d586 100644
Binary files a/win32/deps/library/methods/Meta/nsInfo.rds and b/win32/deps/library/methods/Meta/nsInfo.rds 
differ
diff --git a/win32/deps/library/methods/Meta/package.rds b/win32/deps/library/methods/Meta/package.rds
index c603a99..29e11c8 100644
Binary files a/win32/deps/library/methods/Meta/package.rds and b/win32/deps/library/methods/Meta/package.rds 
differ
diff --git a/win32/deps/library/methods/NAMESPACE b/win32/deps/library/methods/NAMESPACE
index b37fb65..4a429ec 100644
--- a/win32/deps/library/methods/NAMESPACE
+++ b/win32/deps/library/methods/NAMESPACE
@@ -1,4 +1,4 @@
-useDynLib(methods) #>> fails for now : .registration = TRUE
+useDynLib(methods, .registration = TRUE, .fixes = "C_")
 
 importFrom(utils, find)
 
@@ -7,12 +7,11 @@ exportPattern("^\\.__C__")
 exportPattern("^\\.__M__")
 exportPattern("^\\.__T__")
 
-export(.Last.lib)
 export(.TraceWithMethods)
 export(.untracedFunction)
 export(.doTracePrint)
 export(.valueClassTest)
-export("@<-")
+## export("@<-")
 export(Arith)
 export(Compare)
 export(Complex)
@@ -45,6 +44,7 @@ export(cacheMethod)
 export(callGeneric)
 export(callNextMethod)
 export(canCoerce)
+export(checkAtAssignment)
 export(checkSlotAssignment)
 export(classMetaName)
 export(classLabel)
@@ -174,7 +174,6 @@ export(resetGeneric)
 export(sealClass)
 export(selectMethod)
 export(seemsS4Object)
-export(sessionData)
 export(setAs)
 export(setClass)
 export(setClassUnion)
@@ -209,7 +208,6 @@ export(testVirtual)
 export(traceOff)
 export(traceOn)
 export(tryNew)
-export(trySilent)
 export(unRematchDefinition)
 export(validObject)
 export(validSlotNames)
@@ -218,7 +216,7 @@ export(validSlotNames)
 export(.ShortPrimitiveSkeletons)
 export(.EmptyPrimitiveSkeletons)
 
-## to allow "S4-cbind/rbind (./R/cbind-rbind.R)
+## to allow "S4"-cbind/rbind (./R/cbind-rbind.R)
 export(cbind2)
 export(rbind2)
 export(kronecker)
diff --git a/win32/deps/library/methods/R/methods b/win32/deps/library/methods/R/methods
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/methods/R/methods
+++ b/win32/deps/library/methods/R/methods
@@ -1,9 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 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 General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
 local({
     info <- loadingNamespaceInfo()
-    ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
     if (is.null(ns))
-        stop("cannot find namespace environment");
-    barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
-    dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
     lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
 })
diff --git a/win32/deps/library/methods/R/methods.rdb b/win32/deps/library/methods/R/methods.rdb
index fa6da41..09eb01e 100644
Binary files a/win32/deps/library/methods/R/methods.rdb and b/win32/deps/library/methods/R/methods.rdb differ
diff --git a/win32/deps/library/methods/R/methods.rdx b/win32/deps/library/methods/R/methods.rdx
index 0c5e3c3..432ee83 100644
Binary files a/win32/deps/library/methods/R/methods.rdx and b/win32/deps/library/methods/R/methods.rdx differ
diff --git a/win32/deps/library/methods/help/AnIndex b/win32/deps/library/methods/help/AnIndex
index 2c87306..907c1b1 100644
--- a/win32/deps/library/methods/help/AnIndex
+++ b/win32/deps/library/methods/help/AnIndex
@@ -1,6 +1,7 @@
 methods-package        methods-package
 $,envRefClass-method   stdRefClass
 $<-,envRefClass-method stdRefClass
+$<-,localRefClass-method       localRefClass
 (-class        LanguageClasses
 .BasicClasses  RClassUtils
 .BasicFunsList zBasicFunsList
@@ -28,7 +29,6 @@ $<-,envRefClass-method        stdRefClass
 .untracedFunction      TraceClasses
 .valueClassTest        RMethodUtils
 <--class       LanguageClasses
-@<-    slot
 activeBindingFunction-class    refClass
 addNextMethod  RMethodUtils
 addNextMethod,MethodDefinition-method  RMethodUtils
@@ -49,7 +49,6 @@ assignClassDef        RClassUtils
 assignMethodsMetaData  RMethodUtils
 balanceMethodsList     RMethodUtils
 body<-,MethodDefinition-method MethodsList-class
-browseAll      Session
 builtin-class  BasicClasses
 cacheGenericsMetaData  RMethodUtils
 cacheMetaData  RMethodUtils
@@ -63,6 +62,7 @@ cbind2,ANY,ANY-method cbind2
 cbind2,ANY,missing-method      cbind2
 cbind2-methods cbind2
 character-class        BasicClasses
+checkAtAssignment      RClassUtils
 checkSlotAssignment    RClassUtils
 Classes        Classes
 classesToAM    classesToAM
@@ -257,6 +257,8 @@ loadMethod,ANY-method       MethodsList
 loadMethod,MethodDefinition-method     MethodsList
 loadMethod,MethodWithNext-method       MethodsList
 loadMethod-methods     MethodsList
+localRefClass-class    localRefClass
+LocalReferenceClasses  localRefClass
 Logic  S4groupGeneric
 logical-class  BasicClasses
 logLik-class   setOldClass
@@ -353,6 +355,7 @@ recordedplot-class  setOldClass
 refClass-class refClass
 refClassRepresentation-class   refClass
 ReferenceClasses       refClass
+refGeneratorSlot-class refClass
 refMethodDef-class     refClass
 refMethodDefWithTrace-class    refClass
 refObject-class        refClass
@@ -385,7 +388,6 @@ SealedMethodDefinition-class        MethodDefinition-class
 seemsS4Object  methods-defunct
 selectMethod   getMethod
 selectSuperClasses     selectSuperClasses
-sessionData    Session
 setAs  as
 setClass       setClass
 setClassUnion  setClassUnion
@@ -455,8 +457,8 @@ table-class setOldClass
 testInheritedMethods   testInheritedMethods
 testVirtual    RClassUtils
 traceable-class        TraceClasses
-traceOff       Session
-traceOn        Session
+traceOff       methods-defunct
+traceOn        methods-defunct
 tryNew RClassUtils
 trySilent      methods-defunct
 ts-class       StructureClasses
diff --git a/win32/deps/library/methods/help/aliases.rds b/win32/deps/library/methods/help/aliases.rds
index 4bb6f09..7d07a5f 100644
Binary files a/win32/deps/library/methods/help/aliases.rds and b/win32/deps/library/methods/help/aliases.rds 
differ
diff --git a/win32/deps/library/methods/help/methods.rdb b/win32/deps/library/methods/help/methods.rdb
index 27a4a10..3d09c5c 100644
Binary files a/win32/deps/library/methods/help/methods.rdb and b/win32/deps/library/methods/help/methods.rdb 
differ
diff --git a/win32/deps/library/methods/help/methods.rdx b/win32/deps/library/methods/help/methods.rdx
index fa5c5a6..c7afb6d 100644
Binary files a/win32/deps/library/methods/help/methods.rdx and b/win32/deps/library/methods/help/methods.rdx 
differ
diff --git a/win32/deps/library/methods/help/paths.rds b/win32/deps/library/methods/help/paths.rds
index 8077a14..13fdead 100644
Binary files a/win32/deps/library/methods/help/paths.rds and b/win32/deps/library/methods/help/paths.rds 
differ
diff --git a/win32/deps/library/methods/html/00Index.html b/win32/deps/library/methods/html/00Index.html
index 82bf5d7..ec0241c 100644
--- a/win32/deps/library/methods/html/00Index.html
+++ b/win32/deps/library/methods/html/00Index.html
@@ -10,7 +10,7 @@
 <div align="center">
 <a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30" 
height="30" border="0"></a>
 <a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30" 
height="30" border="0"></a>
-</div><h2>Documentation for package &lsquo;methods&rsquo; version 2.15.2</h2>
+</div><h2>Documentation for package &lsquo;methods&rsquo; version 3.0.2</h2>
 
 <ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
 </ul>
@@ -340,6 +340,10 @@
 <td>Description of the Methods Defined for a Generic Function</td></tr>
 <tr><td width="25%"><a href="setOldClass.html">lm-class</a></td>
 <td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td width="25%"><a href="localRefClass.html">localRefClass-class</a></td>
+<td>Localized Objects based on Reference Classes</td></tr>
+<tr><td width="25%"><a href="localRefClass.html">LocalReferenceClasses</a></td>
+<td>Localized Objects based on Reference Classes</td></tr>
 <tr><td width="25%"><a href="S4groupGeneric.html">Logic</a></td>
 <td>S4 Group Generic Functions</td></tr>
 <tr><td width="25%"><a href="BasicClasses.html">logical-class</a></td>
@@ -477,6 +481,8 @@
 <td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
 <tr><td width="25%"><a href="refClass.html">ReferenceClasses</a></td>
 <td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td width="25%"><a href="refClass.html">refGeneratorSlot-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
 <tr><td width="25%"><a href="refClass.html">refMethodDef-class</a></td>
 <td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
 <tr><td width="25%"><a href="refClass.html">refMethodDefWithTrace-class</a></td>
@@ -657,6 +663,8 @@
 <table width="100%">
 <tr><td width="25%"><a href="stdRefClass.html">$-method</a></td>
 <td>Class '"envRefClass"'</td></tr>
+<tr><td width="25%"><a href="localRefClass.html">$&lt;--method</a></td>
+<td>Localized Objects based on Reference Classes</td></tr>
 <tr><td width="25%"><a href="stdRefClass.html">$&lt;--method</a></td>
 <td>Class '"envRefClass"'</td></tr>
 <tr><td width="25%"><a href="LanguageClasses.html">(-class</a></td>
@@ -693,8 +701,6 @@
 <td>Classes Used Internally to Control Tracing</td></tr>
 <tr><td width="25%"><a href="LanguageClasses.html">&lt;--class</a></td>
 <td>Classes to Represent Unevaluated Language Objects</td></tr>
-<tr><td width="25%"><a href="slot.html">@&lt;-</a></td>
-<td>The Slots in an Object from a Formal Class</td></tr>
 <tr><td width="25%"><a href="Classes.html">__ClassMetaData</a></td>
 <td>Class Definitions</td></tr>
 <tr><td width="25%"><a href="LanguageClasses.html">{-class</a></td>
diff --git a/win32/deps/library/methods/libs/i386/methods.dll 
b/win32/deps/library/methods/libs/i386/methods.dll
index 2bb29f0..ae7fc6e 100644
Binary files a/win32/deps/library/methods/libs/i386/methods.dll and 
b/win32/deps/library/methods/libs/i386/methods.dll differ
diff --git a/win32/deps/library/methods/tests/basicRefClass.R 
b/win32/deps/library/methods/tests/basicRefClass.R
index 4460efe..91255dd 100644
--- a/win32/deps/library/methods/tests/basicRefClass.R
+++ b/win32/deps/library/methods/tests/basicRefClass.R
@@ -1,10 +1,10 @@
 ## simple call, only field names
 fg <- setRefClass("foo", c("bar", "flag"))
-f1 <- new("foo")
-f1$bar
-f1 <- fg$new(flag = "testing")
+f0 <- new("foo")  # deprecated, but should still work
+f1 <- fg(flag = "testing")
 f1$bar <- 1
 stopifnot(identical(f1$bar, 1))
+## add method
 fg$methods(showAll = function() c(bar, flag))
 stopifnot(all.equal(f1$showAll(), c(1, "testing")))
 str(f1)
@@ -32,7 +32,7 @@ stopifnot(is(tryCatch(ff$flag <- "new", error = function(e)e), "error"))
 
 ## test against generator
 
-f2 <- fg$new(bar = pi, flag = "flag test")
+f2 <- fg(bar = pi, flag = "flag test")
 ## identical does not return TRUE if *contents* of env are identical
 stopifnot(identical(ff$bar, f2$bar), identical(ff$flag, f2$flag))
 ## but flag was now assigned once
@@ -84,19 +84,19 @@ foo2 <- setRefClass("foo2", list(b2 = "numeric", flag = "ratedChar",
                 }))
 ## now lock the flag field; should still allow one write
 foo2$lock("flag")
-f2 <- foo2$new(bar = -3, flag = as("ANY", "ratedChar"),
+f2 <- foo2(bar = -3, flag = as("ANY", "ratedChar"),
                b2 = ff$bar, tag = 1.5)
 ## but not a second one
 stopifnot(is(tryCatch(f2$flag <- "Try again",
          error = function(e)e), "error"))
 str(f2)
-f22 <- foo2$new(bar = f2$bar)
+f22 <- foo2(bar = f2$bar)
 ## same story if assignment follows the initialization
 f22$flag <- f2$flag
 stopifnot(is(tryCatch(f22$flag <- "Try again",
          error = function(e)e), "error"))
 ## Exporting superclass object
-f22 <- fg$new(bar = f2$bar, flag = f2$flag)
+f22 <- fg(bar = f2$bar, flag = f2$flag)
 f2e <- f2$export("foo")
 stopifnot(identical(f2e$bar, f22$bar), identical(f2e$flag, f22$flag),
           identical(class(f2e), class(f22)))
@@ -117,8 +117,8 @@ foo3 <- setRefClass("foo3", fields = list(flag2 = "ratedChar"),
                 incr
             }))
 
-f2 <- foo2$new(bar = -3, flag = as("ANY", "ratedChar"), b2 =  1:3)
-f3 <- foo3$new()
+f2 <- foo2(bar = -3, flag = as("ANY", "ratedChar"), b2 =  1:3)
+f3 <- foo3()
 f3$import(f2)
 stopifnot(all.equal(f3$b2, f2$b2), all.equal(f3$bar, f2$bar),
           all.equal(f3$flag, f2$flag))
@@ -132,24 +132,29 @@ stopifnot(is(tryCatch(f3$flag <- "Try again",
 str(f3)
 
 ## importing the same class (not very useful but documented to work)
-f3 <- foo3$new()
-f4 <- foo3$new(bar = -3, flag = as("More", "ratedChar"), b2 =  1:3, flag2 = f2$flag)
+f3 <- foo3()
+f4 <- foo3(bar = -3, flag = as("More", "ratedChar"), b2 =  1:3, flag2 = f2$flag)
 f3$import(f4)
 stopifnot(identical(f3$bar, f4$bar),
           identical(f3$flag, f4$flag),
           identical(f3$b2, f4$b2),
           identical(f3$flag2, f4$flag2))
 
-## similar to $import() but using superclass object in the $new() call
+## similar to $import() but using superclass object in the generator call
 ## The explicitly supplied flag= should override and be allowed
 ## by the default $initialize()
-f3b <- foo3$new(f2, flag = as("Other", "ratedChar"),
+f3b <- foo3(f2, flag = as("Other", "ratedChar"),
                 flag2 = as("More", "ratedChar"))
 ## check that inherited and direct field assignments worked
 stopifnot(identical(f3b$tag, f2$tag),
           identical(f3b$flag, as("Other", "ratedChar")),
           identical(f3b$flag2, as("More", "ratedChar")))
-
+## the $new() method should match the generator function
+f3b <- foo3$new(f2, flag = as("Other", "ratedChar"),
+                flag2 = as("More", "ratedChar"))
+stopifnot(identical(f3b$tag, f2$tag),
+          identical(f3b$flag, as("Other", "ratedChar")),
+          identical(f3b$flag2, as("More", "ratedChar")))
 ## a class with an initialize method, and an extra slot (legal, not a good idea)
 setOldClass(c("simple.list", "list"))
 fg4 <- setRefClass("foo4",
@@ -171,7 +176,7 @@ foo5 <- setRefClass("foo5", fields = list(),
                     methods = list(bar = function(test)
                     paste("*",test,"*")))
 
-f5 <- foo5$new()
+f5 <- foo5()
 stopifnot(identical( f5$bar("xxx"), paste("*","xxx", "*")))
 
 
@@ -180,7 +185,7 @@ abGen <- setRefClass("ab",
                   fields = list(a = "ANY",
                   b = function(x) if(missing(x)) a else {a <<- x; x}))
 
-ab1 <- abGen$new(a = 1)
+ab1 <- abGen(a = 1)
 
 stopifnot(identical(ab1$a, 1), identical(ab1$b, 1))
 
@@ -220,7 +225,7 @@ mEditor <- setRefClass("matrixEditor",
      }
      ))
 xMat <- matrix(1:12,4,3)
-xx <- mEditor$new(data = xMat)
+xx <- mEditor(data = xMat)
 xx$edit(2, 2, 0)
 xx$data
 xx$undo()
@@ -293,7 +298,7 @@ mv$methods( counts = function() {
 })
 
 
-ff <- mv$new( data = xMat)
+ff <- mv( data = xMat)
 stopifnot(identical(markViewer, "ON")) # check initialize
 ff$edit(2,2,0)
 ff$data
@@ -308,14 +313,14 @@ stopifnot(identical(markViewer, "OFF")) #check finalize
 viewerPlus <- setRefClass("viewerPlus",
                    fields = list( text = "character",
                       viewer = "matrixViewer"))
-ff <- mv$new( data = xMat)
-v1 <- viewerPlus$new(text = letters, viewer = ff)
+ff <- mv( data = xMat)
+v1 <- viewerPlus(text = letters, viewer = ff)
 v2 <- v1$copy()
 v3 <- v1$copy(TRUE)
 v2$text <- "Hello, world"
 v2$viewer$data <- t(xMat) # change a field in v2$viewer
 v3$text <- LETTERS
-v3$viewer <- mv$new( data = matrix(nrow=1,ncol=1))
+v3$viewer <- mv( data = matrix(nrow=1,ncol=1))
 ## with a deep copy all is protected, with a shallow copy
 ## the environment of a copied field remains the same,
 ## but replacing the whole field should be local
@@ -345,11 +350,11 @@ refClassA <- setRefClass("refClassA", methods=list(foo=function() "A"))
 refClassB <- setRefClass("refClassB", contains="refClassA")
 mnames <- objects(getClass("refClassB")@refMethods)
 refClassB$methods(foo=function() callSuper())
-stopifnot(identical(refClassB$new()$foo(), "A"))
+stopifnot(identical(refClassB()$foo(), "A"))
 mnames2 <- objects(getClass("refClassB")@refMethods)
 stopifnot(identical(mnames2[is.na(match(mnames2,mnames))], "foo#refClassA"))
 refClassB$methods(foo=function() paste(callSuper(), "Version 2"))
-stopifnot(identical(refClassB$new()$foo(), "A Version 2"))
+stopifnot(identical(refClassB()$foo(), "A Version 2"))
 stopifnot(identical(mnames2, objects(getClass("refClassB")@refMethods)))
 
 if(methods:::.hasCodeTools()) {
@@ -378,7 +383,7 @@ rm(ctxt)
 
 
 ## tests related to subclassing environments.  These really test code in the core, viz. builtin.c
-a <- refClassA$new()
+a <- refClassA()
 ev <- new.env(parent = a) # parent= arg
 stopifnot(is.environment(ev))
 foo <- function()"A"; environment(foo) <- a # environment of function
@@ -437,7 +442,7 @@ TestClass <- setRefClass ("TestClass",
        print = function ()  {cat(text)},
        initialize = function(text = "", ...) callSuper(text = paste(text, ":", sep=""),...)
   ))
-tt <- TestClass$new("hello world")
+tt <- TestClass("hello world")
 stopifnot(identical(tt$text, "hello world:"))
 ## now a subclass with another field & another layer of callSuper()
 TestClass2 <- setRefClass("TestClass2",
@@ -447,9 +452,9 @@ TestClass2 <- setRefClass("TestClass2",
           initialize = function(..., version = 0L)
               callSuper(..., version = version+1L))
   )
-tt <- TestClass2$new("test", version = 1L)
+tt <- TestClass2("test", version = 1L)
 stopifnot(identical(tt$text, "test:"), identical(tt$version, as.integer(2)))
-tt <- TestClass2$new(version=3L) # default text
+tt <- TestClass2(version=3L) # default text
 stopifnot(identical(tt$text, ":"), identical(tt$version, as.integer(4)))
 
 
@@ -462,10 +467,10 @@ stopifnot(identical(tt$text, ":"), identical(tt$version, as.integer(4)))
 }
 
 mEditor$methods(change = .changeAllFields)
-xx <- mEditor$new(data = xMat)
+xx <- mEditor(data = xMat)
 xx$edit(2, 2, 0)
 
-yy <- mEditor$new(data = xMat+1)
+yy <- mEditor(data = xMat+1)
 yy$change(xx)
 stopifnot(identical(yy$data, xx$data), identical(yy$edits, xx$edits))
 
@@ -473,9 +478,11 @@ stopifnot(identical(yy$data, xx$data), identical(yy$edits, xx$edits))
 if(methods:::.hasCodeTools())
         stopifnot(is(tryCatch(yy$.self$data <- xMat, error = function(e)e), "error"))
 
-## the locked binding of refObjectGenerator class should prevent modifying
+## the locked binding of refGeneratorSlot class should prevent modifying
 ## methods, locking fields or setting accessor methods
-evr <- getRefClass("refObjectGenerator") # in methods
+## Nothing special about refGeneratorSlot in this test -- the point is just
+## to use a standard reference class known to be defined in a package
+evr <- getRefClass("refGeneratorSlot") # in methods
 stopifnot(is(tryCatch(evr$methods(foo = function()"..."), error = function(e)e), "error"),
          is(tryCatch(evr$lock("def"), error = function(e)e), "error"),
          is(tryCatch(evr$accessors("def"), error = function(e)e), "error"))
@@ -483,14 +490,11 @@ stopifnot(is(tryCatch(evr$methods(foo = function()"..."), error = function(e)e),
 ##getRefClass() method and function should work with either
 ## a class name or a class representation (bug report 14600)
 tg <- setRefClass("tg", fields = "a")
-t1 <- tg$new(a=1)
+t1 <- tg(a=1)
 tgg <- t1$getRefClass()
 tggg <- getRefClass("tg")
 stopifnot(identical(tgg$def, tggg$def),
           identical(tg$def, tgg$def))
-## TODO:  the className returned by setRefClass should have
-## a package attribute, which would allow:
-##          identical(tg$className, tgg$className))
 
 ## this used to fail in initFieldArgs() from partial matching "self"
 selfClass <- setRefClass("selfClass",
@@ -499,4 +503,4 @@ selfClass <- setRefClass("selfClass",
         )
     )
 
-stopifnot(identical(selfClass$new(self="B", super="A", sub="C")$self, "B"))
+stopifnot(identical(selfClass(self="B", super="A", sub="C")$self, "B"))
diff --git a/win32/deps/library/methods/tests/duplicateClass.R 
b/win32/deps/library/methods/tests/duplicateClass.R
index e8f167c..7cd3f61 100644
--- a/win32/deps/library/methods/tests/duplicateClass.R
+++ b/win32/deps/library/methods/tests/duplicateClass.R
@@ -25,3 +25,11 @@ stopifnot(identical(getClass("Cholesky"), clG))
 ## Second:  tests of methods defined for the same generic
 ## (NOT YET!)
 
+## Related: retaining package slots in methods signatures (reported by Martin Morgan)
+setClass("A")
+setGeneric("bar", function(x, y) standardGeneric("bar"))
+setMethod(bar, signature(x="A", y="A"), function(x, y) {})
+setMethod(bar, signature(x="A", y="ANY"), function(x, y) {})
+
+## tests one use of .matchSigLength
+stopifnot(all(nzchar(getMethod("bar", signature(x="A", y="ANY"))@target package)))
diff --git a/win32/deps/library/methods/tests/mixinInitialize.R 
b/win32/deps/library/methods/tests/mixinInitialize.R
index 139724d..6754415 100644
--- a/win32/deps/library/methods/tests/mixinInitialize.R
+++ b/win32/deps/library/methods/tests/mixinInitialize.R
@@ -62,4 +62,18 @@ removeClass("M")
 
 removeClass("A")
 
+## removeClass() for a union where "matrix"/"array" is part:
+setClassUnion("mn", c("matrix","numeric")); removeClass("mn")# gave "node stack overflow",
+setClassUnion("an", c("array", "integer")); removeClass("an")#  (ditto)
+setClassUnion("AM", c("array", "matrix"));  removeClass("AM")#  (ditto)
+## as had "matrix" -> "array" -> "matrix" ... recursion
+
+## and we want this to *still* work:
+stopifnot(is(tryCatch(as(a3 <- array(1:24, 2:4), "matrix"), error=function(e)e),
+            "error"),
+         is(as(a2 <- array(1:12, 3:4), "matrix"),
+            "matrix"),
+         is(a2, "matrix"), is(a2, "array"), is(a3, "array"), !is(a3, "matrix"),
+         ## and yes, "for now":
+         identical(a2, matrix(1:12, 3)))
 
diff --git a/win32/deps/library/methods/tests/namesAndSlots.R 
b/win32/deps/library/methods/tests/namesAndSlots.R
index 2091921..f7bb13e 100644
--- a/win32/deps/library/methods/tests/namesAndSlots.R
+++ b/win32/deps/library/methods/tests/namesAndSlots.R
@@ -14,3 +14,6 @@ setClass("D", contains = "numeric", representation(names = "character"))
 d <- new("D", 1)
 names(d) <- "A"
 stopifnot(identical(d names, "A"))
+## test the checks on @<- primitive assignment
+stopifnot(is(tryCatch(a yy <- 1 , error = function(e)e), "error"))
+stopifnot(is(tryCatch(a xx <- "A" , error = function(e)e), "error"))
diff --git a/win32/deps/library/splines/DESCRIPTION b/win32/deps/library/splines/DESCRIPTION
index 54009c9..3a4a931 100644
--- a/win32/deps/library/splines/DESCRIPTION
+++ b/win32/deps/library/splines/DESCRIPTION
@@ -1,5 +1,5 @@
 Package: splines
-Version: 2.15.2
+Version: 3.0.2
 Priority: base
 Imports: graphics, stats
 Title: Regression Spline Functions and Classes
@@ -7,5 +7,5 @@ Author: Douglas M. Bates <bates stat wisc edu> and
  William N. Venables <Bill Venables csiro au>
 Maintainer: R Core Team <R-core r-project org>
 Description: Regression spline functions and classes
-License: Part of R 2.15.2
-Built: R 2.15.2; x86_64-w64-mingw32; 2012-10-27 03:07:55 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:41:19 UTC; windows
diff --git a/win32/deps/library/splines/Meta/Rd.rds b/win32/deps/library/splines/Meta/Rd.rds
index f0ab2fa..ea39378 100644
Binary files a/win32/deps/library/splines/Meta/Rd.rds and b/win32/deps/library/splines/Meta/Rd.rds differ
diff --git a/win32/deps/library/splines/Meta/hsearch.rds b/win32/deps/library/splines/Meta/hsearch.rds
index ff05ab5..bca5794 100644
Binary files a/win32/deps/library/splines/Meta/hsearch.rds and b/win32/deps/library/splines/Meta/hsearch.rds 
differ
diff --git a/win32/deps/library/splines/Meta/links.rds b/win32/deps/library/splines/Meta/links.rds
index bd91165..a7e4caf 100644
Binary files a/win32/deps/library/splines/Meta/links.rds and b/win32/deps/library/splines/Meta/links.rds 
differ
diff --git a/win32/deps/library/splines/Meta/nsInfo.rds b/win32/deps/library/splines/Meta/nsInfo.rds
index cb23c63..691c90d 100644
Binary files a/win32/deps/library/splines/Meta/nsInfo.rds and b/win32/deps/library/splines/Meta/nsInfo.rds 
differ
diff --git a/win32/deps/library/splines/Meta/package.rds b/win32/deps/library/splines/Meta/package.rds
index d09d9c0..b69ab60 100644
Binary files a/win32/deps/library/splines/Meta/package.rds and b/win32/deps/library/splines/Meta/package.rds 
differ
diff --git a/win32/deps/library/splines/R/splines b/win32/deps/library/splines/R/splines
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/splines/R/splines
+++ b/win32/deps/library/splines/R/splines
@@ -1,9 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 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 General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
 local({
     info <- loadingNamespaceInfo()
-    ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
     if (is.null(ns))
-        stop("cannot find namespace environment");
-    barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
-    dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
     lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
 })
diff --git a/win32/deps/library/splines/R/splines.rdb b/win32/deps/library/splines/R/splines.rdb
index 6c6779f..48dc7c9 100644
Binary files a/win32/deps/library/splines/R/splines.rdb and b/win32/deps/library/splines/R/splines.rdb differ
diff --git a/win32/deps/library/splines/R/splines.rdx b/win32/deps/library/splines/R/splines.rdx
index 5048981..84e2496 100644
Binary files a/win32/deps/library/splines/R/splines.rdx and b/win32/deps/library/splines/R/splines.rdx differ
diff --git a/win32/deps/library/splines/help/aliases.rds b/win32/deps/library/splines/help/aliases.rds
index f9185d8..3618f15 100644
Binary files a/win32/deps/library/splines/help/aliases.rds and b/win32/deps/library/splines/help/aliases.rds 
differ
diff --git a/win32/deps/library/splines/help/paths.rds b/win32/deps/library/splines/help/paths.rds
index be52d00..b1ad19e 100644
Binary files a/win32/deps/library/splines/help/paths.rds and b/win32/deps/library/splines/help/paths.rds 
differ
diff --git a/win32/deps/library/splines/help/splines.rdb b/win32/deps/library/splines/help/splines.rdb
index e1be526..7b77f91 100644
Binary files a/win32/deps/library/splines/help/splines.rdb and b/win32/deps/library/splines/help/splines.rdb 
differ
diff --git a/win32/deps/library/splines/help/splines.rdx b/win32/deps/library/splines/help/splines.rdx
index 9cd364a..e8a7620 100644
Binary files a/win32/deps/library/splines/help/splines.rdx and b/win32/deps/library/splines/help/splines.rdx 
differ
diff --git a/win32/deps/library/splines/html/00Index.html b/win32/deps/library/splines/html/00Index.html
index 43185c1..b05f8b1 100644
--- a/win32/deps/library/splines/html/00Index.html
+++ b/win32/deps/library/splines/html/00Index.html
@@ -10,7 +10,7 @@
 <div align="center">
 <a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30" 
height="30" border="0"></a>
 <a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30" 
height="30" border="0"></a>
-</div><h2>Documentation for package &lsquo;splines&rsquo; version 2.15.2</h2>
+</div><h2>Documentation for package &lsquo;splines&rsquo; version 3.0.2</h2>
 
 <ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
 </ul>
diff --git a/win32/deps/library/splines/libs/i386/splines.dll 
b/win32/deps/library/splines/libs/i386/splines.dll
index 888f501..053cd91 100644
Binary files a/win32/deps/library/splines/libs/i386/splines.dll and 
b/win32/deps/library/splines/libs/i386/splines.dll differ
diff --git a/win32/deps/library/stats/DESCRIPTION b/win32/deps/library/stats/DESCRIPTION
index 8941be4..38cbdf7 100644
--- a/win32/deps/library/stats/DESCRIPTION
+++ b/win32/deps/library/stats/DESCRIPTION
@@ -1,9 +1,9 @@
 Package: stats
-Version: 2.15.2
+Version: 3.0.2
 Priority: base
 Title: The R Stats Package
 Author: R Core Team and contributors worldwide
 Maintainer: R Core Team <R-core r-project org>
 Description: R statistical functions
-License: Part of R 2.15.2
-Built: R 2.15.2; x86_64-w64-mingw32; 2012-10-27 03:06:07 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:39:42 UTC; windows
diff --git a/win32/deps/library/stats/Meta/Rd.rds b/win32/deps/library/stats/Meta/Rd.rds
index 345fee8..78eb5d9 100644
Binary files a/win32/deps/library/stats/Meta/Rd.rds and b/win32/deps/library/stats/Meta/Rd.rds differ
diff --git a/win32/deps/library/stats/Meta/demo.rds b/win32/deps/library/stats/Meta/demo.rds
index 8bb2fdf..2865dfb 100644
Binary files a/win32/deps/library/stats/Meta/demo.rds and b/win32/deps/library/stats/Meta/demo.rds differ
diff --git a/win32/deps/library/stats/Meta/hsearch.rds b/win32/deps/library/stats/Meta/hsearch.rds
index 9787d03..ef4f132 100644
Binary files a/win32/deps/library/stats/Meta/hsearch.rds and b/win32/deps/library/stats/Meta/hsearch.rds 
differ
diff --git a/win32/deps/library/stats/Meta/links.rds b/win32/deps/library/stats/Meta/links.rds
index 583c84d..3b48a67 100644
Binary files a/win32/deps/library/stats/Meta/links.rds and b/win32/deps/library/stats/Meta/links.rds differ
diff --git a/win32/deps/library/stats/Meta/nsInfo.rds b/win32/deps/library/stats/Meta/nsInfo.rds
index 1a34273..bd12999 100644
Binary files a/win32/deps/library/stats/Meta/nsInfo.rds and b/win32/deps/library/stats/Meta/nsInfo.rds differ
diff --git a/win32/deps/library/stats/Meta/package.rds b/win32/deps/library/stats/Meta/package.rds
index 473cb61..5d53be9 100644
Binary files a/win32/deps/library/stats/Meta/package.rds and b/win32/deps/library/stats/Meta/package.rds 
differ
diff --git a/win32/deps/library/stats/NAMESPACE b/win32/deps/library/stats/NAMESPACE
index 249c699..8d1aa89 100644
--- a/win32/deps/library/stats/NAMESPACE
+++ b/win32/deps/library/stats/NAMESPACE
@@ -7,7 +7,6 @@ importFrom(grDevices, dev.interactive, palette, extendrange, xy.coords)
 importFrom(utils, str)
 
 
-# exportPattern("^[^\\.]")
 export(.checkMFClasses, .getXlevels, .MFclass)
 
 export(add.scope, add1, addmargins, aggregate, aggregate.data.frame,
@@ -74,12 +73,8 @@ export(add.scope, add1, addmargins, aggregate, aggregate.data.frame,
 # for now, as package 'rv' takes over median
 export(median.default)
 
-# deprecated
-export(mauchley.test)
-
 # defunct
-export(reshapeWide, reshapeLong, print.coefmat, anovalist.lm, lm.fit.null,
-       lm.wfit.null, glm.fit.null)
+# export(clearNames, mauchley.test, reshapeWide, reshapeLong, anovalist.lm, lm.fit.null, lm.wfit.null, 
glm.fit.null)
 
 ## register all the methods for generics elsewhere in case namespace is
 ## loaded but not currently attached.
@@ -92,7 +87,10 @@ S3method(add1, default)
 S3method(add1, glm)
 S3method(add1, lm)
 S3method(add1, mlm)
-S3method("aggregate", "formula")
+S3method(aggregate, data.frame)
+S3method(aggregate, default)
+S3method(aggregate, "formula")
+S3method(aggregate, ts)
 S3method(AIC, default)
 S3method(AIC, logLik)
 S3method(alias, formula)
@@ -102,6 +100,9 @@ S3method(as.data.frame, ftable)
 S3method(as.data.frame, logLik)
 S3method(as.table, ftable)
 S3method(as.ts, default)
+S3method(anova, glm)
+S3method(anova, glmlist)
+S3method(anova, lm)
 S3method(BIC, default)
 S3method(BIC, logLik)
 S3method(case.names, default)
@@ -119,6 +120,11 @@ S3method(cooks.distance, lm)
 S3method(cycle, default)
 S3method(cycle, ts)
 S3method(deltat, default)
+S3method(density, default)
+S3method(deriv, default)
+S3method(deriv, formula)
+S3method(deriv3, default)
+S3method(deriv3, formula)
 S3method(deviance, default)
 S3method(deviance, glm)
 S3method(deviance, lm)
@@ -126,6 +132,7 @@ S3method(deviance, mlm)
 S3method(df.residual, default)
 S3method(dfbeta, lm)
 S3method(dfbetas, lm)
+S3method(diff, ts)
 S3method(drop1, default)
 S3method(drop1, glm)
 S3method(drop1, lm)
@@ -159,6 +166,7 @@ S3method(frequency, default)
 S3method(ftable, default)
 S3method(ftable, formula)
 S3method(getCall, default)
+S3method(hatvalues, lm)
 S3method(influence, glm)
 S3method(influence, lm)
 S3method(labels, dist)
@@ -172,6 +180,12 @@ S3method(makepredictcall, poly)
 S3method(mauchly.test, SSD)
 S3method(mauchly.test, mlm)
 S3method(median, default)
+S3method(model.frame, aovlist)
+S3method(model.frame, default)
+S3method(model.frame, glm)
+S3method(model.frame, lm)
+S3method(model.matrix, default)
+S3method(model.matrix, lm)
 S3method(model.tables, aov)
 S3method(model.tables, aovlist)
 S3method(na.action, default)
@@ -238,6 +252,7 @@ S3method(proj, aov)
 S3method(proj, aovlist)
 S3method(proj, default)
 S3method(proj, lm)
+S3method(qqnorm, default)
 S3method(qr, lm)
 S3method(quantile, default)
 S3method(quantile, ecdf)
@@ -246,6 +261,13 @@ S3method(relevel, default)
 S3method(relevel, factor)
 S3method(relevel, ordered)
 S3method(reorder, default)
+S3method(residuals, default)
+S3method(residuals, glm)
+S3method(residuals, lm)
+S3method(rstandard, glm)
+S3method(rstandard, lm)
+S3method(rstudent, glm)
+S3method(rstudent, lm)
 S3method(se.contrast, aov)
 S3method(se.contrast, aovlist)
 S3method(simulate, lm)
@@ -260,6 +282,9 @@ S3method(SSD, mlm)
 S3method(start, default)
 S3method(str, logLik)
 S3method(t, ts)
+S3method(terms, default)
+S3method(terms, formula)
+S3method(terms, terms)
 S3method(time, default)
 S3method(time, ts)
 S3method(TukeyHSD, aov)
@@ -418,7 +443,7 @@ S3method(summary, princomp)
 export(NLSstAsymptotic, NLSstClosestX, NLSstLfAsymptote,
        NLSstRtAsymptote, SSasymp, SSasympOff, SSasympOrig, SSbiexp,
        SSfol, SSfpl, SSgompertz, SSlogis, SSmicmen, SSweibull,
-       asOneSidedFormula, clearNames, getInitial, nls, nls.control,
+       asOneSidedFormula, getInitial, nls, nls.control,
        numericDeriv, selfStart, setNames, sortedXyData)
 
 # documented but not exported
diff --git a/win32/deps/library/stats/R/stats b/win32/deps/library/stats/R/stats
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/stats/R/stats
+++ b/win32/deps/library/stats/R/stats
@@ -1,9 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 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 General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
 local({
     info <- loadingNamespaceInfo()
-    ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
     if (is.null(ns))
-        stop("cannot find namespace environment");
-    barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
-    dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
     lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
 })
diff --git a/win32/deps/library/stats/R/stats.rdb b/win32/deps/library/stats/R/stats.rdb
index 43850f1..ba977dc 100644
Binary files a/win32/deps/library/stats/R/stats.rdb and b/win32/deps/library/stats/R/stats.rdb differ
diff --git a/win32/deps/library/stats/R/stats.rdx b/win32/deps/library/stats/R/stats.rdx
index 02f5a1c..d5fb1ce 100644
Binary files a/win32/deps/library/stats/R/stats.rdx and b/win32/deps/library/stats/R/stats.rdx differ
diff --git a/win32/deps/library/stats/help/AnIndex b/win32/deps/library/stats/help/AnIndex
index 86bef5a..c514330 100644
--- a/win32/deps/library/stats/help/AnIndex
+++ b/win32/deps/library/stats/help/AnIndex
@@ -45,7 +45,7 @@ ar.yw.mts     ar
 arima  arima
 arima.sim      arima.sim
 arima0 arima0
-arima0.diag    ts-defunct
+arima0.diag    stats-defunct
 ARMAacf        ARMAacf
 ARMAtoMA       ARMAtoMA
 as.dendrogram  dendrogram
@@ -428,7 +428,7 @@ pf  Fdist
 pgamma GammaDist
 pgeom  Geometric
 phyper Hypergeometric
-plclust        hclust
+plclust        stats-deprecated
 plnorm Lognormal
 plogis Logistic
 plot.acf       plot.acf
@@ -507,7 +507,7 @@ print.ecdf  ecdf
 print.factanal loadings
 print.family   family
 print.formula  formula
-print.ftable   ftable
+print.ftable   read.ftable
 print.glm      glm
 print.hclust   hclust
 print.HoltWinters      HoltWinters
diff --git a/win32/deps/library/stats/help/aliases.rds b/win32/deps/library/stats/help/aliases.rds
index 0325d05..731829c 100644
Binary files a/win32/deps/library/stats/help/aliases.rds and b/win32/deps/library/stats/help/aliases.rds 
differ
diff --git a/win32/deps/library/stats/help/paths.rds b/win32/deps/library/stats/help/paths.rds
index e2f2ddc..37a570e 100644
Binary files a/win32/deps/library/stats/help/paths.rds and b/win32/deps/library/stats/help/paths.rds differ
diff --git a/win32/deps/library/stats/help/stats.rdb b/win32/deps/library/stats/help/stats.rdb
index a60a2d8..34dadb1 100644
Binary files a/win32/deps/library/stats/help/stats.rdb and b/win32/deps/library/stats/help/stats.rdb differ
diff --git a/win32/deps/library/stats/help/stats.rdx b/win32/deps/library/stats/help/stats.rdx
index 60f3d89..2baf9d2 100644
Binary files a/win32/deps/library/stats/help/stats.rdx and b/win32/deps/library/stats/help/stats.rdx differ
diff --git a/win32/deps/library/stats/html/00Index.html b/win32/deps/library/stats/html/00Index.html
index b649900..79343ac 100644
--- a/win32/deps/library/stats/html/00Index.html
+++ b/win32/deps/library/stats/html/00Index.html
@@ -10,7 +10,7 @@
 <div align="center">
 <a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30" 
height="30" border="0"></a>
 <a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30" 
height="30" border="0"></a>
-</div><h2>Documentation for package &lsquo;stats&rsquo; version 2.15.2</h2>
+</div><h2>Documentation for package &lsquo;stats&rsquo; version 3.0.2</h2>
 
 <ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
 <li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
@@ -737,8 +737,8 @@
 <td>The Geometric Distribution</td></tr>
 <tr><td width="25%"><a href="Hypergeometric.html">phyper</a></td>
 <td>The Hypergeometric Distribution</td></tr>
-<tr><td width="25%"><a href="hclust.html">plclust</a></td>
-<td>Hierarchical Clustering</td></tr>
+<tr><td width="25%"><a href="stats-deprecated.html">plclust</a></td>
+<td>Deprecated Functions in Package 'stats'</td></tr>
 <tr><td width="25%"><a href="Lognormal.html">plnorm</a></td>
 <td>The Log Normal Distribution</td></tr>
 <tr><td width="25%"><a href="Logistic.html">plogis</a></td>
@@ -867,8 +867,8 @@
 <td>Family Objects for Models</td></tr>
 <tr><td width="25%"><a href="formula.html">print.formula</a></td>
 <td>Model Formulae</td></tr>
-<tr><td width="25%"><a href="ftable.html">print.ftable</a></td>
-<td>Flat Contingency Tables</td></tr>
+<tr><td width="25%"><a href="read.ftable.html">print.ftable</a></td>
+<td>Manipulate Flat Contingency Tables</td></tr>
 <tr><td width="25%"><a href="glm.html">print.glm</a></td>
 <td>Fitting Generalized Linear Models</td></tr>
 <tr><td width="25%"><a href="hclust.html">print.hclust</a></td>
diff --git a/win32/deps/library/stats/libs/i386/stats.dll b/win32/deps/library/stats/libs/i386/stats.dll
index 1be3aff..5b6bd34 100644
Binary files a/win32/deps/library/stats/libs/i386/stats.dll and 
b/win32/deps/library/stats/libs/i386/stats.dll differ
diff --git a/win32/deps/library/stats/tests/ks-test.Rout.save 
b/win32/deps/library/stats/tests/ks-test.Rout.save
index 991451a..3fa350d 100644
--- a/win32/deps/library/stats/tests/ks-test.Rout.save
+++ b/win32/deps/library/stats/tests/ks-test.Rout.save
@@ -1,7 +1,6 @@
 
-R Under development (unstable) (2011-08-04 r56621)
-Copyright (C) 2011 The R Foundation for Statistical Computing
-ISBN 3-900051-07-0
+R version 3.0.2 RC (2013-09-22 r63960) -- "Frisbee Sailing"
+Copyright (C) 2013 The R Foundation for Statistical Computing
 Platform: x86_64-unknown-linux-gnu (64-bit)
 
 R is free software and comes with ABSOLUTELY NO WARRANTY.
@@ -24,9 +23,9 @@ Type 'q()' to quit R.
 
        One-sample Kolmogorov-Smirnov test
 
-data:  ds1 
+data:  ds1
 D = 0.274, p-value = 0.4407
-alternative hypothesis: two-sided 
+alternative hypothesis: two-sided
 
 Warning message:
 In ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216) :
@@ -38,9 +37,9 @@ In ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216) :
 
        One-sample Kolmogorov-Smirnov test
 
-data:  ds1 
+data:  ds1
 D = 0.274, p-value = 0.3715
-alternative hypothesis: two-sided 
+alternative hypothesis: two-sided
 
 Warning message:
 In ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216, exact = TRUE) :
@@ -53,26 +52,26 @@ In ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216, exact = TRUE) :
 
        One-sample Kolmogorov-Smirnov test
 
-data:  ds2 
+data:  ds2
 D = 0.0194, p-value = 0.8452
-alternative hypothesis: two-sided 
+alternative hypothesis: two-sided
 
ks.test(ds2, "pnorm", exact = TRUE)
 
        One-sample Kolmogorov-Smirnov test
 
-data:  ds2 
+data:  ds2
 D = 0.0194, p-value = 0.8379
-alternative hypothesis: two-sided 
+alternative hypothesis: two-sided
 
## next two are still close
ks.test(round(ds2, 2), "pnorm")
 
        One-sample Kolmogorov-Smirnov test
 
-data:  round(ds2, 2) 
+data:  round(ds2, 2)
 D = 0.0192, p-value = 0.856
-alternative hypothesis: two-sided 
+alternative hypothesis: two-sided
 
 Warning message:
 In ks.test(round(ds2, 2), "pnorm") :
@@ -81,9 +80,9 @@ In ks.test(round(ds2, 2), "pnorm") :
 
        One-sample Kolmogorov-Smirnov test
 
-data:  round(ds2, 2) 
+data:  round(ds2, 2)
 D = 0.0192, p-value = 0.8489
-alternative hypothesis: two-sided 
+alternative hypothesis: two-sided
 
 Warning message:
 In ks.test(round(ds2, 2), "pnorm", exact = TRUE) :
@@ -93,9 +92,9 @@ In ks.test(round(ds2, 2), "pnorm", exact = TRUE) :
 
        One-sample Kolmogorov-Smirnov test
 
-data:  round(ds2, 1) 
+data:  round(ds2, 1)
 D = 0.0367, p-value = 0.1344
-alternative hypothesis: two-sided 
+alternative hypothesis: two-sided
 
 Warning message:
 In ks.test(round(ds2, 1), "pnorm") :
@@ -104,12 +103,15 @@ In ks.test(round(ds2, 1), "pnorm") :
 
        One-sample Kolmogorov-Smirnov test
 
-data:  round(ds2, 1) 
+data:  round(ds2, 1)
 D = 0.0367, p-value = 0.1311
-alternative hypothesis: two-sided 
+alternative hypothesis: two-sided
 
 Warning message:
 In ks.test(round(ds2, 1), "pnorm", exact = TRUE) :
   ties should not be present for the Kolmogorov-Smirnov test


+> proc.time()
+   user  system elapsed 
+  0.238   0.020   0.252 
diff --git a/win32/deps/library/stats/tests/nls.R b/win32/deps/library/stats/tests/nls.R
index 870edaf..79b5c85 100644
--- a/win32/deps/library/stats/tests/nls.R
+++ b/win32/deps/library/stats/tests/nls.R
@@ -33,9 +33,8 @@ logistInit <- function(mCall, LHS, data) {
     if (Asym != max(xy[,"y"])) Asym <- -Asym  # negative asymptote
     xmid <- NLSstClosestX(xy, 0.5 * Asym)
     scal <- NLSstClosestX(xy, 0.75 * Asym) - xmid
-    value <- c(Asym, xmid, scal)
-    names(value) <- mCall[c("Asym", "xmid", "scal")]
-    value
+    setNames(c(Asym, xmid, scal),
+            mCall[c("Asym", "xmid", "scal")])
 }
 logist <- selfStart(logist, initial = logistInit) ##-> Error in R 1.5.0
 str(logist)
diff --git a/win32/deps/library/stats/tests/nls.Rout.save b/win32/deps/library/stats/tests/nls.Rout.save
index 6937a94..307d006 100644
--- a/win32/deps/library/stats/tests/nls.Rout.save
+++ b/win32/deps/library/stats/tests/nls.Rout.save
@@ -1,8 +1,7 @@
 
-R version 2.15.0 Patched (2012-04-11 r58983) -- "Easter Beagle"
-Copyright (C) 2012 The R Foundation for Statistical Computing
-ISBN 3-900051-07-0
-Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
+R version 3.0.2 RC (2013-09-22 r63960) -- "Frisbee Sailing"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: x86_64-unknown-linux-gnu (64-bit)
 
 R is free software and comes with ABSOLUTELY NO WARRANTY.
 You are welcome to redistribute it under certain conditions.
@@ -51,9 +50,8 @@ Type 'q()' to quit R.
 +     if (Asym != max(xy[,"y"])) Asym <- -Asym  # negative asymptote
 +     xmid <- NLSstClosestX(xy, 0.5 * Asym)
 +     scal <- NLSstClosestX(xy, 0.75 * Asym) - xmid
-+     value <- c(Asym, xmid, scal)
-+     names(value) <- mCall[c("Asym", "xmid", "scal")]
-+     value
++     setNames(c(Asym, xmid, scal),
++           mCall[c("Asym", "xmid", "scal")])
 + }
logist <- selfStart(logist, initial = logistInit) ##-> Error in R 1.5.0
str(logist)
@@ -70,23 +68,23 @@ function (x, Asym, xmid, scal)
curve(a+b*x+c*x^2, add = TRUE)
nls(y ~ a+b*x+c*I(x^2), start = c(a=1, b=1, c=0.1), algorithm = "port")
 Nonlinear regression model
-  model:  y ~ a + b * x + c * I(x^2) 
-   data:  parent.frame() 
+  model: y ~ a + b * x + c * I(x^2)
+   data: parent.frame()
       a       b       c 
  1.0058  0.9824 -0.0897 
  residual sum-of-squares: 0.46
 
-Algorithm "port", convergence message: relative convergence (4) 
+Algorithm "port", convergence message: relative convergence (4)
(fm <- nls(y ~ a+b*x+c*I(x^2), start = c(a=1, b=1, c=0.1),
 +            algorithm = "port", lower = c(0, 0, 0)))
 Nonlinear regression model
-  model:  y ~ a + b * x + c * I(x^2) 
-   data:  parent.frame() 
+  model: y ~ a + b * x + c * I(x^2)
+   data: parent.frame()
    a    b    c 
 1.02 0.89 0.00 
  residual sum-of-squares: 0.468
 
-Algorithm "port", convergence message: both X-convergence and relative convergence (5) 
+Algorithm "port", convergence message: both X-convergence and relative convergence (5)
confint(fm)
 Waiting for profiling to be done...
      2.5%    97.5%
@@ -116,8 +114,8 @@ Coefficients:
 x            0.99915    0.00119  841.38   <2e-16
 
 Residual standard error: 0.0132 on 7 degrees of freedom
-Multiple R-squared:    1,      Adjusted R-squared:    1 
-F-statistic: 7.08e+05 on 1 and 7 DF,  p-value: <2e-16 
+Multiple R-squared:     1,     Adjusted R-squared:     1 
+F-statistic: 7.08e+05 on 1 and 7 DF,  p-value: <2e-16
 
 Correlation of Coefficients:
   (Intercept)
@@ -126,8 +124,8 @@ x -0.89
cf0 <- coef(summary(fit0))[, 1:2]
fit <- nls(yeps ~ a + b*x, start = list(a = 0.12345, b = 0.54321),
 +            weights = wts, trace = TRUE)
-112.14 :  0.12345 0.54321 
-0.0012128 :  0.0051705 0.9991529 
+112.14 :  0.12345 0.54321
+0.0012128 :  0.0051705 0.9991529
summary(fit, cor = TRUE)
 
 Formula: yeps ~ a + b * x
@@ -168,7 +166,7 @@ Correlation of Parameter Estimates:
   a    
 b -0.89
 
-Algorithm "port", convergence message: both X-convergence and relative convergence (5) 
+Algorithm "port", convergence message: both X-convergence and relative convergence (5)
 
cf2 <- coef(summary(fit2))[, 1:2]
rownames(cf0) <- c("a", "b")
@@ -310,7 +308,7 @@ scal   1.0385     0.0304    34.1  4.2e-14
 
 Residual standard error: 0.0355 on 13 degrees of freedom
 
-Algorithm "port", convergence message: relative convergence (4) 
+Algorithm "port", convergence message: relative convergence (4)
 
stopifnot(all.equal(coef(summary(fm5)), coef(summary(fm1)), tol = 1e-6))
stopifnot(all.equal(residuals(fm5), residuals(fm1), tol = 1e-5))
@@ -359,8 +357,8 @@ scal 0.9757 1.1063
 +     print(confint(fm))
 + }
 Nonlinear regression model
-  model:  y ~ x^b 
-   data:  parent.frame() 
+  model: y ~ x^b
+   data: parent.frame()
     b 
 0.695 
  residual sum-of-squares: 2.39
@@ -368,19 +366,19 @@ Waiting for profiling to be done...
    2.5%   97.5% 
 0.68704 0.70281 
 Nonlinear regression model
-  model:  y ~ x^b 
-   data:  parent.frame() 
+  model: y ~ x^b
+   data: parent.frame()
     b 
 0.695 
  residual sum-of-squares: 2.39
 
-Algorithm "port", convergence message: relative convergence (4) 
+Algorithm "port", convergence message: relative convergence (4)
 Waiting for profiling to be done...
    2.5%   97.5% 
 0.68704 0.70281 
 Nonlinear regression model
-  model:  y2 ~ a * x^b 
-   data:  parent.frame() 
+  model: y2 ~ a * x^b
+   data: parent.frame()
     a     b 
 0.502 0.724 
  residual sum-of-squares: 2.51
@@ -389,20 +387,20 @@ Waiting for profiling to be done...
 a 0.49494 0.50893
 b 0.70019 0.74767
 Nonlinear regression model
-  model:  y2 ~ a * x^b 
-   data:  parent.frame() 
+  model: y2 ~ a * x^b
+   data: parent.frame()
     a     b 
 0.502 0.724 
  residual sum-of-squares: 2.51
 
-Algorithm "port", convergence message: relative convergence (4) 
+Algorithm "port", convergence message: relative convergence (4)
 Waiting for profiling to be done...
      2.5%   97.5%
 a 0.49494 0.50893
 b 0.70019 0.74767
 Nonlinear regression model
-  model:  y3 ~ a * (x + exp(logc))^b 
-   data:  parent.frame() 
+  model: y3 ~ a * (x + exp(logc))^b
+   data: parent.frame()
      a      b   logc 
  0.558  0.603 -0.176 
  residual sum-of-squares: 2.44
@@ -412,13 +410,13 @@ a     0.35006 0.66057
 b     0.45107 0.91473
 logc -0.64627 0.40946
 Nonlinear regression model
-  model:  y3 ~ a * (x + exp(logc))^b 
-   data:  parent.frame() 
+  model: y3 ~ a * (x + exp(logc))^b
+   data: parent.frame()
      a      b   logc 
  0.558  0.603 -0.176 
  residual sum-of-squares: 2.44
 
-Algorithm "port", convergence message: relative convergence (4) 
+Algorithm "port", convergence message: relative convergence (4)
 Waiting for profiling to be done...
          2.5%   97.5%
 a     0.35006 0.66057
@@ -479,13 +477,13 @@ $b
 
 attr(,"original.fit")
 Nonlinear regression model
-  model:  y ~ gfun(a, b, x) 
-   data:  parent.frame() 
+  model: y ~ gfun(a, b, x)
+   data: parent.frame()
     a     b 
 1.538 0.263 
  residual sum-of-squares: 0.389
 
-Algorithm "port", convergence message: relative convergence (4) 
+Algorithm "port", convergence message: relative convergence (4)
 attr(,"summary")
 
 Formula: y ~ gfun(a, b, x)
@@ -497,7 +495,7 @@ b    0.263      0.352    0.75    0.476
 
 Residual standard error: 0.221 on 8 degrees of freedom
 
-Algorithm "port", convergence message: relative convergence (4) 
+Algorithm "port", convergence message: relative convergence (4)
 
 attr(,"class")
 [1] "profile.nls" "profile"    
@@ -531,13 +529,13 @@ $b
 
 attr(,"original.fit")
 Nonlinear regression model
-  model:  y ~ gfun(a, b, x) 
-   data:  parent.frame() 
+  model: y ~ gfun(a, b, x)
+   data: parent.frame()
     a     b 
 1.500 0.243 
  residual sum-of-squares: 0.39
 
-Algorithm "port", convergence message: relative convergence (4) 
+Algorithm "port", convergence message: relative convergence (4)
 attr(,"summary")
 
 Formula: y ~ gfun(a, b, x)
@@ -549,7 +547,7 @@ b    0.243      0.356    0.68    0.514
 
 Residual standard error: 0.221 on 8 degrees of freedom
 
-Algorithm "port", convergence message: relative convergence (4) 
+Algorithm "port", convergence message: relative convergence (4)
 
 attr(,"class")
 [1] "profile.nls" "profile"    
@@ -571,16 +569,16 @@ b    NA 0.611
 +     nls(y ~ myf(x,a,b,n), data=xy, start=c(a=1,b=1), trace=TRUE)
 + }
test()
-8291.9 :  1 1 
-726.02 :  0.80544 2.42971 
-552.85 :  1.290 2.129 
-70.431 :  1.9565 1.9670 
-26.555 :  1.9788 2.0064 
-26.503 :  1.9798 2.0046 
-26.503 :  1.9799 2.0046 
+8291.9 :  1 1
+726.02 :  0.80544 2.42971
+552.85 :  1.290 2.129
+70.431 :  1.9565 1.9670
+26.555 :  1.9788 2.0064
+26.503 :  1.9798 2.0046
+26.503 :  1.9799 2.0046
 Nonlinear regression model
-  model:  y ~ myf(x, a, b, n) 
-   data:  xy 
+  model: y ~ myf(x, a, b, n)
+   data: xy
    a    b 
 1.98 2.00 
  residual sum-of-squares: 26.5
@@ -633,7 +631,7 @@ sp2 9.99e-01   5.00e-03   199.8   <2e-16
 
 Residual standard error: 0.00205 on 96 degrees of freedom
 
-Algorithm "port", convergence message: both X-convergence and relative convergence (5) 
+Algorithm "port", convergence message: both X-convergence and relative convergence (5)
 


@@ -658,5 +656,8 @@ In nls(y ~ b0[fac] + b1 * x, start = list(b0 = c(1, 1), b1 = 101),  :
 +      stopifnot(isConv == FALSE, stopCode == 300))

cat('Time elapsed: ', proc.time() - .proctime00,'\n')
-Time elapsed:  2.168 0.023 2.201 0 0 
+Time elapsed:  2.304 0.021 2.335 0 0 

+> proc.time()
+   user  system elapsed 
+  2.513   0.040   2.558 
diff --git a/win32/deps/library/stats/tests/simulate.Rout.save 
b/win32/deps/library/stats/tests/simulate.Rout.save
index c5d8880..4a3d500 100644
--- a/win32/deps/library/stats/tests/simulate.Rout.save
+++ b/win32/deps/library/stats/tests/simulate.Rout.save
@@ -1,7 +1,6 @@
 
-R version 2.13.0 Under development (unstable) (2011-03-04 r54667)
-Copyright (C) 2011 The R Foundation for Statistical Computing
-ISBN 3-900051-07-0
+R version 3.0.2 RC (2013-09-22 r63960) -- "Frisbee Sailing"
+Copyright (C) 2013 The R Foundation for Statistical Computing
 Platform: x86_64-unknown-linux-gnu (64-bit)
 
 R is free software and comes with ABSOLUTELY NO WARRANTY.
@@ -405,3 +404,6 @@ log(u)       0.014935 0.00021999  67.889 3.9547e-11
 log(u)       0.015569 0.00033659  46.256 5.7704e-10


+> proc.time()
+   user  system elapsed 
+  0.425   0.022   0.446 
diff --git a/win32/deps/library/stats/tests/ts-tests.R b/win32/deps/library/stats/tests/ts-tests.R
index 1589982..315c3a2 100644
--- a/win32/deps/library/stats/tests/ts-tests.R
+++ b/win32/deps/library/stats/tests/ts-tests.R
@@ -19,7 +19,7 @@
 .proctime00 <- proc.time()
 library(stats)
 
-postscript("ts-test.ps")
+pdf("ts-test.pdf")
 
 ### ar
 ar(lh)
diff --git a/win32/deps/library/utils/DESCRIPTION b/win32/deps/library/utils/DESCRIPTION
index 79abb38..b3b51d4 100644
--- a/win32/deps/library/utils/DESCRIPTION
+++ b/win32/deps/library/utils/DESCRIPTION
@@ -1,9 +1,9 @@
 Package: utils
-Version: 2.15.2
+Version: 3.0.2
 Priority: base
 Title: The R Utils Package
 Author: R Core Team and contributors worldwide
 Maintainer: R Core Team <R-core r-project org>
 Description: R utility functions
-License: Part of R 2.15.2
-Built: R 2.15.2; ; 2012-10-27 03:05:31 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:38:52 UTC; windows
diff --git a/win32/deps/library/utils/INDEX b/win32/deps/library/utils/INDEX
index fe97ffc..4f6b42b 100644
--- a/win32/deps/library/utils/INDEX
+++ b/win32/deps/library/utils/INDEX
@@ -3,6 +3,7 @@ DLL.version             DLL Version Information
 INSTALL                 Install Add-on Packages
 Question                Documentation Shortcuts
 REMOVE                  Remove Add-on Packages
+RHOME                   R Home Directory
 RShowDoc                Show R Manuals and Other Documentation
 RSiteSearch             Search for Key Words or Phrases in
                         Documentation
@@ -41,6 +42,7 @@ chooseBioCmirror        Select a Bioconductor Mirror
 chooseCRANmirror        Select a CRAN Mirror
 citEntry                Bibliography Entries (Older Interface)
 citation                Citing R and R Packages in Publications
+cite                    Cite a bibliography entry.
 clipboard               Read/Write to/from the Windows Clipboard
 close.socket            Close a Socket
 combn                   Generate All Combinations of n Elements, Taken
@@ -70,6 +72,7 @@ formatUL                Format Unordered and Ordered Lists
 getAnywhere             Retrieve an R Object, Including from a
                         Namespace
 getFromNamespace        Utility functions for Developing Namespaces
+getParseData            Get detailed parse information from object.
 getS3method             Get An S3 Method
 getSrcFilename          Source Reference Utilities
 getWindowsHandle        Get a Windows Handle
@@ -102,9 +105,11 @@ news                    Build and Query R or Package News Information
 object.size             Report the Space Allocated for an Object
 package.skeleton        Create a Skeleton for a New Source Package
 packageDescription      Package Description
+packageName             Find package associated with an environment.
 packageStatus           Package Management Tools
 page                    Invoke a Pager on an R Object
 person                  Persons
+process.events          Trigger event handling
 prompt                  Produce Prototype of an R Documentation File
 promptData              Generate Outline Documentation for a Data Set
 promptPackage           Generate a Shell for Documentation of a Package
@@ -145,7 +150,7 @@ update.packages         Compare Installed Packages with CRAN-like
 url.show                Display a text URL
 utils-deprecated        Deprecated Functions in Package 'utils'
 utils-package           The R Utils Package
-vignette                View or List Vignettes
+vignette                View or List Package Vignettes
 win.version             Auxiliary Functions for the Windows Port
 winDialog               Dialog Boxes under Windows
 winMenuAdd              User Menus under Windows
diff --git a/win32/deps/library/utils/Meta/Rd.rds b/win32/deps/library/utils/Meta/Rd.rds
index 2c4c9c5..42b1876 100644
Binary files a/win32/deps/library/utils/Meta/Rd.rds and b/win32/deps/library/utils/Meta/Rd.rds differ
diff --git a/win32/deps/library/utils/Meta/hsearch.rds b/win32/deps/library/utils/Meta/hsearch.rds
index 2dff7d3..9a80998 100644
Binary files a/win32/deps/library/utils/Meta/hsearch.rds and b/win32/deps/library/utils/Meta/hsearch.rds 
differ
diff --git a/win32/deps/library/utils/Meta/links.rds b/win32/deps/library/utils/Meta/links.rds
index 171c0df..9469518 100644
Binary files a/win32/deps/library/utils/Meta/links.rds and b/win32/deps/library/utils/Meta/links.rds differ
diff --git a/win32/deps/library/utils/Meta/nsInfo.rds b/win32/deps/library/utils/Meta/nsInfo.rds
index ff1b17c..9076a5f 100644
Binary files a/win32/deps/library/utils/Meta/nsInfo.rds and b/win32/deps/library/utils/Meta/nsInfo.rds differ
diff --git a/win32/deps/library/utils/Meta/package.rds b/win32/deps/library/utils/Meta/package.rds
index ee96422..a9c584d 100644
Binary files a/win32/deps/library/utils/Meta/package.rds and b/win32/deps/library/utils/Meta/package.rds 
differ
diff --git a/win32/deps/library/utils/Meta/vignette.rds b/win32/deps/library/utils/Meta/vignette.rds
index 1b3038c..0c2590a 100644
Binary files a/win32/deps/library/utils/Meta/vignette.rds and b/win32/deps/library/utils/Meta/vignette.rds 
differ
diff --git a/win32/deps/library/utils/NAMESPACE b/win32/deps/library/utils/NAMESPACE
index c4344c8..094f8ef 100644
--- a/win32/deps/library/utils/NAMESPACE
+++ b/win32/deps/library/utils/NAMESPACE
@@ -1,38 +1,44 @@
+# Refer to all C routines by their name prefixed by C_
+useDynLib(utils, .registration = TRUE, .fixes = "C_")
+
 export("?", .DollarNames, CRAN.packages, Rprof, Rprofmem, RShowDoc,
        RSiteSearch, URLdecode, URLencode, View, adist, alarm, apropos,
        aregexec, argsAnywhere, assignInMyNamespace, assignInNamespace,
        as.roman, as.person, as.personList, as.relistable, aspell,
+       aspell_package_C_files, aspell_package_R_files,
        aspell_package_Rd_files, aspell_package_vignettes,
        aspell_write_personal_dictionary_file, available.packages,
        browseEnv, browseURL, browseVignettes, bug.report,
        capture.output, checkCRAN, chooseBioCmirror, chooseCRANmirror,
-       citation, citEntry, citHeader, citFooter, close.socket, combn,
-       compareVersion, contrib.url, count.fields, create.post, data,
-       data.entry, dataentry, de, de.ncols, de.restore, de.setup,
-       debugger, demo, download.file, download.packages, dump.frames,
-       edit, emacs, example, file_test, file.edit, find, fix,
-       fixInNamespace, findLineNum, flush.console, formatOL, formatUL,
-       getAnywhere, getCRANmirrors, getFromNamespace, getS3method,
+       citation, cite, citeNatbib, citEntry, citHeader, citFooter,
+       close.socket, combn, compareVersion, contrib.url, count.fields,
+       create.post, data, data.entry, dataentry, de, de.ncols,
+       de.restore, de.setup, debugger, demo, download.file,
+       download.packages, dump.frames, edit, emacs, example,
+       file_test, file.edit, find, fix, fixInNamespace, findLineNum,
+       flush.console, formatOL, formatUL, getAnywhere, getCRANmirrors,
+       getFromNamespace, getParseData, getParseText, getS3method,
        getSrcDirectory, getSrcFilename, getSrcLocation, getSrcref,
-       glob2rx, globalVariables, head, head.matrix, help, help.request, help.search,
-       help.start, history, install.packages, installed.packages,
-       is.relistable, limitedLabels, loadhistory, localeToCharset,
-       ls.str, lsf.str, maintainer, make.packages.html, make.socket,
-       memory.limit, memory.size, menu, methods, mirror2html,
-       modifyList, new.packages, news, object.size, old.packages,
-       package.contents, package.skeleton, packageDescription,
+       glob2rx, globalVariables, head, head.matrix, help,
+       help.request, help.search, help.start, history,
+       install.packages, installed.packages, is.relistable,
+       limitedLabels, loadhistory, localeToCharset, ls.str, lsf.str,
+       maintainer, make.packages.html, make.socket, memory.limit,
+       memory.size, menu, methods, mirror2html, modifyList,
+       new.packages, news, object.size, old.packages,
+       package.skeleton, packageDescription, packageName,
        packageVersion, packageStatus, page, person, personList, pico,
-       prompt, promptData, promptPackage, rc.getOption, rc.options,
-       rc.settings, rc.status, readCitationFile, read.DIF, read.csv,
-       read.csv2, read.delim, read.delim2, read.fwf, read.fortran,
-       read.socket, read.table, recover, relist, remove.packages,
-       removeSource, rtags, savehistory, select.list, sessionInfo,
-       setBreakpoint, setRepositories, stack, str, strOptions,
-       summaryRprof, tail, tail.matrix, tar, timestamp, toBibtex,
-       toLatex, type.convert, unstack, untar, unzip,
-       update.packageStatus, update.packages, upgrade, url.show, vi,
-       vignette, write.csv, write.csv2, write.socket, write.table,
-       wsbrowser, xedit, xemacs, zip, zip.file.extract)
+       process.events, prompt, promptData, promptPackage,
+       rc.getOption, rc.options, rc.settings, rc.status,
+       readCitationFile, read.DIF, read.csv, read.csv2, read.delim,
+       read.delim2, read.fwf, read.fortran, read.socket, read.table,
+       recover, relist, remove.packages, removeSource, rtags,
+       savehistory, select.list, sessionInfo, setBreakpoint,
+       setRepositories, stack, str, strOptions, summaryRprof, tail,
+       tail.matrix, tar, timestamp, toBibtex, toLatex, type.convert,
+       unstack, untar, unzip, update.packageStatus, update.packages,
+       upgrade, url.show, vi, vignette, write.csv, write.csv2,
+       write.socket, write.table, xedit, xemacs, zip)
 
 export(txtProgressBar, getTxtProgressBar, setTxtProgressBar)
 
@@ -48,6 +54,7 @@ S3method(edit, data.frame)
 S3method(edit, default)
 S3method(edit, matrix)
 S3method(edit, vignette)
+S3method(format, "news_db")
 S3method(format, "roman")
 S3method(head, data.frame)
 S3method(head, default)
@@ -121,7 +128,10 @@ S3method("format", "person")
 S3method("print", "bibentry")
 S3method("print", "citation")
 S3method("print", "person")
+S3method("rep", "bibentry")
+S3method("sort", "bibentry")
 S3method("toBibtex", "bibentry")
+S3method("unique", "bibentry")
 
 S3method(.DollarNames, default)
 S3method(.DollarNames, list)
@@ -129,9 +139,9 @@ S3method(.DollarNames, environment)
 
 export(Rtangle, RtangleSetup, RweaveLatex, RweaveLatexSetup, Stangle,
        Sweave, SweaveSyntConv, SweaveSyntaxLatex, SweaveSyntaxNoweb,
-       RtangleWritedoc, RweaveLatexOptions, RweaveChunkPrefix,
-       RweaveEvalWithOpt, RweaveTryStop, SweaveHooks,
-       RweaveLatexWritedoc, RweaveLatexOptions, RweaveLatexFinish,
+       RtangleWritedoc, RweaveChunkPrefix, RweaveEvalWithOpt,
+       RweaveTryStop, SweaveHooks, RweaveLatexWritedoc,
+       RweaveLatexOptions, RweaveLatexFinish,
        makeRweaveLatexCodeRunner)
 
 if(tools:::.OStype() == "unix") {
diff --git a/win32/deps/library/utils/R/utils b/win32/deps/library/utils/R/utils
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/utils/R/utils
+++ b/win32/deps/library/utils/R/utils
@@ -1,9 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 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 General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
 local({
     info <- loadingNamespaceInfo()
-    ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
     if (is.null(ns))
-        stop("cannot find namespace environment");
-    barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
-    dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
     lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
 })
diff --git a/win32/deps/library/utils/R/utils.rdb b/win32/deps/library/utils/R/utils.rdb
index 2c70044..8ed576f 100644
Binary files a/win32/deps/library/utils/R/utils.rdb and b/win32/deps/library/utils/R/utils.rdb differ
diff --git a/win32/deps/library/utils/R/utils.rdx b/win32/deps/library/utils/R/utils.rdx
index e359e6f..71351ef 100644
Binary files a/win32/deps/library/utils/R/utils.rdx and b/win32/deps/library/utils/R/utils.rdx differ
diff --git a/win32/deps/library/utils/doc/Sweave.R b/win32/deps/library/utils/doc/Sweave.R
index 3e84422..b0ee7c2 100644
--- a/win32/deps/library/utils/doc/Sweave.R
+++ b/win32/deps/library/utils/doc/Sweave.R
@@ -1,38 +1,38 @@
 ### R code from vignette source 'Sweave.Rnw'
 
 ###################################################
-### code chunk number 1: Sweave.Rnw:122-124
+### code chunk number 1: Sweave.Rnw:127-129
 ###################################################
 rnwfile <- system.file("Sweave", "example-1.Rnw", package = "utils")
 Sweave(rnwfile)
 
 
 ###################################################
-### code chunk number 2: Sweave.Rnw:129-130
+### code chunk number 2: Sweave.Rnw:134-135
 ###################################################
 tools::texi2pdf("example-1.tex")
 
 
 ###################################################
-### code chunk number 3: Sweave.Rnw:365-366
+### code chunk number 3: Sweave.Rnw:370-371
 ###################################################
 SweaveSyntConv(rnwfile, SweaveSyntaxLatex)
 
 
 ###################################################
-### code chunk number 4: Sweave.Rnw:468-469 (eval = FALSE)
+### code chunk number 4: Sweave.Rnw:473-474 (eval = FALSE)
 ###################################################
 ## help("Sweave")
 
 
 ###################################################
-### code chunk number 5: Sweave.Rnw:478-479 (eval = FALSE)
+### code chunk number 5: Sweave.Rnw:483-484 (eval = FALSE)
 ###################################################
 ## help("RweaveLatex")
 
 
 ###################################################
-### code chunk number 6: Sweave.Rnw:594-595 (eval = FALSE)
+### code chunk number 6: Sweave.Rnw:599-600 (eval = FALSE)
 ###################################################
 ## help("Rtangle")
 
diff --git a/win32/deps/library/utils/doc/Sweave.Rnw b/win32/deps/library/utils/doc/Sweave.Rnw
index 430aa47..b7e18dc 100644
--- a/win32/deps/library/utils/doc/Sweave.Rnw
+++ b/win32/deps/library/utils/doc/Sweave.Rnw
@@ -1,3 +1,8 @@
+% File src/library/utils/vignettes/Sweave.Rnw
+% Part of the R package, http://www.R-project.org
+% Copyright 2002-13 Friedrich Leisch and the R Core Team
+% Distributed under GPL 2 or later
+
 \documentclass[a4paper]{article}
 
 %\VignetteIndexEntry{Sweave User Manual}
@@ -688,7 +693,7 @@ R CMD Sweave file.Rnw
    fail.
 
    \subsection{Why do R lattice graphics not work?}
-  
+
    In recent versions of Sweave they do if they would when run at the
    command line: some calls (e.g.{} those inside loops) need to be
    explicitly \code{print()}-ed.
diff --git a/win32/deps/library/utils/doc/Sweave.pdf b/win32/deps/library/utils/doc/Sweave.pdf
index 01e307a..9f137a5 100644
Binary files a/win32/deps/library/utils/doc/Sweave.pdf and b/win32/deps/library/utils/doc/Sweave.pdf differ
diff --git a/win32/deps/library/utils/doc/index.html b/win32/deps/library/utils/doc/index.html
index b23b063..927f660 100644
--- a/win32/deps/library/utils/doc/index.html
+++ b/win32/deps/library/utils/doc/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>R: Vignettes</title>
+<html><head><title>R: Vignettes and other documentation</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <link rel="stylesheet" type="text/css" href="/doc/html/R.css">
 </head><body>
-<h1> Vignettes
+<h1> Vignettes and other documentation
 <img class="toplogo" src="/doc/html/logo.jpg" alt="[R logo]">
 </h1>
 <hr>
diff --git a/win32/deps/library/utils/help/AnIndex b/win32/deps/library/utils/help/AnIndex
index 13cd0ef..25ade5c 100644
--- a/win32/deps/library/utils/help/AnIndex
+++ b/win32/deps/library/utils/help/AnIndex
@@ -22,7 +22,9 @@ as.relistable relist
 as.roman       roman
 aspell aspell
 aspell-utils   aspell-utils
+aspell_package_C_files aspell-utils
 aspell_package_Rd_files        aspell-utils
+aspell_package_R_files aspell-utils
 aspell_package_vignettes       aspell-utils
 aspell_write_personal_dictionary_file  aspell-utils
 assignInMyNamespace    getFromNamespace
@@ -45,6 +47,8 @@ chooseBioCmirror      chooseBioCmirror
 chooseCRANmirror       chooseCRANmirror
 CITATION       citation
 citation       citation
+cite   cite
+citeNatbib     cite
 citEntry       citEntry
 citFooter      citEntry
 citHeader      citEntry
@@ -57,7 +61,7 @@ compareVersion        compareVersion
 completion     rcompgen
 contrib.url    contrib.url
 count.fields   count.fields
-CRAN.packages  utils-deprecated
+CRAN.packages  utils-defunct
 create.post    create.post
 data   data
 data.entry     dataentry
@@ -96,6 +100,8 @@ getClipboardFormats  clipboard
 getCRANmirrors chooseCRANmirror
 getFromNamespace       getFromNamespace
 getIdentification      setWindowTitle
+getParseData   getParseData
+getParseText   getParseData
 getS3method    getS3method
 getSrcDirectory        sourceutils
 getSrcFilename sourceutils
@@ -148,6 +154,7 @@ old.packages        update.packages
 package.contents       utils-defunct
 package.skeleton       package.skeleton
 packageDescription     packageDescription
+packageName    packageName
 packageStatus  packageStatus
 packageVersion packageDescription
 page   page
@@ -170,6 +177,7 @@ print.person        person
 print.sessionInfo      sessionInfo
 print.socket   make.socket
 print.vignette vignette
+process.events process.events
 prompt prompt
 prompt.data.frame      prompt
 prompt.default prompt
@@ -204,6 +212,7 @@ relist.matrix       relist
 REMOVE REMOVE
 remove.packages        remove.packages
 removeSource   removeSource
+RHOME  RHOME
 Rprof  Rprof
 Rprofmem       Rprofmem
 Rscript        Rscript
diff --git a/win32/deps/library/utils/help/aliases.rds b/win32/deps/library/utils/help/aliases.rds
index 96d4c85..b14b983 100644
Binary files a/win32/deps/library/utils/help/aliases.rds and b/win32/deps/library/utils/help/aliases.rds 
differ
diff --git a/win32/deps/library/utils/help/paths.rds b/win32/deps/library/utils/help/paths.rds
index 9b15d15..8e06e20 100644
Binary files a/win32/deps/library/utils/help/paths.rds and b/win32/deps/library/utils/help/paths.rds differ
diff --git a/win32/deps/library/utils/help/utils.rdb b/win32/deps/library/utils/help/utils.rdb
index e231592..8d6f2db 100644
Binary files a/win32/deps/library/utils/help/utils.rdb and b/win32/deps/library/utils/help/utils.rdb differ
diff --git a/win32/deps/library/utils/help/utils.rdx b/win32/deps/library/utils/help/utils.rdx
index 317e835..538d850 100644
Binary files a/win32/deps/library/utils/help/utils.rdx and b/win32/deps/library/utils/help/utils.rdx differ
diff --git a/win32/deps/library/utils/html/00Index.html b/win32/deps/library/utils/html/00Index.html
index 904185e..fa94e91 100644
--- a/win32/deps/library/utils/html/00Index.html
+++ b/win32/deps/library/utils/html/00Index.html
@@ -10,10 +10,10 @@
 <div align="center">
 <a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30" 
height="30" border="0"></a>
 <a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30" 
height="30" border="0"></a>
-</div><h2>Documentation for package &lsquo;utils&rsquo; version 2.15.2</h2>
+</div><h2>Documentation for package &lsquo;utils&rsquo; version 3.0.2</h2>
 
 <ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
-<li><a href="../doc/index.html">Overview of user guides and package vignettes</a>; browse <a 
href="../doc">directory</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
 </ul>
 
 <h2>Help Pages</h2>
@@ -81,8 +81,12 @@
 <td>Spell Check Interface</td></tr>
 <tr><td width="25%"><a href="aspell-utils.html">aspell-utils</a></td>
 <td>Spell Check Utilities</td></tr>
+<tr><td width="25%"><a href="aspell-utils.html">aspell_package_C_files</a></td>
+<td>Spell Check Utilities</td></tr>
 <tr><td width="25%"><a href="aspell-utils.html">aspell_package_Rd_files</a></td>
 <td>Spell Check Utilities</td></tr>
+<tr><td width="25%"><a href="aspell-utils.html">aspell_package_R_files</a></td>
+<td>Spell Check Utilities</td></tr>
 <tr><td width="25%"><a href="aspell-utils.html">aspell_package_vignettes</a></td>
 <td>Spell Check Utilities</td></tr>
 <tr><td width="25%"><a href="aspell-utils.html">aspell_write_personal_dictionary_file</a></td>
@@ -137,6 +141,10 @@
 <td>Citing R and R Packages in Publications</td></tr>
 <tr><td width="25%"><a href="citation.html">citation</a></td>
 <td>Citing R and R Packages in Publications</td></tr>
+<tr><td width="25%"><a href="cite.html">cite</a></td>
+<td>Cite a bibliography entry.</td></tr>
+<tr><td width="25%"><a href="cite.html">citeNatbib</a></td>
+<td>Cite a bibliography entry.</td></tr>
 <tr><td width="25%"><a href="citEntry.html">citEntry</a></td>
 <td>Bibliography Entries (Older Interface)</td></tr>
 <tr><td width="25%"><a href="citEntry.html">citFooter</a></td>
@@ -161,8 +169,6 @@
 <td>Find Appropriate Paths in CRAN-like Repositories</td></tr>
 <tr><td width="25%"><a href="count.fields.html">count.fields</a></td>
 <td>Count the Number of Fields per Line</td></tr>
-<tr><td width="25%"><a href="utils-deprecated.html">CRAN.packages</a></td>
-<td>Deprecated Functions in Package 'utils'</td></tr>
 <tr><td width="25%"><a href="create.post.html">create.post</a></td>
 <td>Ancillary Function for Preparing Emails and Postings</td></tr>
 </table>
@@ -200,7 +206,7 @@
 <tr><td width="25%"><a href="edit.data.frame.html">edit.data.frame</a></td>
 <td>Edit Data Frames and Matrices</td></tr>
 <tr><td width="25%"><a href="vignette.html">edit.vignette</a></td>
-<td>View or List Vignettes</td></tr>
+<td>View or List Package Vignettes</td></tr>
 <tr><td width="25%"><a href="edit.html">emacs</a></td>
 <td>Invoke a Text Editor</td></tr>
 <tr><td width="25%"><a href="example.html">example</a></td>
@@ -249,6 +255,10 @@
 <td>Utility functions for Developing Namespaces</td></tr>
 <tr><td width="25%"><a href="setWindowTitle.html">getIdentification</a></td>
 <td>Set or get the Window Title, or Set the Statusbar</td></tr>
+<tr><td width="25%"><a href="getParseData.html">getParseData</a></td>
+<td>Get detailed parse information from object.</td></tr>
+<tr><td width="25%"><a href="getParseData.html">getParseText</a></td>
+<td>Get detailed parse information from object.</td></tr>
 <tr><td width="25%"><a href="getS3method.html">getS3method</a></td>
 <td>Get An S3 Method</td></tr>
 <tr><td width="25%"><a href="sourceutils.html">getSrcDirectory</a></td>
@@ -370,6 +380,8 @@
 <td>Create a Skeleton for a New Source Package</td></tr>
 <tr><td width="25%"><a href="packageDescription.html">packageDescription</a></td>
 <td>Package Description</td></tr>
+<tr><td width="25%"><a href="packageName.html">packageName</a></td>
+<td>Find package associated with an environment.</td></tr>
 <tr><td width="25%"><a href="packageStatus.html">packageStatus</a></td>
 <td>Package Management Tools</td></tr>
 <tr><td width="25%"><a href="packageDescription.html">packageVersion</a></td>
@@ -413,7 +425,9 @@
 <tr><td width="25%"><a href="make.socket.html">print.socket</a></td>
 <td>Create a Socket Connection</td></tr>
 <tr><td width="25%"><a href="vignette.html">print.vignette</a></td>
-<td>View or List Vignettes</td></tr>
+<td>View or List Package Vignettes</td></tr>
+<tr><td width="25%"><a href="process.events.html">process.events</a></td>
+<td>Trigger event handling</td></tr>
 <tr><td width="25%"><a href="prompt.html">prompt</a></td>
 <td>Produce Prototype of an R Documentation File</td></tr>
 <tr><td width="25%"><a href="promptData.html">promptData</a></td>
@@ -466,6 +480,8 @@
 <td>Remove Installed Packages</td></tr>
 <tr><td width="25%"><a href="removeSource.html">removeSource</a></td>
 <td>Remove Stored Source from a Function.</td></tr>
+<tr><td width="25%"><a href="RHOME.html">RHOME</a></td>
+<td>R Home Directory</td></tr>
 <tr><td width="25%"><a href="Rprof.html">Rprof</a></td>
 <td>Enable Profiling of R's Execution</td></tr>
 <tr><td width="25%"><a href="Rprofmem.html">Rprofmem</a></td>
@@ -597,9 +613,9 @@
 <tr><td width="25%"><a href="View.html">View</a></td>
 <td>Invoke a Data Viewer</td></tr>
 <tr><td width="25%"><a href="vignette.html">vignette</a></td>
-<td>View or List Vignettes</td></tr>
+<td>View or List Package Vignettes</td></tr>
 <tr><td width="25%"><a href="vignette.html">vignettes</a></td>
-<td>View or List Vignettes</td></tr>
+<td>View or List Package Vignettes</td></tr>
 </table>
 
 <h2><a name="W">-- W --</a></h2>
diff --git a/win32/deps/library/utils/tests/Sweave-tst.R b/win32/deps/library/utils/tests/Sweave-tst.R
index a943c7f..e22d434 100644
--- a/win32/deps/library/utils/tests/Sweave-tst.R
+++ b/win32/deps/library/utils/tests/Sweave-tst.R
@@ -18,8 +18,8 @@
 
 .proctime00 <- proc.time()
 library(utils)
-options(digits=5) # to avoid trivial printed differences
-options(show.signif.stars=FALSE) # avoid fancy quotes in o/p
+options(digits = 5) # to avoid trivial printed differences
+options(show.signif.stars = FALSE) # avoid fancy quotes in o/p
 
 SweaveTeX <- function(file, ...) {
     if(!file.exists(file))
@@ -31,7 +31,7 @@ SweaveTeX <- function(file, ...) {
     readLines(texF)
 }
 
-p0 <- function(...) paste(..., sep="")
+p0 <- paste0
 latexEnv <- function(lines, name) {
     stopifnot(is.character(lines), is.character(name),
              length(lines) >= 2, length(name) == 1)
diff --git a/win32/deps/library/utils/tests/completion.R b/win32/deps/library/utils/tests/completion.R
index d608361..77bc868 100644
--- a/win32/deps/library/utils/tests/completion.R
+++ b/win32/deps/library/utils/tests/completion.R
@@ -24,6 +24,14 @@ testLine("update(")
 testLine("version$m")
 testLine("nchar(version[")
 
+
+
+testLine("method?coe")
+testLine("?coe")
+testLine("?\"coerce,AN")
+testLine("method?\"coerce,AN")
+
+
 ## testLine("")
 ## testLine("")
 ## testLine("")


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]